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

    浏览量

    13369
  • HEX
    HEX
    +关注

    关注

    0

    文章

    37

    浏览量

    16833
  • AXF
    AXF
    +关注

    关注

    0

    文章

    3

    浏览量

    6649
收藏 人收藏

    评论

    相关推荐

    EPS文件格式如何转换 EPS和SVG文件的区别

    EPS文件格式转换 EPS(Encapsulated PostScript)是一种用于存储矢量图形的文件格式,最初由Adobe公司开发。由于EPS文件在打印时能够保持极高的质量,并且广泛被各种
    的头像 发表于 11-19 10:31 477次阅读

    hex格式和二进制的区别

    HEX格式和二进制在多个方面存在显著的区别。以下是对这两者的对比: 一、定义与表示方式 HEX格式HEX,全称为Intel
    的头像 发表于 11-18 15:24 501次阅读

    我想问下频率信号如何在TDMS文件格式下保存啊?

    我想问下频率信号如何在TDMS文件格式下保存啊?
    发表于 11-12 18:40

    常用对象文件格式

    电子发烧友网站提供《常用对象文件格式.pdf》资料免费下载
    发表于 10-15 09:25 0次下载
    常用对象<b class='flag-5'>文件格式</b>

    发掘3D文件格式的无限潜力:打造沉浸式虚拟世界

    在当今数字化时代,3D技术的应用范围日益广泛,涵盖电影后期制作、产品原型设计、虚拟现实(VR)、增强现实(AR)、游戏等众多领域。而3D文件格式作为3D技术的核心组成部分,对于实现3D数据和模型的存储、共享和操作至关重要。
    的头像 发表于 09-26 18:14 1525次阅读
    发掘3D<b class='flag-5'>文件格式</b>的无限潜力:打造沉浸式虚拟世界

    单片机hex文件反编译成C语言的过程

    使用C语言编写,然后编译成机器码并烧录到单片机的存储器中。 Hex文件是一种用于存储单片机程序的文件格式,它包含了程序的机器码和一些附加信息,如起始地址、结束地址等。Hex
    的头像 发表于 09-02 10:49 3176次阅读

    TSMaster 中 Hex 文件编辑器使用详细教程

    TSMaster软件的Hex文件编辑器提供了文件处理的功能,这一特性让使用TSMaster软件的用户可以更便捷地对Hexbin、mot、s
    的头像 发表于 06-01 08:21 793次阅读
    TSMaster 中 <b class='flag-5'>Hex</b> <b class='flag-5'>文件</b>编辑器使用详细教程

    Dave编译后的bin格式文件大于hex格式文件,可能是什么原因呢?

    如题,今天使用Dave4.5编译时,生成的.bin文件大于.hex文件,请问可能是什么原因呢?哪里没设置吗? .bin
    发表于 05-24 07:40

    stm32下载freertos,hex文件小灯就闪烁,下载bin文件就毫无反应呢?

    为什么我下载hex文件小灯就闪烁,下载bin文件就毫无反应呢求高手解答 谢谢
    发表于 05-16 08:05

    visual programmer打开的文件格式有.s19, .hex , .sx 三种文件格式有什么区别吗?

    st visual programmer打开的文件格式有.s19, .hex,.sx三种文件格式有什么区别吗?是不是不同芯片的文件格式不一样,还是所有的芯片都可以使用这三种
    发表于 04-28 08:56

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

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

    Blender 4.1发布,引入新文件处理API,支持更多文件格式

    此次Blender 4.1引人瞩目的特点在于,全新升级后的API使得开发者可通过拖放行为,从全新的角度扩展文件处理操作。此外,新增对Alembic、Collada、Grease Pencil SVG、OBJ、OpenUSD、PLY和STL文件格式的支持,进一步拓展了传播路
    的头像 发表于 03-27 15:32 644次阅读

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

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

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

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

    Android文件格式详解

    dex是android虚拟机的可执行字节码文件,java文件经过javac编译成class文件,class文件又被dx处理后生成dex文件
    的头像 发表于 01-02 10:21 2371次阅读
    Android<b class='flag-5'>文件格式</b>详解