PIC单片机Hex文件的校验和是怎么计算的?

[复制链接]
1084|12
手机看帖
扫描二维码
随时随地手机跟帖
虹涛犹珷|  楼主 | 2025-6-2 10:37 | 显示全部楼层 |阅读模式
最近做一个PIC16F系列单片机的BootLoader更新程序上位机,想解析Hex文件,无法知道hex校验和的计算过程,按checksum16来计算发现对不上,我把程序文件全部填充x00,发现校验和是0x529F,应该是配置字这边计算的结果,把配置字相加取16位也对不上。              

使用特权

评论回复
虹涛犹珷|  楼主 | 2025-6-2 10:44 | 显示全部楼层
下面的测试的图片
微信截图_20250602104254.png 微信截图_20250602104310.png

使用特权

评论回复
丙丁先生| | 2025-6-2 22:37 | 显示全部楼层
没选对文件吧

使用特权

评论回复
xch| | 2025-6-3 14:06 | 显示全部楼层
虹涛犹珷 发表于 2025-6-2 10:44
下面的测试的图片

写个软件破姐一下。也许是CRC16。

使用特权

评论回复
xch| | 2025-6-3 14:12 | 显示全部楼层
不需要一大堆样本。用两个字节。
比如 00 00;00 01;看看校验怎么变化。大变样就猜是CRC16。就穷举生成码和初始码。就32bit运算量。很快就能得到结果

使用特权

评论回复
wutaosamuel| | 2025-6-3 17:13 | 显示全部楼层
我用v6.25的IPE版本来看应该可以选择CRC32的校验的,看看CRC32的能不能用
Screenshot 2025-06-03 170109.png


使用特权

评论回复
治愈糖果屋| | 2025-6-3 19:09 | 显示全部楼层
校验和计算通常是根据Hex文件中的字节数据来计算的。对于PIC单片机,校验和的计算可能涉及到特定的算法,这可能需要查阅官方的技术文档。

使用特权

评论回复
虹涛犹珷|  楼主 | 2025-6-3 20:41 | 显示全部楼层

已经解决了校验的问题,需要看官方的文档https://ww1.microchip.com/downloads/aemdocuments/documents/oth/productdocuments/programmingspecifications/41390d.pdf#page=30

使用特权

评论回复
虹涛犹珷|  楼主 | 2025-6-3 20:42 | 显示全部楼层
治愈糖果屋 发表于 2025-6-3 19:09
校验和计算通常是根据Hex文件中的字节数据来计算的。对于PIC单片机,校验和的计算可能涉及到特定的算法,这 ...

是的,已经找到文档了

使用特权

评论回复
虹涛犹珷|  楼主 | 2025-6-3 20:46 | 显示全部楼层
wutaosamuel 发表于 2025-6-3 17:13
我用v6.25的IPE版本来看应该可以选择CRC32的校验的,看看CRC32的能不能用

在官方的文档帮助下已经找到了校验的计算过程。 微信截图_20250603204535.png

使用特权

评论回复
丙丁先生| | 2025-6-4 06:56 | 显示全部楼层
虹涛犹珷 发表于 2025-6-3 20:41
已经解决了校验的问题,需要看官方的文档https://ww1.microchip.com/downloads/aemdocuments/documents/o ...

感谢分享,应用场景?

使用特权

评论回复
虹涛犹珷|  楼主 | 2025-6-4 15:35 | 显示全部楼层
丙丁先生 发表于 2025-6-4 06:56
感谢分享,应用场景?

制作了一个BootLoader的上位机,可以导入hex,解析并计算出校验和,然后通过串口更新程序。

使用特权

评论回复
丙丁先生| | 2025-6-5 03:16 | 显示全部楼层
虹涛犹珷 发表于 2025-6-4 15:35
制作了一个BootLoader的上位机,可以导入hex,解析并计算出校验和,然后通过串口更新程序。 ...

感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