在上一篇《OneNet 里 SOTA升级体验 (基于 ESP8266)》中已经将核心步骤给大家一一讲解了一遍,这篇我们就说下实际操作中的细节。
首先我们看下升级步骤:
获取 Token
分片下载文件
校验下载文件是否正确
设置标志位调用系统函数来运行新的固件
第一步比较简单,参考上一篇就知道怎么操作了,还有一些初始化动作:
设置升级标志位:system_upgrade_flag_set(UPGRADE_FLAG_START);
初始化MD5:MD5Init(md5);
第二步比较麻烦,我的做法是先malloc一个4K动态缓存,然后每次请求 1KB 数据(ESP8266的最大一帧是有限制,好像是1460字节);
当请求到4KB后将它整体写入到flash中,还有一步计算 MD5 (调用 MD5_Update() 函数) 别忘记了;
如何判断最后一帧呢