手机到主控,怎样接起一条升级链
复用已经学过的字节流和可靠事务知识,把升级文件、链路分块、Flash 接收与 App 状态连起来,明确两个芯片的边界。
1 · 先画清升级对象和转发对象
当前链路是手机 → CH582M 蓝牙 → 串口 → STM32。若更新 STM32 应用,CH582M 只是传输桥接的一部分,不能假定它会替主控验证镜像或决定启动。若更新 CH582M 自己,则需要它自己的启动和恢复方案。
先为一个目标设计完整流程,再说明主控与协处理器版本配套。两个固件不一定能按任意先后顺序更新,尤其当桥接协议和升级命令发生变化时。
2 · 手机界面需要哪些阶段
接收进度可按已确认的内容计算,传输失败明确停在哪个阶段。重启导致暂时断连是可能的状态变化,App 应根据设备重连后的实际版本与结果判断,不只显示一个永远转圈的等待框。
3 · 应用分片与链路分块怎样配合
一个升级片可再被蓝牙可写长度拆成多个块;CH582M 的串口转发与缓冲又有自己的容量。接收方确认已处理到哪里,发送方据此继续,避免仅凭蓝牙写入返回就无限发送。
每片带事务、索引或偏移、长度与校验。重复、断连重试与重新开始的语义要固定。接收端检查范围,再写暂存,最后回复确认;如果真实 Flash 擦写较慢,还需流量控制。
4 · 能继续传,不代表任意位置都能恢复
恢复时先查询设备当前事务与实际可信进度。若元数据或目标不匹配,应明确开始新事务或拒绝,不能把手机缓存的百分比直接当作设备状态。断点续传需要持久记录与恢复规则,不是保存一个发送下标就完成。
主线原型协议可帮助理解逐片确认和完整提交,但升级要另外约定镜像格式、启动状态、版本与认证。不能直接沿用原型载荷类型,让旧固件把程序文件误解释成浮点原型。
5 · 怎样从模拟迁移到真实设备
先让手机和电脑文件接收端跑通协议,再在独立实验硬件验证 Flash 接收与启动恢复。审查链接脚本、向量、安全配置和看门狗,确认有可用下载与恢复路径以后,才迁移当前手表。
画一条正常升级和一条传到一半断连的时序图,分别标出手机认为已发送、设备已确认写入、整包有效与新程序确认四个时刻。