打印
[STM32H5]

关于80025远程升级OTA时的flash写入问题

[复制链接]
795|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kevia|  楼主 | 2024-11-18 22:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kevia 于 2024-11-18 22:19 编辑

我在进行对80025升级OTA的过程的遇到了问题,我们的升级文件有100多kb,分为2000多包,每包48字节下发,写入的起始地址假设为0x00085000,每一包带有相对于起始地址的偏移,如no.0为0x00000000,no.1为0x00000018(因为实际写入是半字编程,所以是0x30 / 2),全部发完后进行校验。 我们的升级是统一广播完所有包之后,再根据个体缺少的包进行下发。比如收到了1,2,3,4,6,7,那么再全部发完2000包之后会马上给他发缺少的5。 问题出现了,如果是正常按顺序接收完所有包,校验就可以通过,如果是缺少了某些包等到最后补充的,那么不管缺少的数目,都会校验失败。 我已经确定了每一包都收到了,且下发的数据成功方和失败方也是一致的。 所以想问下,是不是该芯片的写入必须按顺序写入,不能在中途插入,希望有用过的大佬可以解惑一下

使用特权

评论回复
沙发
powerantone| | 2024-11-19 12:59 | 只看该作者
按顺序写入避免跳跃写入数据

使用特权

评论回复
板凳
laocuo1142| | 2024-11-19 13:00 | 只看该作者
在接收每个数据包时,都可以增加一个简单的校验机制(如校验和或CRC校验),以确保数据包在传输过程中没有发生错误。在所有数据包都写入完成后,再进行一次整体的校验,以确保整个升级文件的正确性和完整性。

使用特权

评论回复
地板
probedog| | 2024-11-19 13:01 | 只看该作者
查阅80025的官方文档或技术手册

使用特权

评论回复
5
失物招領| | 2024-12-29 22:19 | 只看该作者
你这算是断点续传?不过我觉得不如那包没传过来就等等呢

使用特权

评论回复
6
她已醉| | 2024-12-30 02:00 | 只看该作者
一般情况这种存的方式就发生改变,就容易出现这种情况吧

使用特权

评论回复
7
温室雏菊| | 2024-12-30 03:00 | 只看该作者
其实你可以把包分少点,而且每包数据字节大一些呢?

使用特权

评论回复
8
故意相遇| | 2024-12-30 04:00 | 只看该作者
芯片写入肯定是要按顺序写入的啊

使用特权

评论回复
9
白马过平川| | 2024-12-30 05:00 | 只看该作者
根据您提供的信息,问题可能出在写入数据的顺序上。某些芯片在编程时确实需要严格按照指定的顺序写入数据,特别是在进行OTAOver-The-Air)升级时,因为升级过程中涉及到的固件或数据可能有依赖关系,或者按照特定的流程进行编程才能正常工作

使用特权

评论回复
10
捧一束彼岸花| | 2024-12-30 06:00 | 只看该作者
在您的情况下,如果芯片写入操作必须严格按照包的顺序进行,那么在补充缺少的包时改变了这个顺序,可能会导致校验失败。即使每包数据都成功接收并下发,但由于顺序不对,芯片可能无法正确解析或应用这些数据

使用特权

评论回复
11
西洲| | 2024-12-30 07:00 | 只看该作者
确认芯片编程手册或技术规格书中的相关说明,了解是否必须严格按照顺序写入数据。

使用特权

评论回复
12
风凉| | 2024-12-30 08:00 | 只看该作者
如果芯片允许中途插入数据,请确保您的下发和校验逻辑能够正确处理这种情况。例如,在补充缺失包时,除了下发缺失的包外,还需要重新进行校验,确保整个升级过程的数据完整性和正确性

使用特权

评论回复
13
春日负喧| | 2024-12-30 09:00 | 只看该作者
如果芯片确实需要严格按照顺序写入,您可以考虑修改下发策略,确保所有设备都按顺序接收并写入所有包,然后再进行校验

使用特权

评论回复
14
将爱藏于深海| | 2024-12-30 10:00 | 只看该作者
我觉得就是写的顺序不对导致的

使用特权

评论回复
15
是你的乱码| | 2024-12-31 00:32 | 只看该作者
可能存在 校验时的数据读取问题

使用特权

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

本版积分规则

13

主题

18

帖子

0

粉丝