以*.hex为后缀的文件我们称之为HEX文件。 HEX的英语原始意思是16进制。这种文件格式主要用于保
存单片机固件。
整个文件以行为单位,每行以冒号开头,内容全部为16进制码,2个ASCII码字符表示1个Hex字节
:02 0000 04 0804 EE
- 每行以冒号开头
- 第1字节0x02表示数据区的字节个数,用ASCII表示就是4个ASCII字符。
- 第2、 3字节0x0000 表示偏移地址或无用填0
- 第4字节0x04表示本行记录的类型
'00' Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
'01' End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾
'02' Extended Segment Address Record: 用来标识扩展段地址的记录
'03' Start Segment Address Record: 段地址 STM32不用
'04' Extended Linear Address Record: 用来标识扩展线性地址
'05' Start Linear Address Record: 程序启动运行的地址 - 第5、 6字节表示数据区
- 最后1个字节是校验字节。所有16进制码的累加和(不计进位),检验和 = 0x100 - 累加和
:02 0000 04 0804 EE <---------------首行给出烧录的目标地址的高16位 : 0x0804
:10 0000 00 A899 0020 C101 0408 830B 0408 3908 0408 DA <------- 烧写到0x0804 0000 处的数据
:10 0010 00 7F0B 0408 AB02 0408 5518 0408 0000 0000 18 <------- 烧写到0x0804 0010 处的数据
:04 0000 05 0804 01AD 3D <------- 05类型的行对于烧写程序无用。见参看英文。
:00 0000 01 FF <------- HEX文件结束行
05 类型: Start Linear Address Record. The address field is 0000, the byte count is 04. The 4 data
bytes represent the 32-bit value loaded into the EIP register of the 80386 and higher CPU.
注:以上文字摘录安富莱STM32-V6 开发板软件开发手册