打印
[经验分享]

bin、hex、axf和elf文件格式

[复制链接]
4013|62
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2023-11-5 19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

数据量比较

从存储数据的信息量上看:ELF>AXF>HEX>BIN,所以这也就确定了只能将大信息量的文件格式向小信息量的文件格式转换,如只能将HEX文件转换为BIN文件,当然如果指定了下载地址,也可以将BIN转换为HEX文件。

BIN文件

bin文件是纯粹的机器码,没有地址信息,不能使用记事本直接打开,要使用bin文件阅读器才能打开,如果使用bin文件烧录程序时,需要指定下载地址。一些下载器只能使用BIN文件进行下载,在进行OTA远程升级时必须使用bin文件。

HEX文件

一般是指Intel标准的hex文件,可以使用记事本直接打开,是十六进制数据,包含了基地址、偏移量、校验和、文件开始和结束标志等信息,与bin文件最大的不同就是包含了下载地址。由于hex文件是十六进制数据,而bin文件是二进制数据,如十六进制0xFF,用二进制表示为1111 1111,所以HEX文件要比bin文件大得多。与axf文件相比,不含调试信息,不能用于调试。


AXF文件

包含了调试信息,如进行在Keil环境使用Debug功能时,就是先将axf文件下载到芯片内,才能进行调试。如使用J-Link的J-Scope功能时,必须使用axf文件。

ELF文件

是由GCC编译器生成的。elf文件可以直接转换为hex和bin,但hex和bin

例如Linux系统下使用gcc指令gcc -o test test.c生成的elf文件,可以通过./test直接执行。

总结:

  • bin文件可以由hex和axf文件转换而来。

  • axf文件包含了调试信息。

  • hex文件包含了烧录地址,而bin文件不含,需要指定地址。



使用特权

评论回复
沙发
lzbf| | 2023-11-11 15:12 | 只看该作者
bin文件是一种二进制文件,它包含了计算机程序的机器代码。这种文件格式直接反映了程序在磁盘上的存储状态,因此可执行性较强。

使用特权

评论回复
板凳
uiint| | 2023-11-11 15:34 | 只看该作者
不同的文件格式适用于不同类型的程序和应用场景。掌握不同文件格式的特点和应用方法,有助于更好地编写、处理和传输程序代码。

使用特权

评论回复
地板
cemaj| | 2023-11-12 10:22 | 只看该作者
ELF文件是由GCC编译器生成的可执行文件格式,它包含了程序的入口点、代码段、数据段、堆栈段等信息,并使用了符号表来指向程序中的各个变量和函数。

使用特权

评论回复
5
i1mcu| | 2023-11-12 10:59 | 只看该作者
axf文件包含了更多的调试信息,这对于代码调试和分析是非常有用的。

使用特权

评论回复
6
yeates333| | 2023-11-12 12:05 | 只看该作者
hex文件通常用于保存单片机或其他处理器的目标程序代码。这种文件格式在嵌入式系统和硬件编程领域中广泛应用。

使用特权

评论回复
7
chenci2013| | 2023-11-12 13:08 | 只看该作者
elf文件不仅可以被链接器用来创建最终的可执行文件,而且也是调试工具的重要输入。

使用特权

评论回复
8
sheflynn| | 2023-11-12 13:27 | 只看该作者
Bin、hex、axf和elf都是常见的文件格式,主要用于存储和传输程序和数据。

使用特权

评论回复
9
mollylawrence| | 2023-11-12 13:53 | 只看该作者
Hex文件通常用于嵌入式系统和硬件开发,因为它们可以直接被硬件识别并执行。

使用特权

评论回复
10
sdlls| | 2023-11-12 14:05 | 只看该作者
Hex文件可以理解为带存储地址描述格式的bin文件,可通过串口下载到单片机内部。

使用特权

评论回复
11
hilahope| | 2023-11-12 15:04 | 只看该作者
axf文件是针对FPGA(现场可编程门阵列)设计的一种文件格式。它包含了FPGA芯片上的硬件描述语言(HDL)代码编译后的可执行文件。axf文件用于FPGA开发和验证,以及在实际硬件上运行。

使用特权

评论回复
12
cashrwood| | 2023-11-12 15:29 | 只看该作者
bin文件广泛应用于操作系统、软件安装程序和其他可执行文件。

使用特权

评论回复
13
cemaj| | 2023-11-12 16:17 | 只看该作者
bin文件没有地址信息,所以在下载或烧录时需要指定起始地址。

使用特权

评论回复
14
usysm| | 2023-11-12 17:31 | 只看该作者
bin文件是一种二进制文件,它包含了计算机程序的机器代码。这种文件格式直接反映了程序在磁盘上的存储状态,因此可执行性较强

使用特权

评论回复
15
jkl21| | 2023-11-13 10:36 | 只看该作者
ELF文件是由GCC编译器生成的可执行文件格式,它包含了程序的入口点、代码段、数据段、堆栈段等信息,并使用了符号表来指向程序中的各个变量和函数。

使用特权

评论回复
16
ulystronglll| | 2023-11-13 11:09 | 只看该作者
hex文件,可以使用记事本直接打开,是十六进制数据,包含了基地址、偏移量、校验和、文件开始和结束标志等信息。

使用特权

评论回复
17
lzmm| | 2023-11-13 11:43 | 只看该作者
进行在Keil环境使用Debug功能时,就是先将axf文件下载到芯片内,才能进行调试

使用特权

评论回复
18
hearstnorman323| | 2023-11-13 12:48 | 只看该作者
与bin和hex类似,axf也是一种程序文件格式。

使用特权

评论回复
19
jackcat| | 2023-11-13 13:48 | 只看该作者
hex文件通常用于保存单片机或其他处理器的目标程序代码。这种文件格式在嵌入式系统和硬件编程领域中广泛应用。

使用特权

评论回复
20
jonas222| | 2023-11-13 14:29 | 只看该作者
Hex文件可以理解为带存储地址描述格式的bin文件,可通过串口下载到单片机内部。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

535

主题

9644

帖子

23

粉丝