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
ESP8266的RTOS版本ota在线升级基本流程及备忘的更多相关文章
- Android OTA在线升级二(升级包编译原理分析) 【转】
本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø makeMtk [project[flav ...
- Android OTA在线升级一(架构分析)【转】
本文转载自:http://blog.csdn.net/yanleizhouqing/article/details/50234213 1.前言 OTA(Over-the-Air Technology) ...
- 实现乐鑫esp8266的无线OTA升级,实现远程在线升级固件
代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug ...
- SequoiaDB版本在线升级介绍说明
1.前言 在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本.并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加 ...
- H5+ 重写在线升级版本比较代码
重写h5+在线升级版本比较代码 hello h5+版本在线升级提供了如下的版本比较方法,逻辑比较繁琐,相关判断多余,非常不宜读. 先判断新旧版本有无, 接着分割为数组比较数组项大小,而且还只取了前四项 ...
- liunx下在线升级python到2.7版本
因开发nodejs中间用到了node-gyp模块,此模块需2.X最新版本,所以升级服务器python版本 亲测成功 python 升级步骤#1.which python 查询python的位置/usr ...
- 乐鑫esp8266的串口通讯驱动源文件,nonos和rtos版本
目录 一.前言: 二.esp8266的串口分布情况: 三.esp8266的串口通讯时候,应该怎么接线: 四.esp8266的NONOS非系统,串口编程: 五.esp8266的RTOS实时系统,串口编程 ...
- RT-Thread—STM32—在线升级(Ymodem_OTA、HTTP_OTA)
概述 本教程主要根据官方推荐的教程进行改编,详细信息请参考OTA Downloader软件包STM32 通用 Bootloader 本例程通过自己实际搭建环境,测试总结. bootloader的制作 ...
- 物联网设备OTA软件升级之:升级包下载过程之旅
OTA概述 大家好,我是一个软件升级包.这几天呢,我将会进行一次神奇的网络之旅,从开发者的电脑中,一直跑到终端嵌入式设备中. 大家都把我的这个旅游过程叫做 OTA,也就是在线升级. 那么啥叫 OTA ...
随机推荐
- Flask入门学习——自定义一个url转换器
我们知道,flask的url规则是可以添加变量部分的,这个参数变量是写在尖括号里的,比如:/item/<id>/,如果需要指出参数的类型要符合<converter:vai ...
- NIO-Buffeer
目录 NIO-Buffeer 目录 什么是Buffer 缓冲区类型 缓冲区存储类型 字节存放顺序 Buffer使用 Buffer ByteBuffer 总结 相关文献 NIO-Buffeer 目录 N ...
- CentOS 7 安装并配置 MySQL 5.7
Linux使用MySQL Yum存储库上安装MySQL 5.7,适用于Oracle Linux,Red Hat Enterprise Linux和CentOS系统. 1.添加MySQL Yum存储库 ...
- 图解leetcode —— 124. 二叉树中的最大路径和
前言: 每道题附带动态示意图,提供java.python两种语言答案,力求提供leetcode最优解. 描述: 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到 ...
- redis数据类型--hash
/** Redis应用之Hash数据类型* 问题1:操作命令* 问题2:存储实现原理和数据结构* 问题3:应用场景* */ 先了解下什么是hash,什么是hash碰撞:hash:是包含键值对的kv的数 ...
- 简而意赅 HTTP HTTPS SSL TLS 之间有什么不同
HTTP HTTPS SSL TLS 之间有什么不同? SSL是Secure Sockets Layer的缩写.SSL的作用是为网络上的两台机器或设备提供了一个安全的通道. TLS是SSL的一个新的名 ...
- kubernetes学习笔记(三)——利用kubeadm部署集群
文章目录 (一)安装前准备 (二)master安装 1.安装组件 2.排错 (三)node安装 1.安装组件 2.加入master 3.排错 (四)网络安装 (五)dashboard安装 (一)安装前 ...
- HDU4670 cube number on a tree(点分治+三进制加法)
The country Tom living in is famous for traveling. Every year, many tourists from all over the world ...
- 解决pyinstaller在单一文件时无法正确添加权限清单问题,(UAC,uac_admin,manifest,asInvoker,python,requireAdministrator)
做了3天的win10的兼容性测试,大部分时间都卡权限获取这了. 以下废话很多,想直接找解决方法,请跳至红字 首先,简单说下uac,自vista后windows再次加严了权限管理,uac (账户控制) ...
- git 多仓库源 配置
在后台配好ssh公匙后 在C:\Users\Administrator\.ssh 下修改config文件 就叫config不带后缀 若没有则新建 配置SSH 密匙 # 配置github.com Ho ...