HEX文件格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HEX文件格式相关的知识,希望对你有一定的参考价值。

:0400000500001D6971
:046000003A68A1DF7A
:086004003CF4C789D7198ECCCA
:06600C00C4862C1F3200C7
:00000001FF

哪位大哥能帮我分析下这个HEX文件
HEX文件的基本格式我懂,但是这个的记录类型是05,我就不清楚了,哪位能帮忙下,急用!

Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录

由十六进制数组成的机器码或者数据常量。

格式为:

: LL AAAA TT DD...DD CC

其中共六部分

:冒号 是每一条Intel HEX记录的开始

LL 是这条记录的长度域,他表示数据(dd)的字节数目.

AAAA 是地址域,他表示数据的起始地址

TT这个域表示这条HEX记录的类型,他有可能是下面这几种类型

00 ----数据记录

01 ----文件结束记录

02 ----扩展段地址记录

04 ----扩展线性地址记录

DD是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以 查看LL域的说明

CC 是效验和域,它表示这个记录的校验和。校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。

参考资料:http://hi.baidu.com/572info/blog/item/73a6b83cf3317b2c70cf6c9a.html

参考技术A '05'的类型指 Start Linear Address Record
具体的意思是说,这个类型(05 type)记录里面的数据域的内容要写进EIP 寄存器里边。这样的目的是为了在ISP编程之后,程序能够立刻开始执行。详情可以参考维基百科里边的介绍。
参考技术B 第四字节表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。
'00' Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
'01' End of File Record:用来标识文件结束,放在文件的最后,标识HEX文件的结尾
'02' Extended Segment Address Record:用来标识扩展段地址的记录
'03' Start Segment Address Record:开始段地址记录
'04' Extended Linear Address Record:用来标识扩展线性地址的记录
'05' Start Linear Address Record:开始线性地址记录
参考技术C hex是十六进制文件,是一些代码。不可以转成C。即使能转成汇编也不一定是原来程序的原意。

以上是关于HEX文件格式的主要内容,如果未能解决你的问题,请参考以下文章

hex文件转bin格式

探秘可靠的INTEL HEX 文件格式协议

hex和bin文件格式的区别

硬件基础之HEX文件格式

硬件基础之HEX文件格式

HEX文件和BIN文件格式的区别