跳转到内容

串口 Bootloader 升级提示词范例

请协助我实现并验证当前设备的 UART Bootloader 升级流程,确保分包传输、Flash 擦写、完整性校验和异常恢复可靠。
你可以检查工程代码、构建并烧录固件;不要在未确认 Flash 分区、回滚策略和供电安全前覆盖唯一可启动固件。
1. 升级条件
目标 MCU:Flash 起始地址、页大小、擦写粒度、向量表偏移和保护位以当前工程为准。
协议链路:串口参数、升级握手、分包大小、序号、CRC、ACK/NACK、超时和重传策略。
镜像策略:应用区、备份区、元数据、版本号、签名或校验、回滚条件和启动判定。
测试场景:正常升级、错包、丢包、重复包、断电、版本回退和无效镜像。
2. 当前问题
串口能传输镜像,但升级后偶发无法启动;中途失败后设备可能卡在 Bootloader 或应用区被部分覆盖。
请完成以下工作:
- 找到 Bootloader 入口、串口接收、Flash 擦写写入、镜像校验、跳转应用和元数据保存代码;
- 核对向量表、栈指针、跳转前外设关闭、中断关闭和缓存处理;
- 检查分包序号、CRC、超时重传、写入对齐、擦写边界和掉电恢复逻辑;
- 增加升级状态日志或可查询状态,记录进度、失败原因、校验值和启动判定;
- 用脚本执行正常、错包、丢包、重复包和断电恢复测试,统计成功率;
- 修改协议或存储策略后,构建烧录并复测。
最终输出应包含:Flash 分区、升级状态机、修改文件、测试统计,以及仍需硬件安全启动或签名机制覆盖的风险。