原创 Intel HEX file(.Hex)文件含义解析

2009-10-6 22:15 5946 7 7 分类: MCU/ 嵌入式

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


Intel HEX file(文件名.hex)是具有约定格式的ASCII文本文件。文件中每一行包含一个HEX 记录(record)。记录由十六进制数组成,这些数字代表机器指令码或常量。Intel HEX files用来向ROM中传递代码和数据,即它和Bin文件类似,指导下载程序或仿真器将指令码和数据下载到ROM存储器特定的位置上。


 


Intel HEX file可以包含任意多行记录(record),每个record主要由5个部分(域)组成,每部分至少包含两个十六进制字符,即一个字节(8位),其具体形式为“ :llaaaatt[dd...]cc


其中:


:”表示record的开始


ll”表示record中数据位(dd)的长度(几个字节)


aaaa”表示record中的数据存储起始地址


tt”表示record类型,可以为00(数据record),01(文件结束record),02(扩展段地址record),04(扩展线性地址record


dd”表示record数据的一位,一个record可能包含多个数据字节,数据字节的数量必须与ll中指定的相一致


cc”表示record的校验域,


 


下面给出一个实例


 


:10008000AF<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />5F67F0602703E0322CFA92007780C361


:1000900089001C6B7EA7CA9200FE10D2AA00477D81


:0B00A00080FA92006F3600C3A00076CB


:00000001FF


第一行,":"符号表明记录的开始. 后面的两个字符表明记录的长度,这里是10h. 后面的四个字


符给出调入的地址,这里是0080h. 后面的两个字符表明记录的类型;


0 数据记录 1 记录文件结束 2 扩展段地址记录 3 开始段地址记录 4 扩展线性地址记录 5


开始线性地址记录


后面则是真正的数据记录, 最后两位是校验和检查,它加上前面所有的数据和为0.


 


最后一行特殊,总是写成这个样子.


 


扩展Intel Hex的格式(最大1M): 由于普通的IntelHex记录文件只能记录64K的地址范围,


所以大于64K的地址数据要靠扩展Intel Hex格式的文件来记录.对于扩展形式Hex文件,在每


一个64K段的开始加上扩展的段地址规定,下面的数据地址均在这个段内,除非出现新的段地址


定义.


一个段地址 定义的格式如下:


起始符 长度 起始地址 扩展段标示 扩展段序号 无用 累加和


: 02 0000 02 3000 EC


段地址的标识符是第四组数据02,表示扩展地址段的定义,再后面的以为HEX数表示段的数目,


上面的定义为3,表示段地址是3,所以下面的数据地址是3 + XX(XX64K段内的地址)


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条