IAP固件升级要点整理

参考:https://iot.mi.com/new/doc/embedded-development/wifi/mcu-ota-protocol.html

方案

WiFi模组加主控MCU的串口方案;
MCU需实现如下功能:
1. MCU的应用固件必须能够识别升级命令,重启进入bootloader;
2. bootloader必须能够完成握手过程;
3. bootloader必须支持Xmodem数据接收,数据块大小为128B;(Ymodem协议数据块支持128B和1024B)
4. bootloader必须支持Xmodem数据两种校中的至少一种:校验和 或 CRC;
5. MCU应用固件必须能够在程序运行时通过mcu_version命令告知当前固件版本号;
6. MCU接收了不完整的数据(如中途断电),重启后bootloader应该能够发现,并停留在bootloader里的升级握手流程里;
7. 为保证能够从错误中恢复,bootloader应该实现一个固定时长的握手窗口;
8. 校验固件完整性!!

升级了错误固件的补救处理机制

主要是有两种方法:
第一种:WiFi模组通过判断上次升级是否成功完成,来决定本次上电后是否要再次对MCU升级。流程是WiFi模组上电后,检查备份分区里是否有完整的MCU固件。如果有,则再次对MCU升级。升级成功后,擦除备份分区里的MCU固件。这种方法要求小米WiFi模组与MCU必须同时上电。
第二种:MCU重启自检发现固件损坏,用update_me命令要求WiFi模组对其再次升级。

你可能感兴趣的:(嵌入式)