0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于bin、hex和axf 文件格式的描述

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-14 11:05 次阅读

写在前面

对于使用过BootLoader的朋友来说,本文说描述的这三个文件格式并不会陌生,而且还应该有深入的了解。

本文接着上一篇文章讲述两点内容:

1.格式转换

2.bin、hex和axf的描述

格式转换 - fromelf.exe命令行选项字

上一篇文章讲述的人【MDK-ARM如何生产Bin文件】,只是简单的讲述了实现过程,这里再简单提一下有朋友问的问题:fromelf的格式和使用。

C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe --bin -o ./Objects/Demo.bin ./Objects/Demo.axf

Keil官网对fromelf.exe命令行选项字有详细的讲述,官网地址:

http://www.keil.com/support/man/docs/armutil/armutil_pge1362128884798.htm

Hex与Bin文件之间的互转,其实在Keil官网也是有相关工具和说明。

1.Bin转Hex

Keil官网地址:

http://www.keil.com/download/docs/113.asp

2.Hex转Bin

Keil官网地址:

http://www.keil.com/download/docs/7.asp

bin、hex和axf的描述

本文说的bin、hex和axf文件,在我上一篇文章提供的例程中,编译后就会生成。(Bin是由fromelf转化而来,路径可自己定义,我定义在bin下面)

这三种文件中,Hex应该是最为常见的一种,就是下载处理器里面的程序。其实,其他两种也都可以下载到处理器里面,运行效果和Hex一样,只是各自包含的信息有所差异。

上一篇文章提供的例程中,编译后三个文件大小:

Objects目录下:

Demo.axf(236K)

Demo.hex(4K)

Bin目录下:

Demo.bin(2K)

从编译后文件大小,我们可以猜测到bin文件是最精简的一种文件,那么它和其他两种有啥区别呢?

简单来说,他们是一种包含的关系:axf的内容包含了hex的内容,而hex又包含了bin的内容。

1.Hex文件

https://en.wikipedia.org/wiki/Intel_HEX

Intel HEXis a file format that conveys binary information in ASCII text form. It is commonly used for programming microcontrollers, EPROMs, and other types ofprogrammable logic devices. In a typical application, a compiler or assembler converts a program's source code (such as in C or assembly language) to machine code andoutputs it into a HEX file. The HEX file is then imported by a programmer to "burn" the machine code into a ROM, or is transferred to the target system for loading andexecution.

简单来说:Hex是由Intel制定的一种十六进制标准文件格式,是由编译器转换而成的一种用于下载带处理器里面的文件。

Hex文件格式是由一行一行的十六进制数据组成,每行包含:开始、长度、数据、类型、校验和等重要信息。

2.Bin文件

Hex文件是有一定格式的,而Bin文件就是一种没有格式的程序文件,只是包含了程序数据。

3.axf文件

这种文件,初学者应该没怎么了解过,但有一定经验的朋友应该多少都有了解。说实话,之前我们用过一家公司芯片,往芯片里面下载的程序文件就是axf文件。

一般axf文件大小都比较大,只要代码稍微大一点,就会超过芯片Flash的大小,那么问题来了:下载比Flash还大的axf文件能成功吗?

答案:能下载成功,而且能正常运行。

因为我们只往芯片里面下载了有效程序,还有许多调试信息没有下载进去。

本文到此为止,简单描述其内容,后面讲述IAP如何实现,以及如何兼容既能升级应用程序,又能升级BootLoader,还会进一步讲述相关内容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • bin
    bin
    +关注

    关注

    1

    文章

    33

    浏览量

    13285
  • HEX
    HEX
    +关注

    关注

    0

    文章

    34

    浏览量

    16712
  • AXF
    AXF
    +关注

    关注

    0

    文章

    3

    浏览量

    6618
