HEX文件格式分析

日常开发工作中hex文件是经常用到的一种文件格式,例如生产部门进行量产程序烧录,那么往往使用的是HEX文件。

下面以stm32生成的hex为例,分析hex的文件格式:
官方定义:
<0x3a>[数据长度1Byte][数据地址2Byte][数据类型1Byte][数据nByte][校验1Byte]<0x0d><0x0a>

打开一个stm32生成的hex文件:

1)结合格式分析第一行(指定基地址)
:020000040800F2(:02 0000 04 0800 F2)

解析:
“:” --对应格式中的<0x3a>,0x3a就是冒号的ASCII码

“02”–对应数据长度,即长度为2字节

“0000”–对应数据地址,长度为2个字节。Stm32一个32位的芯片两个字节肯定不足以表示地址(要四个),所以这里地址的具体用法要结合后面的数据类型分析。这里为4指定基地址,所以这两个字节并没有什么用。

“04”–对应数据类型,具体的含义见【注释1】,这里的4是指定基地址。

“0800”–对应数据,长度是浮动的,这里是2个字节,和前面的长度相呼应。这里指定的是基地址。当然指定的是高16的地址,如常见的0x0800 0000 ,所以这个基地址<<16使用。

“F2”–对应的是校验结果,result = 256 - (date[0] + … +date[n])% 256 ,0xF2 = 0x100 - (0x02 +0x00 + 0x00 + 0x04 + 0x08 +

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值