完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
自己基于 QT 写了个上位机软件,通过串口将打包好的固件(通过 rt 的打包工具 rt_ota_packaging_tool.exe 打包的)rtthread.rbl发送到单片机,走的扩展 modbus 协议。每发送一帧的大小为 256 bytes ,modbus 会对每一帧数据进行校验,校验成功则会回复上位机。上位机收到单片机的回复后接着发送下一帧,直到发送完成。所以这个过程中,升级包的每一帧都是经过校验的,但是重启后,Qboot都报校验失败,经过多次测试都是报的:EFCBC81D != body.crc: C494F1E3,说明每次下发的固件都是一样的,每次校验的结果也是一样的。报错如下: 但是,如果是通过 ymodem 来传输,则校验成功。 |
|
相关推荐
2个回答
|
|
要不把FLASH读回来,然后对比下你新下载的那片是否与PC上面完全一致呢?
|
|
|
|
可能是因为使用了不同的校验方式。目前您提到的传输方式有两种:扩展 modbus 和 Ymodem。扩展 modbus 的校验方式可能与固件的 CRC 校验方式不一致,导致固件校验失败。而 Ymodem 是通过 Xmodem 和 CRC 两种校验方式的组合来进行校验的,可能与固件的 CRC 校验方式一致,所以能够校验成功。建议您检查一下扩展 modbus 和固件的 CRC 校验方式,保证一致性。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
1591 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1112 浏览 0 评论
1557 浏览 0 评论
1402 浏览 0 评论
1044 浏览 0 评论
74659 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 07:40 , Processed in 0.673571 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号