1
您现在的位置:
首页
/
/
关于固件安全检测,一文看懂hex文件、bin文件、axf文件的区别

关于固件安全检测,一文看懂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文件最小。

 

扫二维码用手机看

更多资讯

联系我们

联系我们

发布时间:2020-09-16 13:55:16
地址:苏州市工业园区新平街388号
          腾飞创新园塔楼A617
电话:400-028-4008
          0512-62382981

关注我们

这是描述信息

页面版权所有 -  苏州华克斯信息科技有限公司  |  Copyright - 2020 All Rights Reserved.