这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 【dsPIC33E】Bootloader(二)Microchip的Hex文件结构

共5条 1/1 1 跳转至

【dsPIC33E】Bootloader(二)Microchip的Hex文件结构介绍

助工
2021-08-12 23:56:14     打赏

市面上大多数单片机的Hex文件都是基于Intel Hex,而dsPIC33E也不例外,dsPIC33E支持的格式为Intel HEX32(INHX32)。


hex文件以ascii形式,按照行来记录数据


每一行从:开始,每至少2个字符表示一组16进制数据,格式为 :BBAAAATTHHHH....HHHCC

BB -- 16进制,表示此行数据长度字节数,表示HH的数目

AAAA -- 16进制,表示数据记录的起始地址,若此行是数据记录,则表示偏移地址,其它无意义

TT -- 16进制,表示记录类型,

00-数据记录(Data Record); 

01-文件记录结束(End of File record); 

02-扩展段地址记录(Extend Segment address record);后面所有数据地址+段地址左移4位

04-扩展线性地址记录(Extend Linear address record);后面所有数据地址+线性地址左移16位

HH...HH -- 16进制,低字节/高字节 结合数据,高字节在后;注意,若是偏移地址,则都是2字节,高字节在前,低字节在后

CC -- 16进制,校验码,除冒号和自身以外的其他字节数据加起来模除256的余数的补码。


例如:10A6B0000000EB00D4FD0700000F78001E007800BA


CC=01+~(10+A6+B0+00+00+00+EB+00+D4+FD+07+00+00+0F+78+00+1E+00+78+00)=BA


需要特别注意的是:

1、Intel hex是针对字节的,而16位程序计数器不是,需要进行特殊处理,对于dsPIC33E/PIC24E,每个程序存储器地址都是乘了一个2来获取字节地址,例如一个数据存于0x100,而在Hex中为0x200,详见dsPIC33E/PIC24E编程规范(DS70619B)扩展A中的介绍。


2、dsPIC33E/PIC24E没有扩展段地址,只有扩展线性地址


3、MPLAB X项目属性中的建设里,勾选规范会HEX文件和不勾选生成的HEX文件是不一样的,建议规范Hex


4、数据记录为little-endian,低端在前;而地址记录为bit-endian,高端在前


5、Hex文件记录中,一旦出现段地址或者线性地址,之后所有数据都要加偏移地址,直到出现一个新的段地址或者线性地址,再重新变更偏移地址。


6、对于真实地址,是 线性地址<<16 + 段地址<<4 + 偏移地址


示例:


:020000040108EA           线性偏移地址:0108


:0200000212FFBD           段偏移地址:12FF


:0401000090FFAA5502       数据地址:0100


:00000001FF               文件结束


真实地址为:0108左移16位,为01080000;12FF左移4位,为00012FF0;数据地址为00000100;加起来为010930F0


最终解析出来(8位单片机):


地址     数据


010930F0: 90


010930F1: FF


010930F2: AA


010930F3: 55


对于dsPIC33E/PIC24E,16为单片机,2个16位组成32(有效的是低24位)地址要除以2,所以真实地址解析如下:


00849878: 55AAFF90


0084987A: ......


而2个地址组成一个24位的指令字(32位的高8位为0),低端在前,所以表示实际地址应该如下:


00849878: 00AAFF90


0084987a: xxxxxxxx


以下为dsPIC33EP256MC506程序编译后的Hex文件解析,工具源码下载地址(内含Hex文件解析及Bootloader上位机):https://download.csdn.net/download/u010875635/10819828

本节Hex文件解析到此结束,下一节将数Bootloader下位机设计。




专家
2021-08-13 11:35:33     打赏
2楼

学习学习


工程师
2021-08-13 23:47:26     打赏
3楼

介绍的非常到位


高工
2021-08-15 23:58:04     打赏
4楼

不错的讲解


菜鸟
2023-02-20 11:53:09     打赏
5楼

很不错,感谢楼主


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]