远程升级大致的思路都是:
1. 有2块能完成功能加载的固件存储区域和一块公共的预加载区域
2. 预加载区域根据某个可写位置(Flag)的数据加载2块功能固件区域中的1块
3. 功能中都有远程下载控制的部分,用于把新固件下载到另外一个固件存储区,并有校验管理模块,以验证数据下载和写入是完整的
4. 在下载写入校验成功后,改写Flag位置数据,用于切换实现程序下次加载,并进行重启
ESP8266在这里其实和普通的透传数据功能没有差异,仅仅是提供数据通道而已。升级控制之类还是由主控芯片功能来完成的。
如果ESP8266可以去写主存储固件,上面1-4步在一定条件下也可以在ESP8266中实现。