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

猜你喜欢

转载自www.cnblogs.com/dylancao/p/11952845.html