单片机的远程升级

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得知升级失败的原因。

 tfp远程升级:

  参考文章:C语言实现的简易FTP客户端 ,RT-thread网友的实现

       rt-thread 基于ftp server的软件包为agile_ftp。。

原文地址:https://www.cnblogs.com/jieruishu/p/14713007.html