Intel hex文件格式
Intel HEX格式文件是一种常见的用于表示程序存储器内容的文本格式,常用于将程序存储器内容导出或者导入到不同的开发工具中。它的文件扩展名通常是 .hex。 该文件格式由一系列行组成,每一行以冒号(:)开头,以回车换行符(\r\n)结尾,每一行包含以下几个部分: 起始符号:一个字符,表示该行的起始,必须为“:”。 数据长度:一个字节,表示该行所包含的数据长度,以字节为单位,范围从 0 到 255。 起始地址:两个字节,表示该行数据在存储器中的起始地址,以字节为单位,高位在前,低位在后。 记录类型:一个字节,表示该行数据的类型。常见的记录类型包括数据记录(00)、结束记录(01)等。 数据:一个或多个字节,表示该行的数据内容。数据的长度由数据长度字段指定。 校验和:一个字节,表示该行数据的校验和,为数据长度、起始地址、记录类型和数据的按位异或和的补码。 例如 :10010000214601360121470136007EFE09D2190140 //起始符号是“:”。 //数据长度是“10”。 //起始地址是“0100”。 //记录类型是“00”,表示这是一个数据记录。 //数据部分包含了16个字节的数据:“214601360121470136007EFE09D21901”。 //校验和是“40”。 //这个数据记录包含了16个字节的数据,它们对应的起始地址是0x0100~0x010F。每两个字节表示一个数据,因此这个记录实际包含了8个数据,分别是“21 46 01 36 01 21 47 01 36 00 7E FE 09 D2 19 01”。 :00000001FF //起始符号是“:”。 //数据长度是“00”。 //起始地址是“0000”。 //记录类型是“01”,表示这是一个结束记录。 //数据部分为空。 //校验和是“FF”。 //这个记录表示文件结束。当解析Intel HEX格式文件时,如果读到了一个记录类型为“01”的记录,就表示已经读到了文件的结尾,应该停止解析。 记录类型 在Intel HEX格式文件中,一共定义了5种记录类型。它们分别是: 数据记录(Data Record),记录类型为“00”。 结束记录(End Of File Record),记录类型为“01”。 扩展段地址记录(Extended Segment Address Record),记录类型为“02”。 扩展线性地址记录(Extended Linear Address Record),记录类型为“04”。 起始段地址记录(Start Segment Address Record),记录类型为“03”。 其中,最常用的是数据记录和结束记录。其他三种记录类型则用于更高级的应用,如程序跳转、内存分段等。 举例: 数据记录(Data Record)::10010000214601360121470136007EFE09D2190140 这是一条16字节的数据记录,其记录类型为“00”。数据部分为“214601360121470136007EFE09D21901”。 ...