IAP远程升级常用的通讯协议有TCP、HTTP、FTP、MQTT等。其中HTTP、FTP和MQTT都属于应用层协议。
网上的升级参考步骤:
我自己的升级方法:
以太网(W5500)+ModbusTCP+TFTP+TCP Client Message +eerom
1远端通过ModbusTCP发送write_coil_reg远程升级命令,将updata_status=0x01fe写入eerom.重启进入boot.
2 boot查询eerom中的updata_status标记,若不需要升级则调整到APP;若为0x01fe则进入tftp升级线程。
3创建tftp client从远程服务器位置下载文件到外部flash的download分区。直到下载完成。
4 若下载成功,则将app拷贝到片内的backup分区,成功后再将外部flash的download分区拷贝到片内的app分区,若中间任何出错,则设置不同的updata_status状态,并将片内的back区数据拷贝回app。并写入eerom,然后进行调整到APP。
5 APP查询eerom中的updata_status标记,创建tcp客户端将升级的结果("success"/"failed")通知给升级服务器,并得到服务器的回复("OK"),然后进入正常业务逻辑。
6 远程升级结束。可以通过ModbusTCP读取updata_status得知升级失败的原因。