网上的资料繁杂且误导,附官方链接 从旧SDK到新ESP8266 RTOS SDK(IDF样式)的FOTA
读懂这篇接下来我的内容也不必看了。
升级策略
官方提供很多种升级策略,example/system/ota的示例下,有不同的升级策略。
芯片型号:esp8266-12f
linux环境:16.04.1-Ubuntu x86_64
代码路径如下,我并没选择最简单的simple_ota_example,因为项目需要我需要通过公司三方库实现OTA。我选择了适合4M flash下的
new_to_new_no_old 目录。new_to_new_with_old 我猜测是否是sdk2.0 直接升级到3.0的计划???待检验
执行步骤
make menuconfig 修改端口号 flash容量 等等(看3/4即可)
注意
WiFi SSID:路由器的Wi-Fi SSID
WiFi密码:路由器的Wi-Fi密码
HTTP服务器IP:可能是PC的IP地址(http命令运行环境的ip地址)
HTTP服务器端口:HTTP服务器端口(根据命令指定8070)
HTTP GET文件名:使用“ ota.ota.bin”,它是示例的目标固件
【make menuconfig注意修改该固件名称指定为“ota.ota.bin”或者对固件直接重命名,否则升级失败】
若要研究sdk2.0如何ota升级sdk3.0固件策略,请移步官方文档,本文只说明sdk3.0固件之间互相升级。
以上完成后执行make 生成的固件烧录到芯片中。
运行Http Server
cd bulid
python -m SimpleHTTPServer 8070
如下
http服务器已运行,将需要升级的固件防止到运行server 命令目录下。
启动芯片,开机后就会自动完成升级了。会在两个ota区域进行升级。