HEX文件解析

开头数据:

:020000041004E6
:1000000000800020119B0510AD8D0510A98F0410F4

每行从“:”(0x3a)开始,这从文件内容可以看出。以回车键结束(0x0d,0x0a),每行以换行结束。回车换行的十六进制不会显示。

现在开始解析:第一句

 

后面的数据位数数据起始地址数据类型或叫功能码数据校验位
0x020x00 0x000x040x10 0x040xE6

数据类型共有:

'00'Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录

'01'文件结束记录:用来标识文件结束,放在文件的最后,标识HEX文件的结尾

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

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

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

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

在文件中主要是0x00。

现在的0x04,即该行记录的是一个拓展地址(0x10 0x04 是地址信息,用法是将该地址(0x1004<<16) 后作为基地址。并且表示在下一个04类型行出现之前都要使用该地址.也就是下一句的地址0x00 0x00,起始地址就是从0x10040000开始。

第二句:

后面的数据位数数据起始地址数据类型或叫功能码数据校验位
0x100x00 0x000x0000800020119B0510AD8D0510A98F0410(十六进制)0xF4

 

后面数据16位,起止地址为0x10040000,类型记录数据

结尾数据:

:04000005100400C122
:00000001FF

后面的数据位数数据起始地址数据类型或叫功能码数据校验位
0x040x00 0x000x05100400C10x22

 

数据类型0x05,开始线性地址记录,就是函数入口地址

在map文件可以看到    __main                                   0x100400c1   Thumb Code     8  __main.o(!!!main)

数据对应着地址。

后面的数据位数数据起始地址数据类型或叫功能码数据校验位
0x000x00 0x000x01 FF

 

数据类型为0x01,表示结束。

最后一个教校验计算:0xF4 = 0xff & ( 0x100- (0x10+4*(0x00)+0x80+0x00+...+0x04+0x10) ) 

在nodepad++中,如果校验和不是绿色,则表示校验和错误

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮若于心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值