冒号 | 本行数据长度 | 本行数据起始地址 | 数据类型 | 数据 | 校验码 |
: | 1 byte | 2 bytes | 1 byte | n byte | 1 byte |
: | 05 | 0010 | 00 | A2C2A280FE | 67 |
: | 00 | 0000 | 01 | FF |
第一个字节:表示本行的数据长度.
第二个,第三个字节表示本行数据的起始地址.
第四字节表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。
'00' Data Rrecord:用来记录数据,HEX 文件的大部分记录都是数据记录
'01' End of File Record: 用来标识文件结束,放在文件的最后,标识 HEX 文件的结尾
'02' Extended Segment Address Record: 用来标识扩展段地址的记录
'03' Start Segment Address Record: 开始段地址记录
'04' Extended Linear Address Record: 用来标识扩展线性地址的记录
'05' Start Linear Address Record: 开始线性地址记录
然后是数据,最后一个字节 为校验和。
校验和的算法为:计算校验和前所有 16 进制码的累加和 (不计进位),检验和 = 0x100 - 累加和.
一个完整的超级简单的 hex 文件的截图:(notepad++ 代开,第一行的 | 是我的光标)
---------------------