欢迎来到天天文库
浏览记录
ID:55925580
大小:26.50 KB
页数:4页
时间:2020-06-15
《如何读懂hex文件.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、什么是IntelHEX文件格式IntelHEX文件是遵循IntelHEX文件格式的ASCII文本文件。在IntelHEX文件的每一行都包含了一个HEX记录。这些记录是由一些代表机器语言代码和常量的16进制数据组成的。IntelHEX文件常用来传输要存储在ROM或者EPROM中的程序和数据。大部分的EPROM编程器能使用IntelHEX文件。IntelHEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:StartCode 每个IntelHEX记录都由冒号开头Bytecount是数据长度域,它代表记录当中数据字节的数量Addr
2、ess是地址域,它代表记录当中数据的起始地址Recordtype是代表HEX记录类型的域,它可能是以下数据当中的一个:00-数据记录01-文件结束记录02-扩展段地址记录03-开始段地址记录04-扩展线性地址记录05-开始线性地址记录Data是数据域,一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域中指定的数字相符Checksum是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。HEX文件以行为单位。每行以字符 ‘:’(0x3a)开头,以回车换行符0x0d,
3、0x0a为结束。每行开始和结束之间的所有内容,都是以字符形式表现的。例如数据如果是 0x1A ,那么转换到HEX格式的行里面就是0x310x41。如果数据是16bit的,例如地址,则先显示高位,后显示底位。例如 0x1234,转换成HEX格式文件后变成 0x310x320x330x34,显示出来以后就是1234。将数据部分内容每2个字符看做一个HEX数据,例如::020000040000FA, 我把它看做 0x020x000x000x040x000x000xFA第一个 0x02 为数据长度。紧跟着后面的0x000x00 为地址。再后面的0x04为
4、数据类型,类型共分一下几类:'00'DataRecord'01'EndofFileRecord'02'ExtendedSegmentAddressRecord'03'StartSegmentAddressRecord'04'ExtendedLinearAddressRecord'05'StartLinearAddressRecord 然后,接着0x04后面的两个 0x000x00就是数据。最后一个0xFA是校验码。 HEX文件的每一行都是这样的格式:<0x3a>[数据长度1Byte][数据地址2Byte][数据类型1Byt
5、e][数据nByte][校验1Byte]<0x0d><0x0a> 在例如::1000000018F09FE518F09FE518F09FE518F09FE5C0安装上面的数据行格式分析如下:<0x3a> [数据长度1Byte]10[数据地址2Byte]0000[数据类型1Byte]00[数据nByte]18F09FE518F09FE518F09FE518F09FE5[校验1Byte]C0<0x0d> <0x0a> 每行中的数据并不是一定有的,第二个直接的数据长度为0,那么这行就没有数据。由于每行标识数据地址的只有2Byte,所以最大只能到64K
6、,为了可以保存更大数据地址数据,就有了ExtendedLinearAddressRecord。如果这行的数据类型是0x04,那么,这行的数据就是随后数据的基地址。例如::020000040004F6:1000000018F09FE518F09FE518F09FE518F09FE5C0:1000100018F09FE5805F20B9F0FF1FE518F09FE51D第一行,是ExtendedLinearAddressRecord,里面的基地址是0x0004,第二行是DataRecord,里面的地址值是0x0000。那么数据18F09FE518F
7、09FE518F09FE518F09FE5要写入FLASH中的地址为(0x0004<<16)0x0000,也就是写入FLASH的0x40000这个地址。同样,第三行的数据的写入地址为0x40010。当一个HEX文件的数据超过64k的时候,文件中就会出现多个ExtendedLinearAddressRecord。EndofFileRecord 行是每一个HEX文件的最后一行。例如::00000001FF这样的一行数据内容是固定的,数据长度为0,地址为0。 校验值:每一行的最后一个值为此行数据的校验和。例如::1000000018F09FE518F0
8、9FE518F09FE518F09FE5C0 这行中的 0xC0:1000100018F09FE5805F20B9F0FF1FE518F
此文档下载收益归作者所有