请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2222|回复: 3
收起左侧

[其它] 远程升级中如何实现断点续传?

[复制链接]

21

主题

61

回帖

124

积分

初级会员

积分
124
发表于 2021-8-9 15:30:11 | 显示全部楼层 |阅读模式
如题,远程升级中如何实现断点续传?现在做主机给从机进行远程升级时的断点续传,需要在通信暂时断开,然后重新连接上后继续从之前的进度开始传输。主机和从机都是STM32,使用FreeRTOS系统,通信方式是RS485或者CAN。存储bin文件使用的RL_FlashFS的EFS文件系统。有什么好的机制分享下吗?谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2021-8-9 18:15:00 | 显示全部楼层
这种断点续传貌似比较好整,

你的升级端记录下总大小和当前传输的位置即可。
回复

使用道具 举报

6

主题

18

回帖

36

积分

新手上路

积分
36
发表于 2021-8-10 18:11:00 | 显示全部楼层
这个得从通信机制上入手,主机每次发送都发送本包的偏移量和数据量, 如 数据头 + 偏移量 +数据量 +数据 +尾  ,从机收到后处理,然后返回给主机确认,如 数据头 + 偏移量 +数据量 +确认 +尾 , 收到确认就加偏移,没收到就重发, 断开时记录当前的偏移量就好。
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2021-8-11 08:34:54 | 显示全部楼层
第一次握手,发送总包数,然后每一次传数据比如1K,通讯协议有包ID,接收方按包ID在线升级。中断后等待,再次接收判断包ID是否正确。
续传好弄,就怕升级多次中断,跨度时间太长。
石油行业,在偏僻地方,无线经常中断,升级一次,可能好几小时。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 23:38 , Processed in 0.246957 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表