地址。这些存储地址实际是给烧写程序的软件使用的。如果我们烧写 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
的补码。