HEX文件和BIN文件格式的区别

Python019

HEX文件和BIN文件格式的区别,第1张

简单来说:HEX文档是ascii码的文档。是不能直接烧到单片机中的。中间要有转换程序。但是现在很多编程器都设计成直接可以导入hex文件烧录的,其实这是做了设计的。bin文件是二进制文件,是可以直接烧到芯片中,中间不用转换的。HEX文件中是包含了地址信息的。这和BIN文件不同,BIN文件中只包含了数据信息,所以其实有时候同一个程序,bin文件和hex文件的容量都不相同的,芯片解密出来的文件一般也是bin或者hex格式。

Hex 文件和 Bin 文件的区别,这两个文件里都包含 CPU可以执行的机器码,只是 Hex 比Bin 多一些信息,就是机器码的存储

地址。这些存储地址实际是给烧写程序的软件使用的。如果我们烧写 Hex 文件到板卡里(Flash 存储器) ,

烧写软件就不会问我们存储地址,因为这个文件里已经包含了这类信息了,这类信息是编译器在生成 Hex

的时候加进去的,当然编译器会有对应的项要你填写。如果是烧写 Bin 文件,烧写软件就会询问你要烧写

到哪个地址。一般情况下,CPU会从 0 地址开始执行程序,但是有些 CPU是从其他地址开始的,所以这个

起始值要视情况而定。而且有时为了调试方便,有些工程师会把 Bin烧到 RAM 里。

HEX

BIN

hex

文件常用来保存单片机

ARM

或其他处理器的目标程序代码。

它保存物理

程序存储区中的目标代码映象。一般的编程器都支持这种格式。

hex

文件全部由可打印的

ASCII

字符组成,如下例所示:

:2000000012014c75a800e4f508f509780a7a78e4f608dafcd283fcfded240af9a

7050dbd81

:2000200000010ced2488ec34ff50edc283e4fcfded240af9e76d7013ed33e43c7

00d0dbd2a

:2000400000010ced2488ec34ff50e50509e50970020508e50924a8e50834fd50a

ee4f50874

hex

由一条或多条记录组成,

每条记录都由一个冒号

“:”

打头,

其格式如下:

:CCAAAARR...ZZ

其中:

CC

本条记录中的数据字节数

AAAA

本条记录中的数据在存储区中的起始地址

RR

记录类型:

00

数据记录

(data record)

01

结束记录

(end record)

02

段记录

(paragraph record)

03

转移地址记录

(transfer address record)

...

数据域

ZZ

数据域校验和

hex

文件记录中的数字都是

16

进制格式,两个

16

进制数字代表一个字节。

C

C

域是数据域中的实际字节数,地址、记录类型和校验和域没有计算在内。

校验和是取记录中从数据字节计数域

(CC)

到数据域

(...)

最后一个字节的所

有字节总和的

2

的补码。