关于固件安全检测,一文看懂hex文件、bin文件、axf文件的区别
- 分类:新闻资讯
- 作者:苏州华克斯信息科技有限公司
- 来源:苏州华克斯信息科技有限公司
- 发布时间:2024-01-24
- 访问量:0
【概要描述】
关于固件安全检测,一文看懂hex文件、bin文件、axf文件的区别
【概要描述】
- 分类:新闻资讯
- 作者:苏州华克斯信息科技有限公司
- 来源:苏州华克斯信息科技有限公司
- 发布时间:2024-01-24
- 访问量:0
关于固件安全检测,一文看懂hex文件、bin文件、axf文件的区别
固件漏洞安全检测平台
医疗器械网络安全漏洞识别—嵌入式系统安全扫描方案
在STM32开发中,经常会碰到hex文件、bin文件与axf文件,这些都是可以烧写到板子里运行的文件。这三个文件有什么区别呢?
可烧录的文件
axf文件、hex文件与bin文件都是可以运行在我们的stm32上的,它们都存储了编译器根据源代码生成的机器码,根据应用场合的不同,它们又有所区别。
axf文件:包含调试信息。
hex文件:包含地址信息。
bin文件:最直接的代码映像。
axf文件是编译默认生成的文件,不仅包含代码数据,而且还包含着调试信息,在MDK里进行debug调试用的就是这个文件。
hex文件在MDK里要勾选如下选项才可以生成:
hex 文件是一种使用十六进制符号表示的代码记录, 记录了代码应该存储到FLASH 的哪个地址,下载器可以根据这些信息辅助下载。
bin文件是根据axf文件生成的,需要在MDK下添加类似如下格式命令来生成对应的bin文件:
离线文件的烧录方法
hex文件的烧录,我们可以使用FlyMcu工具通过串口来下载:
FlyMcu不可以烧bin文件,因为上面说过了bin文件只包含最直接的代码映像,不包含地址信息,会出现如下错误:
bin文件可以使用STM32CubeProgrammer软件通过STLINK进行下载:
总结:
hex .bin .elf .axf文件区别
一、bin
bin 文件是纯粹的二进制文件,内部无地址标记,可直接在裸机运行,如果下载运行,则需要下载到编译时的地址。
二、hex
可理解为带存储地址描述格式的 bin 文件,可通过串口下载到单片机内部。烧写或下载 hex 文件时,一般都不需要用户指定地址,因为 hex 文件内部信息已经包括了编译时的地址。
三、elf
gcc编译出来的是 elf 文件,包含了符号表、汇编、调试信息,可在 Linux 中运行,无法直接在裸机上运行。
它是可执行文件,必须在有操作系统环境中运行,如果没有操作系统,将 elf 文件烧写进去,包含了符号表、调试信息等,ARM 运行碰到这些指令,就会导致失败。
而这个map文件就是从elf提出取来的,非常直观地(以文本形式)展现程序中的各文件包含了哪些函数变量,而这些函数变量分配在哪些段,地址是什么,以及其占用的空间大小等。
四、axf
可理解为 bin 文件+ 调试信息,axf 文件由 ARM 编译器产生,除了包含 bin 文件内容外,还附加其他调试信息。这些调试信息加在可执行的二进制数据之前,调试时这些调试信息不会下载到 RAM 中,真正下载到 RAM 中的信息仅仅是可执行代码。
axf文件、hex文件与bin文件都是可以运行在我们的stm32上的,它们都存储了编译器根据源代码生成的机器码,根据应用场合的不同,它们又有所区别:
axf文件:包含调试信息。
hex文件:包含地址信息。
bin文件:最直接的代码映像。
bin文件就是最小的可以运行的文件了,其包含最直接的代码映像。
这三个文件中axf文件最大,hex文件次之,bin文件最小。
扫二维码用手机看
更多资讯
Burp Suite Professional版本更新内容
SonarQube 10.4版本更新内容
AppScan 10.5.0版本更新内容
联系我们
联系我们
关注我们