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

    文章

    34

    浏览量

    13988
  • HEX
    HEX
    +关注

    关注

    0

    文章

    37

    浏览量

    17470
  • AXF
    AXF
    +关注

    关注

    0

    文章

    3

    浏览量

    6818
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【教程】CW32之使用J-Link烧录.hex文件

    在平时调试时,我们也可以使用DAP-Link、ST-Link等进行烧录和Debug,使用方法和STM32类似。然而当我们手头只有hex文件(或bin文件)时,可以尝试使用J-Link进
    的头像 发表于 04-01 16:56 3150次阅读
    【教程】CW32之使用J-Link烧录.<b class='flag-5'>hex</b><b class='flag-5'>文件</b>

    技术资讯 I 一文详解 STEP 文件

    本文要点STEP文件是一种广泛使用的中性文件格式,用于交换3D计算机辅助设计(CAD)数据。STEP文件分为多种类型,适用于特定行业领域及产品开发的全流程。虽然STEP文件格式主要用于
    的头像 发表于 02-06 16:08 1231次阅读
    技术资讯 I 一文详解 STEP <b class='flag-5'>文件</b>

    请问怎么把.hex文件转化为.c文件吗?

    怎么把.hex文件转化为.c文件吗?
    发表于 01-05 07:12

    电能质量在线监测装置的数据压缩存储功能支持的数据格式可以修改吗?

    电能质量在线监测装置的数据压缩存储功能支持的数据格式 部分可修改 ,具体取决于格式类型(数据文件格式 / 压缩算法格式)与厂家设计,核心结论如下: 一、数据
    的头像 发表于 12-11 16:39 1213次阅读
    电能质量在线监测装置的数据压缩存储功能支持的数据<b class='flag-5'>格式</b>可以修改吗?

    KEIL如何输出bin文件

    可以通过Keil自带的fromelf工具将编译生成的.axf文件转换为.bin文件。 1、打开工程设置 Project → Options for Target → 切换到 User
    发表于 11-20 06:51

    往flash里面烧写的是.elf文件还是.hex文件?裸机应该没办法识别.elf文件

    往flash里面烧写的是.elf文件还是.hex文件?裸机应该没办法识别.elf文件吧?
    发表于 11-05 07:02

    Jtti分析SSL证书安装不成功是怎么回事?有哪些原因?

    。本文Jtti.cc将探讨一些常见的SSL证书安装失败的原因,并提供相应的解决方案。 1.证书文件或密钥文件格式错误 SSL证书的安装需要正确格式的证书文件和密钥
    的头像 发表于 10-27 16:15 738次阅读

    bin文件的烧录以及benchmark跑分简易教程

    承接上篇介绍如何生成bin文件的文章,首先打开vivado,点击open hardware manager 连接好板子后,点击open target -auto connect 然后右键点击
    发表于 10-23 07:42

    RISCV指令二进制编码利用matlab生成E203仿真可用文件

    ;%s');%输入文件 %inst_rom ='01AD80D3'; inst_dec=hex2dec(inst_rom); inst_bin
    发表于 10-22 07:06

    AT组件无法正确解析bin文件怎么解决?

    通过ESP32接受网络数据,然后写入MCU中,但是发现在解析bin文件的时候,会自动添加字符。应该是换行符号的解析出现了问题。有什么好办法吗?
    发表于 09-28 08:36

    一文读懂WAV音频文件格式

    本文主要为后面ESP32 I2S音频系列文章做铺垫,所以本篇将介绍WAV音频文件格式,并通过C代码生成一段1S的正弦波WAV音频写入到SD卡里面。
    的头像 发表于 08-25 17:49 5469次阅读
    一文读懂WAV音频<b class='flag-5'>文件格式</b>

    浅谈电子工程师困惑多年的EDA行业的标准格式

    话说每个行业有每个行业的标准,工业软件领域文件格式也有达成一定程度默契,比如不同CAD软件有自己独特的格式,为了各自的用途,有的可以满足不同的曲面,特殊图形的处理,有的是为了轻量化需求。工具之间交换
    的头像 发表于 08-23 12:34 822次阅读
    浅谈电子工程师困惑多年的EDA行业的标准<b class='flag-5'>格式</b>

    关于ANSA metadata文件描述

    包括ANSA多体动力学信息的注释,以及描述ANSA多体动力学和人体模型特定部位变形信息的内容。针对市面上现有的绝大部分人体模型,都开发出了相应的metadata文件
    的头像 发表于 07-29 11:27 1723次阅读
    <b class='flag-5'>关于</b>ANSA metadata<b class='flag-5'>文件</b>的<b class='flag-5'>描述</b>

    CCG4十六进制文件格式是什么?

    你好,先生, 我可以知道 CCG4 十六进制文件格式吗? 2055 行是什么意思?
    发表于 05-15 07:22

    如何使用.hex进行远程更新文件

    使用 .hex 进行远程更新 文件
    发表于 04-21 06:53