从事硬件开发,为了方便维护,免不了对模块进行固件升级,所以对于固件升级,简单整理了一下完整的在线升级的实现思路,该思路适用于所有带通讯总线的模块。
需要注意的是,需要额外的上位机配合。
下位机在线升级流程如下图:
原创图片,转发请标注出处。
APP升级步骤
(1)读软件版本、CPU型号、模块型号
(2)UDP包,每包长度1024字节,写入update区
(3)接收n包升级数据包,正常长度1024,将255整数长度的写入FLASH
(4)若接收到回读固件指令,则说明数据发送完成,将最后小于255长度的数据补全0xFF写入FLASH,且根据索引依次返回固件数据,进行校验比较
(5)比较通过后,写入APP升级标志,供重启后boot识别
(6)重启,boot判断升级标志,将升级区域数据复制到APP区,清除升级标志,跳入APP开始运行
BOOT升级步骤
(1)读软件版本、CPU型号、模块型号
(2&#x