欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年bin和axf文件区别 .pdf

    • 资源ID:27249759       资源大小:59.62KB        全文页数:5页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年bin和axf文件区别 .pdf

    hex,bin,axf,elf文件格式的区别(2012-08-24 15:50:34)转载标签:设置杂谈分类: STM32hex,bin,axf,elf 的区别一、 HEX 和 BIN Hex 文件,这里指的是 Intel 标准的十六进制文件 ,也就是机器代码的十六进制形式,并且是用一定文件格式的ASCII 码来表示 .具体格式介绍如下 : Intel hex 文件格式Intel hex 文件常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。Intel hex 文件全部由可打印的ASCII 字符组成,如下例所示::2000000012014c75a800e4f508f509780a7a78e4f608dafcd283fcfded240af9a7050dbd81 :2000200000010ced2488ec34ff50edc283e4fcfded240af9e76d7013ed33e43c700d0dbd2a :2000400000010ced2488ec34ff50e50509e50970020508e50924a8e50834fd50aee4f50874 Intel hex 由一条或多条记录组成,每条记录都由一个冒号“:”打头,其格式如下::CCAAAARR.ZZ 其中:CC 本条记录中的数据字节数AAAA 本条记录中的数据在存储区中的起始地址RR 记录类型:00 数据记录 (data record) 01 结束记录 (end record) 02 段记录 (paragraph record) 03 转移地址记录 (transfer address record) . 数据域ZZ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 数据域校验和Intel hex 文件记录中的数字都是16进制格式,两个 16 进制数字代表一个字节。 CC 域是数据域中的实际字节数,地址、记录类型和校验和域没有计算在内。校验和是取记录中从数据字节计数域(CC)到数据域 (.)最后一个字节的所有字节总和的2 的补码。 Bin 文件是最纯粹的二进制机器代码,没有格式 ,或者说是 顺序格式 按 assembly code顺序翻译成 binary machine code.Bin是直接的内存映象的表示。简单介绍一下这 2 种文件格式的区别:1 HEX 文件是包括地址信息的,而BIN 文件格式只包括了数据本身在烧写或下载 HEX 文件的时候,一般都不需要用户指定地址,因为HEX 文件内部的信息已经包括了地址。而烧写BIN 文件的时候,用户是一定需要指定地址信息的。3 BIN 文件格式对二进制文件而言,其实没有” 格式” 。文件只是包括了纯粹的二进制数据。4 HEX 文件格式 HEX 文件都是由记录( RECORD)组成的。在 HEX 文件里面,每一行代表一个记录。记录的基本格式为: +-+ | RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM | | MARK : | | OFFSET| | | | +-+ | 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte | +-+ 记录类型包括: 00 Data Rrecord :用来记录数据, HEX 文件的大部分记录都是数据记录 01 End of File Record: 用来标识文件结束,放在文件的最后,标识HEX 文件的结尾 04 Extended Linear Address Record: 用来标识扩展线性地址的记录 02 Extended Segment Address Record: 用来标识扩展段地址的记录在上面的后 2 种记录,都是用来提供地址信息的。每次碰到这2 个记录的时候,都可以根据记录计算出一个“ 基” 地址。对于后面的数据记录,计算地址的时候,都是以这些“ 基” 地址为基础的。数据记录的具体格式: +-+ | RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM | | MARK : | | OFFSET| 00 | | | +-+ | 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte | +-+ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 看个例子: :020000040000FA :10000400FF00A0E314209FE5001092E5011092E5A3 :00000001FF 对上面的 HEX 文件进行分析:第 1 条记录的长度为 02,LOADOFFSET 为 0000,RECTYPE 为 04,说明该记录为扩展段地址记录。数据为0000,校验和为 FA。从这个记录的长度和数据,我们可以计算出一个基地址,这个地址为0X0000。后面的数据记录都以这个地址为基地址。第 2 条记录的长度为 10(16),LOAD OFFSET 为 0004,RECTYPE 为 00,说明该记录为数据记录。数据为 FF00A0E314209FE5001092E5011092E5 ,共 16 个 BYTE 。这个记录的校验和为A3。此时的基地址为0X0000,加上 OFFSET,这个记录里的 16BYTE 的数据的起始地址就是0 x0000 + 0 x0004 = 0 x0004. 第 3 条记录的长度为 00,LOADOFFSET 为 0000,TYPE 01,校验和为 FF。说明这个是一个ENDOF FILE RECORD ,标识文件的结尾。在上面这个例子里,实际的数据只有16 个 BYTE:FF00A0E314209FE5001092E5011092E5 ,其起始地址为 0 x4 4 HEX 文件和 BIN 文件大小有区别 HEX 文件是用 ASCII 来表示二进制的数值。例如一般8-BIT 的二进制数值 0 x3F,用 ASCII 来表示就需要分别表示字符3 和字符 F,每个字符需要一个BYTE,所以 HEX 文件需要 2 倍的空间。对一个 BIN 文件而言,你查看文件的大小就可以知道文件包括的数据的实际大小。而对HEX 文件而言,你看到的文件大小并不是实际的数据的大小。一是因为HEX 文件是用 ASCII 来表示数据,二是因为HEX 文件本身还包括别的附加信息。二、 AXF 和 ELF axf 文件是 ARM 的调试文件,除了包含bin 的内容之外,还附加了其他的调试信息,这些调试信息加在可执行的二进制数据的前面。在调试的时候,这些调试信息是不必下到 RAM 中去的,真正下到 RAM 中的信息仅仅是可执行代码。 所以如果 ram的大小小于 axf 文件的大小,程序是完全有可能可以在ram中调试的,只要 axf 除去调试信息后的大小小于ram的大小就行了。调试信息包含以下内容:1、 可以将源代码包括注释夹在反汇编代码中,并且我们可以随时切换到源代码中调试,2、 我们还可以对程序中的函数调用情况进行跟踪(用 Watch & Call Stack Window 查看 )。3、对变量进行跟踪 (用 Watch & Call Stack Window 查看)。如何减少调试信息如果希望带调试信息,那么在目标文件和库中减少调试信息是非常有益的,减少调试信息可以减少目标文件和库的大小、加快了链接速度、减小最终镜象的代码。以下几种方法可用来减少每个源文件产生的调试信息:1.避免在头文件中条件使用 #define,链接器不能移除共用的调试部分,除非这些部分是完全一样的;2.更改 C/C+源文件,以使 #included 包含的所有头文件有相同的顺序;3.将头文件信息分成几个小块,也就是,尽量使用数量较多的小头文件而不使用较大的单一头文件,这有利于链接器能获取更多的通用块;4.在程序中只包含那些必须要用到的头文件;5.避免重复包含头文件,可使用编译器选项-remarks来产生警告信息;6.使用编译命令行选项 -no_debug_macros以从调试表中丢弃预处理宏定义。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - Linux OS 下,ELF 通常就是可执行文件,通常gcc -o testtest.c ,生成的 test文件就是 ELF 格式的,在 Linux Shell 下输入 ./test 就可以执行。在 Embedded中,上电开始运行,没有OS 系统,如果将 ELF 格式的文件烧写进去,包含一些ELF 格式的东西, arm运行碰到这些指令,就会导致失败,如果用bin 文件,程序就可以一步一步运行【转】 axf elf 和 bin 区别(1)axf 和 elf 都是编译器生成的可执行文件,区别是:ADS 编译出来的是 AXF 文件。gcc编译出来的是 ELF 文件。两者虽然很像,但还是有差别的。这是文件格式的差别,不涉及调试格式。(2)axf/elf 是带格式的映象bin 是直接的内存映象的表示axf/elf 文件里面包含了符号表,汇编等。BIN 文件是将 elf 文件中的代码段,数据段,还有一些自定义的段抽取出来做成的一个内存的镜像。由于elf 文件的信息比较全,所以可以用来以单步跟踪的方式运行。在 ADS 下,axf 文件可以直接用 axd进行调试运行。Linux OS 下,ELF 通常就是可执行文件,通常gcc -o test test.c ,生成的 test文件就是 ELF 格式的,在 Linux Shell 下输入 ./test就可以执行。bin 文件是经过压缩的可执行文件,去掉ELF 格式的东西,仅仅保留最纯的汇编。在系统没有加载操作系统的时候可以执行。在 Embedded中,上电开始运行,没有OS 系统,如果将 ELF 格式的文件烧写进去,包含一些ELF 格式的东西, arm运行碰到这些指令,就会导致失败,如果用 bin 文件,程序就可以一步一步运行。= 以下转载供参考:嵌入式开发的时候,我们的编译一个*.S 文件,并最终生成 bin 文件,编译命令大致如下:CC=arm-softfloat-linux-gnu-gcc LD=arm-softfloat-linux-gnu-ld OBJCOPY=arm-softfloat-linux-gnu-objcopy $(CC) -g $(CFLAG) -c boot.S #先将 boot.S 文件生成 boot.o $(LD) -g -Bstatic -T$(LDFILE) -Ttext 0 x12345600 boot.o-start-group -Map boot.map -o boot.elf # 再将 boot.o 生成 boot.elf, boot.elf 通常就是可执行文件,类似于gcc -o test test.c 中的 test文件,在 Linux Shell 下输入 ./test就可以执行。$(OBJCOPY) -O binary boot.elf boot.bin #接着将 boot.elf-boot.bin,这样可以缩小代码尺寸。运行 arm-softfloat-linux-gnu-objdump -h boot.elf 可以查看该文件的信息,但是如果变成名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - arm-softfloat-linux-gnu-objdump -h boot.bin 会提示错误,为了看boot.bin 文件信息 ,输入:arm-softfloat-linux-gnu-objdump -h -b binary -m armboot.bin 就可以了。哈哈我也是现学了一招,其中参数-h 可以被替换成为 -D, -S, -s 等等,请用arm-softfloat-linux-gnu-objdump -help 查看器中表示的意义。说说 ELF Bin 文件区别:我们有了 Linux OS,为了运行可执行文件,他们是遵循ELF 格式的,通常 gcc -o test test.c ,生成的 test文件就是 ELF 格式的,这样就可以运行了。arm-softfloat-linux-gnu-objcopy 命令将去掉 ELF 格式的东西,仅仅保留最纯的汇编(不知道如何解释),在 Embedded中,如果上电开始运行,没有OS 系统,如果将 ELF 格式的文件烧写进去,包含一些ELF 格式的东西, arm运行碰到这些指令,就会导致失败,如果用 arm-softfloat-linux-gnu-objcopy 生成纯粹的汇编,程序就可以一步一步运行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

    注意事项

    本文(2022年bin和axf文件区别 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开