首页 > 编程知识 正文

文件找不到了情况说明,hex文件打开方式

时间:2023-05-04 09:46:32 阅读:156425 作者:2558

在项目学习时,将生成的工程文件. hex写入stm32单片机需要分析hex文件的内容并修改其中的一些数据。 通过学习,知道了hex的格式内容。 然后把它记录下来

在工程项目中,将程序下载到flash中从0x0800 0000开始的位置

这里是生成的. hex文件的数据。

例如,第一行数据:020000040800F2基本上表示十六进制数据0x020x000x000x040x080x000xf2

第一个字节0x02表示本行数据的长度。 第二、三字节0x000x00表示本行数据的开头地址; 第4字节的0x04表示数据类型,数据类型为0x00、0x01、0x02、0x03、0x04、0x05。 “00”数据记录:用于记录数据。 HEX文件中的大多数记录用数据记录' 01' End of File Record:来标识文件的末尾,放在文件的末尾,并标识HEX文件的末尾

' 02 '用于标识扩展段地址的记录

' 03 ' startsegmentaddressrecord :段地址记录开始

' 04 ' extendedlinearaddressrecord :用于标识扩展线性地址的记录

' 05 '开始记录startlinearaddressrecord :线性地址

4 .然后数据,0x080x00

5 .最后一个字节0xf2是校验和。

校验和算法计算0xf2前所有十六进制代码的累计和(无进位),检查和)=0x100 -累计和 '04' '05',都是用来提供地址信息的。每次碰到这2个记录的时候,都可以根据记录计算出一个“基”地址。对于后面的数据记录,计算地址的时候,都是以这些“基”地址为基础的。

所有HEX文件都由记录(RECORD )组成。 在HEX文件中,每行表示一条记录。 的基本格式如下。

:0200000040800f2

:1000000048 b 6002085010008 b 14500008252 b 0108 ed

:10001000 b 9450008 c 1450008 c 9450008 c 9450008 c 945000800000 b 6

:00000001FF

分析上面的HEX文件:

第一条记录的长度为02,LOAD OFFSET为0000,RECTYPE为04,表示该记录是扩展段地址记录。 数据为0800,校验和为F2。 根据该记录的长度和数据,[0x080016]=0x08000000以后的数据记录可以计算以该地址为基地址的基地址。

第2条记录的长度为10(16 )、LOAD OFFSET为0000、RECTYPE为00表示该记录为数据记录。 数据为48b 6002085010008 b 1450008252 b 0108,共计16个字节。 这张记录的校验和是ED。 此时的基地址为0X0800 0000,如果加上OFFSET,则该记录的16BYTE的数据的起始地址为0x0800 0000 0x0000=0x0800 0000。

第3条记录的长度为10(16 )、LOAD OFFSET为0010、RECTYPE为00表示该记录为数据记录。 数据为B9450008C1450008C945000008000000,共计16个字节。 这张记录的校验和是B6。 此时的基地址为0X0800 0000,如果加上OFFSET,则该记录的16BYTE的数据的起始地址为0x80000 0x0010=0x0800 0010。

第4条记录的长度为00,LOAD OFFSET为0000,TYPE=01,校验和为FF。 这表示它是标识文件末尾的结束文件记录。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。