<?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): 由于普通的Intel的Hex记录文件只能记录64K的地址范围,
所以大于64K的地址数据要靠扩展Intel Hex格式的文件来记录.对于扩展形式Hex文件,在每
一个64K段的开始加上扩展的段地址规定,下面的数据地址均在这个段内,除非出现新的段地址
定义.
一个段地址 定义的格式如下:
起始符 长度 起始地址 扩展段标示 扩展段序号 无用 累加和
: 02 0000 02 3000 EC
段地址的标识符是第四组数据02,表示扩展地址段的定义,再后面的以为HEX数表示段的数目,
上面的定义为3,表示段地址是3,所以下面的数据地址是3 + XX(XX是64K段内的地址)
文章评论(0条评论)
登录后参与讨论