收藏 人收藏

    评论

    相关推荐

    求助,为什么binhex文件开始的前面4个字节不一样?

    最后面bin文件也多了几个字节的00,另外iap升级用hex还是bin好点?
    发表于 04-12 06:12

    谷歌模型怎么PS打开文件格式不变

    要将谷歌模型与Photoshop结合使用,并保持文件格式不变,这通常涉及将谷歌模型生成的图像或图形导入到Photoshop中进行进一步编辑或处理。
    的头像 发表于 02-29 18:09 442次阅读

    谷歌模型怎么用手机打开文件格式

    谷歌在其AI技术中集成了多种工具和功能,用于处理和识别文件格式。具体到手机上打开的文件格式,这主要依赖于谷歌提供的服务和应用。例如,在Gmail中,用户可以直接查看多种格式文件,包括
    的头像 发表于 02-29 17:38 402次阅读

    ad7177-2硬件文件EVAL-AD7177-2SDZ-Hardware-RevE.zip是什么文件格式

    因为想用一下ad7177-2,下载了ad7177-2开发板硬件文件 EVAL-AD7177-2SDZ-Hardware-RevE.zip,解压缩后打不开,请问它们是什么文件格式?谢谢了
    发表于 12-14 08:21

    Pydub音乐文件格式转换功能介绍

    Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便。 如果你阅读过我们之前的文章:《 剪辑音乐要很久?3行语句
    的头像 发表于 10-31 14:51 359次阅读

    WAV文件格式详解

    WAV是微软公司开发的一种音频格式文件,用于保存Windows平台的音频信息资源,它符合资源互换文件格式(Resource Interchange File Format,RIFF)文件规范。标准
    的头像 发表于 10-21 09:52 2178次阅读
    WAV<b class='flag-5'>文件格式</b>详解

    HEX文件BIN文件都是下载文件,为啥大小相差这么大?

    HEX文件BIN文件都是下载文件,为啥大小相差这么大
    发表于 10-13 06:43

    RIFF文件格式简介

    RIFF(Resources Interchange File Format)中文翻译为资源互换文件格式,是Windows下大部分多媒体文件遵循的一种文件结构。
    的头像 发表于 10-07 16:25 1045次阅读
    RIFF<b class='flag-5'>文件格式</b>简介

    单片机Hex文件格式详解

    玩单片机的朋友都会使用hex文件作为烧录文件。那么当我们写一个在线升级软件要支持hex文件的升级,就需要通过
    的头像 发表于 09-24 11:50 2537次阅读
    单片机<b class='flag-5'>Hex</b><b class='flag-5'>文件</b>的<b class='flag-5'>格式</b>详解

    单片机中hexbin文件的区别

    单片机中hexbin文件的区别
    的头像 发表于 09-21 17:38 1385次阅读
    单片机中<b class='flag-5'>hex</b>、<b class='flag-5'>bin</b><b class='flag-5'>文件</b>的区别

    Linux设备树详解(二) DTB文件格式

    一、背景     dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码才是了解设备树最好的方式
    的头像 发表于 08-10 16:02 3067次阅读
    Linux设备树详解(二) DTB<b class='flag-5'>文件格式</b>

    基于DWC2的USB驱动开发-UAC之WAV-PCM音频文件格式详解

    在做UAC,PWM音频播放的项目,需要解析WAV格式文件,通过UAC发送,或接收PCM数据,驱动喇叭播放。这里对WAV文件格式相关内容进行整理备忘。
    的头像 发表于 07-27 09:02 1286次阅读
    基于DWC2的USB驱动开发-UAC之WAV-PCM音频<b class='flag-5'>文件格式</b>详解

    将MacOLM文件转换为OutlookPST文件格式的工具

      将MacOLM文件转换为OutlookPST文件格式的工具 SysTools OLM to PSTConverter软件允许用户一次性将项目从OLM文件迁移到OutlookPST,包括(电子邮件
    的头像 发表于 06-16 10:56 1946次阅读
    将MacOLM<b class='flag-5'>文件</b>转换为OutlookPST<b class='flag-5'>文件格式</b>的工具

    收到错误“FlexSPI NOR的无效文件格式,写入支持仅nopadding可启动映像”怎么解决?

    ),这会将启动信息添加到将存储在 QSPI 闪存中的应用程序映像中。 我想要实现的是使用安全配置工具对同一图像进行编程。我所做的是使用 IDE 二进制实用程序将 .axf 文件转换为 .bin
    发表于 06-07 08:14

    为S32K116实施基于LIN的引导加载程序,NxpOpenBus SW仅支持.bin文件格式怎么解决?

    NxpOpenBus SW 仅支持 .bin 文件格式。如何解决这个问题。有没有其他解决方案。 对于文件夹 flash_driver.bin
    发表于 05-29 06:42