解析单片机烧录的hex文件,玩了这么久,你知道长什么样子?

本文详细介绍了单片机烧录所用的HEX文件格式,包括文件解析、扩展地址处理以及如何在程序中实现HEX解析。通过实例解析了HEX文件的结构,如数据长度、地址、标识符、有效数据和校验数据,并探讨了扩展地址的计算方法。还展示了用于解析HEX文件的C代码片段。
摘要由CSDN通过智能技术生成

含有单片机的电子产品在量产的时候会用到.hex文件或者.bin。hex是十六进制的,包含地址信息和数据信息,而bin文件是二进制的,只有数据而不包含地址。任何文件都有一定的格式规范,hex文件同样具有完整的格式规范。今天和大家分享一下,hex是如何解析的。

1.hex文件解析

hex文件可以通过UltraEdit、Notepad++、记事本等工具打开,用Notepad++打开之后会看到如下数据内容。

单片机烧录用的hex文件,长什么样子?

使用Notepad++打开后会不同含义的数据其颜色不同。每行数据都会有一个冒号开始,后面的数据由:数据长度、地址、标识符、有效数据、校验数据等构成。以上图的第一行为例,进行解析:

第1个字节10,表示该行具有0x10个数据,即16个字节的数据;

第2、3个字节C000,表示该行的起始地址为0xC000;

第4个字节00,表示该行记录的是数据;

第5-20个字节,表示的是有效数据;

第21个字节73,表示前面数据的校验数据,校验方法:0x100-前面字节累加和

其中,第4个字节具有5种类型:00-05,含义如下:

字段含义00表示后面记录的是数据01表示文件结束02表示扩展段地址03表示开始段地址04表示扩展线性地址05表示开始线性地址

单片机的hex文件以00居多,都用来表示数据。hex文件的结束部分如下图所示。

单片机烧录用的hex文件,长什么样子?

最后一行的01表示文件结束了,最后的FF表示校验数据,由0x100-0x01=0xFF得来。

 

2.扩展地址

细心的同学可能发现了,上面的地址都是两个字节,范围从0x000-0xFFFF,如果地址是0x17FFFF该怎么办呢?这就要用到扩展字段了,举例如下:

单片机烧录用的hex文件,长什么样子?

第一行中࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

国产MCU

感谢客官的认可,欢迎一起交流

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

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

打赏作者

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

抵扣说明:

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

余额充值