• ESP8266的RTOS版本ota在线升级基本流程及备忘


       ESP8266的ota升级由于涉及到不同的flash空间大小,以及新旧版本的不同,所以流程相对比较复杂。笔者这个倒腾的时间还是有一些的,不过,总归把事情解决了。下面记录一下基本的流程和遇到的问题。

    还有一个问题,就是RTOS版本上面的ota升级和以前的很多是不同的,这也是让我倒腾那么长时间的原因之一。

       基本流程:

        User APP1 和 User APP2 是同⼀份软件的两个备份,后⽂分别简称为 user1 和 user2。

        System param 区存了⼀个 flag,标识启动时应当运⾏ user1 还是 user2。 启动时先运⾏ Boot,Boot 读取 System param 区中的 flag,判断运⾏ user1 还是 user2,然后到 SPI Flash 的对应位置去取。

        例如, (1) 初始状态:boot.bin + 版本 v1.0.0 的 user1.bin + System param 区 flag 标志为使⽤ user1;

           (2) 服务器上传软件更新版本 v1.0.1 的 user1.bin 和 user2.bin;

           (3) 服务器推送通知,设备读取 flag 当前正使⽤ user1,则从服务器下载 v1.0.1 的 user2.bin 到 SPI Flash 260KB 之后的空间;

           (4) 下载完成后,⽤户可以选择重启更新,则修改 System param 中的 flag 标志为使⽤ user2,设备 重启,使⽤ v1.0.1 的 user2 软件。

           (5) 再下次升级,则参考步骤 2 及之后流

       遇到问题:

    1 怎么把user2.bin中的内容拷贝到user1.bin?

     配置编译宏:CONFIG_ESP8266_BOOT_COPY_APP=y

    2  怎么确定使用哪种ota升级方法?

     一般的原则是要根据flash大小来确定,其次根据实际项目需要,实际上,不同的项目是有不少差别的.

    3  怎么获取源码呢?

      全部的源码我这边有,需要的请回复,我发给你,假如是商业用途,需要你发个红包即可。

    4 怎么知道flash大小?

     安信可的可以参考这个目录:https://wiki.ai-thinker.com/esp8266

  • 相关阅读:
    leetcode 第二题Add Two Numbers java
    二叉树中的那些常见的面试题(转)
    运行的指令
    Python常见经典 python中if __name__ == '__main__': 的解析
    软件测试基本概念
    JAVA Android王牌教程
    17个新手常见Python运行时错误
    QTP
    链表有关的常见面试题
    Robot Framework and Ride
  • 原文地址:https://www.cnblogs.com/dylancao/p/11952845.html
Copyright © 2020-2023  润新知