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

描述

写在前面

对于使用过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

bin

bin

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

1.Bin转Hex

Keil官网地址:

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

bin

2.Hex转Bin

Keil官网地址:

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

bin

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的内容。

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 of programmable 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 and outputs 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 and execution.

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

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

2.Bin文件

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

3.axf文件

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

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

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

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

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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分