ESP8266 RTOS SDK项目:从旧版本SDK升级到新版本IDF风格SDK的FOTA指南

ESP8266 RTOS SDK项目:从旧版本SDK升级到新版本IDF风格SDK的FOTA指南

ESP8266_RTOS_SDK Latest ESP8266 SDK based on FreeRTOS, esp-idf style. ESP8266_RTOS_SDK 项目地址: https://gitcode.com/gh_mirrors/es/ESP8266_RTOS_SDK

什么是FOTA升级

FOTA(Firmware Over The Air)是指通过无线网络(如Wi-Fi)对设备固件进行远程升级的技术。在ESP8266 RTOS SDK项目中,从V3.0版本开始,SDK架构进行了重大重构,采用了与ESP-IDF相似的风格。本文将详细介绍如何从非OS或V3.0之前的RTOS固件升级到新的IDF风格RTOS固件。

新旧SDK分区结构对比

旧版ESP8266 SDK分区结构

旧版SDK采用简单的分区布局:

| 分区 | 大小 | 说明 | |------|------|------| | Boot | 4KB | 引导加载程序 | | APP1 | 可变 | 主应用程序分区1 | | APP2 | 可变 | 主应用程序分区2(用于OTA回滚) | | System Parameter | 16KB | 系统参数存储区 |

新版IDF风格SDK分区结构

新版SDK采用更灵活的分区方案:

| 分区 | 大小 | 说明 | |------|------|------| | Boot | 16KB | 增强版引导加载程序 | | Partition Table | 4KB | 分区表配置 | | NVS | 可变 | 非易失性存储区 | | APP1 | 可变 | 主应用程序分区1 | | APP2 | 可变 | 主应用程序分区2 |

注意:在新版SDK中,除Boot分区外,其他分区的基地址都可以通过menuconfig进行配置。

固件兼容性说明

从旧版SDK升级到新版IDF风格SDK时,需要注意以下几点:

  1. API不兼容:新版SDK的API与旧版不兼容,应用程序需要进行相应修改
  2. 分区处理:升级过程中需要下载新版固件的所有必要分区(包括新Bootloader、新分区表和新应用程序)
  3. 空间占用:升级完成后,旧分区不会被完全覆盖,导致部分闪存空间无法使用(约40KB)

FOTA升级工作流程

准备工作

  1. 网络连接:确保PC和ESP8266设备连接到同一个Wi-Fi网络
  2. 示例选择:根据闪存大小选择合适示例:
    • 1MB闪存:使用system/ota/native_ota/1MB_flash/new_to_new_with_old
    • 2MB或更大闪存:使用system/ota/native_ota/2+MB_flash/new_to_new_with_old

配置步骤

  1. 启用OTA兼容功能

    Component config --->
        ESP8266-specific --->
            [*] (**Expected**)ESP8266 update from old SDK by OTA
    
  2. 闪存大小配置(ESP8285/ESP8266):

    Serial flasher config  --->
        Flash size (x MB)  ---> 实际闪存大小
    
  3. 示例参数配置

    Example Configuration --->
        (myssid) WiFi SSID
        (mypassword) WiFi Password
        (192.168.0.3) HTTP Server IP
        (8070)HTTP Server Port
        (/hello_world.ota.bin) HTTP GET Filename
    
  4. 可选配置:如需连接到旧版SDK使用的AP:

    Example Configuration  --->
        [*] Connect to the original AP 
    

编译与部署

  1. 编译项目

    make ota
    

    编译完成后会生成ota.v2_to_v3.ota.bin固件文件。

  2. 启动HTTP服务器

    cd build
    python -m SimpleHTTPServer 8070
    

升级过程注意事项

  1. 首次解包耗时:新版Bootloader首次解包固件需要较长时间,需耐心等待
  2. 日志监控
    • "I (281) boot: Start unpacking V3 firmware ...":开始解包
    • "Pack V3 firmware successfully and start to reboot":解包成功
  3. 升级类型:此解包流程仅适用于从旧版SDK升级到新版SDK的情况,后续版本间的OTA升级将采用标准流程

数据继承处理

新版SDK可以继承旧版SDK的部分配置数据,如Wi-Fi连接信息。开发者可以参考以下文件了解实现细节:

  1. ota_example_main.c:查看如何加载原始AP信息
  2. esp_system_internal.h:查看old_sysconf结构体定义,了解信息组织结构

总结

从旧版ESP8266 RTOS SDK升级到新版IDF风格SDK是一个需要谨慎处理的过程。开发者需要特别注意API的兼容性问题,并按照本文介绍的步骤进行配置和升级。升级完成后,设备将获得新版SDK的所有功能和改进,为后续开发奠定良好基础。

ESP8266_RTOS_SDK Latest ESP8266 SDK based on FreeRTOS, esp-idf style. ESP8266_RTOS_SDK 项目地址: https://gitcode.com/gh_mirrors/es/ESP8266_RTOS_SDK

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贡秀丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值