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

ESP8266的RTOS版本ota在线升级基本流程及备忘的更多相关文章

  1. Android OTA在线升级二(升级包编译原理分析) 【转】

    本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø  makeMtk [project[flav ...

  2. Android OTA在线升级一(架构分析)【转】

    本文转载自:http://blog.csdn.net/yanleizhouqing/article/details/50234213 1.前言 OTA(Over-the-Air Technology) ...

  3. 实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件

    代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug ...

  4. SequoiaDB版本在线升级介绍说明

    1.前言 在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本.并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加 ...

  5. H5+ 重写在线升级版本比较代码

    重写h5+在线升级版本比较代码 hello h5+版本在线升级提供了如下的版本比较方法,逻辑比较繁琐,相关判断多余,非常不宜读. 先判断新旧版本有无, 接着分割为数组比较数组项大小,而且还只取了前四项 ...

  6. liunx下在线升级python到2.7版本

    因开发nodejs中间用到了node-gyp模块,此模块需2.X最新版本,所以升级服务器python版本 亲测成功 python 升级步骤#1.which python 查询python的位置/usr ...

  7. 乐鑫esp8266的串口通讯驱动源文件,nonos和rtos版本

    目录 一.前言: 二.esp8266的串口分布情况: 三.esp8266的串口通讯时候,应该怎么接线: 四.esp8266的NONOS非系统,串口编程: 五.esp8266的RTOS实时系统,串口编程 ...

  8. RT-Thread—STM32—在线升级(Ymodem_OTA、HTTP_OTA)

    概述 本教程主要根据官方推荐的教程进行改编,详细信息请参考OTA Downloader软件包STM32 通用 Bootloader 本例程通过自己实际搭建环境,测试总结. bootloader的制作 ...

  9. 物联网设备OTA软件升级之:升级包下载过程之旅

    OTA概述 大家好,我是一个软件升级包.这几天呢,我将会进行一次神奇的网络之旅,从开发者的电脑中,一直跑到终端嵌入式设备中. 大家都把我的这个旅游过程叫做 OTA,也就是在线升级. 那么啥叫 OTA ...

随机推荐

  1. python3.6异步IO包asyncio部分核心源码思路梳理

    关于python异步编程的演进过程,两篇文章阐述得妥妥当当,明明白白. 中文资料:https://mp.weixin.qq.com/s?__biz=MzIxMjY5NTE0MA==&mid=2 ...

  2. Asp.net Core 3.0 Identity 使用smtp账户确认和密码恢复

    当新建一个core项目后,使用identity基架后,确认邮件出现了错误,并不能正常使用. 建立文档在这里 https://docs.microsoft.com/zh-cn/aspnet/core/s ...

  3. 一台电脑如何管理多个ssh key

    目录 一.生成ssh key 1.1 生成密钥(必须) 1.2 设置路径 (可选) 1.3 指定密语字符串(可选) 二.设置ssh key的代理 2.1. 首先查看代理 2.2. 添加私钥 三.添加公 ...

  4. mac+chrome 最常用快捷键

    12个mac快捷键 命令 含义 command+空格 (先摁command再摁空格) Spotlight搜索 crt+command+F 最大化和关闭最大化切换 Command+H 隐藏当前窗口 Co ...

  5. ubuntu下安装gcc

    在ubuntu下安装gcc 第一次写blog,多多包涵! gcc安装步骤 废话不多说,gcc安装步骤如下: 1. sudo apt update 2. sudo apt install build-e ...

  6. CF296C Greg and Array 查分数组

    题目链接:http://codeforces.com/problemset/problem/296/C 题意:给你n.m.k,表示n个数a[i],m个对数的操作,k个对操作的操作.m个操作:数a[l] ...

  7. 2018HDU多校训练-3-Problem F. Grab The Tree

    Little Q and Little T are playing a game on a tree. There are n vertices on the tree, labeled by 1,2 ...

  8. .Net Core使用分布式缓存Redis:数据结构

    一.前言 本篇主要使用StackExchangeRedis在.Net Core中使用Redis,使用基础见:点击此处. 二.五种基础数据结构 1.字符串类型String 字符串类型是Redis中最基本 ...

  9. iSensor APP 之 摄像头调试 OV5642

    iSensor APP 之 摄像头调试  OV5642 iSensor app 非常适合调试各种摄像头,已测试通过的sensor有: l  OV7670.OV7725.OV9650.OV9655.OV ...

  10. 简单了解一下K8S,并搭建自己的集群

    距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来.这篇博客的本意是带大家从零开始搭建K8S集群的.但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗 ...