Intel HEX 文件格式

来源:互联网 发布:java在线直播 编辑:程序博客网 时间:2024/05/16 07:19

1)由ASCII码组成


2)每一行的结构是

:LLAAAATT[DD...]CC回车换行

a) 冒号是每一行记录的开始;

b) LL表示DD域的长度

c) AAAA是地址域,他表示数据的起始地址<如果是数据记录这表示将要烧录的这条记录中的数据在EPROM中的偏移地址,对于不支持扩展段地址和扩展线性地址的如89C51,这就是此条记录的起始地址

d) TT这个域表示这条HEX记录的类型,可选的有如下几种
00 ----数据记录
01 ----文件结束记录
02 ----扩展段地址记录
04 ----扩展线性地址记录
05----指定32位EIP寄存器线性地址

c)DD是数据域

d)CC是效验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有对字母<不包括本效验字和冒号>所表示的十六进制数字<一对字母表示一个十六进制数,这样的一个十六进制数为一个字节>都加起来然后模除256得到的余数最后求出余数的补码即是本效验字节CC

例如:
:0300000002005E9D
cc=0x01+NOT((0x03+0x00+0x00+0x00+0x02+0x00+0x5E)%0x100)=0x01+0x9C=0x9D
C语言描述:
UCHAR cc;
cc=(UCHAR)~(0x03+0x00+0x00+0x00+0x02+0x00+0x5E);
cc++;

3)结束行是固定的 :00000001FF,  也可以照2)分析



原创粉丝点击