【esp32】OTA相关学习

OTA是什么?

不做介绍。

esp32端

分区表(Partition Table)是什么?

在这里插入图片描述
图中所知,0x9000之前的结构固定,分别放了Boot Loader和Partition Table。
而分区表(Partition Table)位置:在如图偏移地址0x8000(默认偏移地址)开始,长度为0x1000(4kB)
而分区表(Partition Table)作用:就是管理0x9000以后的数据

如何创建分区表?

esp32的分区表是partitions.csv表格
在这里插入图片描述

如图讲解参数
Size:分区表大小,图中ota_0ota_1存放了我们待升级的固件分区(app),大小不能超过1600kB.

如何配置OTA Flash分区?

创建分区表文件partitions.csv之后
menuconfig 命令中Partition Table–>Custom partition table CSV同时选定csv文件

空中升级过程

在这里插入图片描述
一句话总结:如图首先0区激活使用,然后先对1区erase,然后将要升级的内容写入1区,然后激活1区使用。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

应用程序回滚

目的:确保升级后的程序可以使用。当新的程序出现严重问题时,回滚到之前正常运行的版本。
升级后的情况。
在这里插入图片描述
参考:
1.OTA升级介绍:www.bilibili.com
2.空中升级 (OTA):www.espressif.com
3.partition-tables:www.espressif.com

服务端(本地调试)

确定服务器地址

menuconfig -> Example Configuration -> firmware upgrade url endpoint

CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL
与下面这段代码有关

esp_http_client_config_t config = {
        .url = CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL,
        .cert_pem = (char *)server_cert_pem_start,
        .event_handler = _http_event_handler,
        .keep_alive_enable = true,
    };

在这里插入图片描述

确定服务器文件

在这里插入图片描述

启动本地服务器

在 PC 机 ota_service_doc目录下开启命令行窗口,通过 执行如下命令建立本地 HTTP 服务器(服务器建立后,命令行窗口不要关闭)
查询 python 版本,执行如下命令:
Python --version
如果上述指令返回的 Python 版本是 3.X ,通过如下命令建立服务器
python -m http.server 8070
如果上述指令返回的 Python 版本是 2.X ,通过如下命令建立服务器
python -m SimpleHTTPServer 8070

注:服务器建立好后,可通过网址 localhost:8070 在网页端查询本地服务器


服务器后台信息:
在这里插入图片描述

参考:【ESP32】通过本地服务器实现OTA功能

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值