【ESP32】 OTA 升级简述与 Flash 分区介绍

1. ESP32 OTA 与 Flash 分区

在这里插入图片描述

分区表划分了3个 应用程序分区:三个分区都是 app 类型,只是功能不同

  • factory 分区:出厂应用程序
  • ota_0 分区:保存 OTA 升级时的数据
  • ota_1 分区:保存 OTA 升级时的数据

设备启动时,会查询 otadata 的数据,判断 应该从 哪个 OTA 应用程序分区加载程序

otadata 分区为空,则会执行出厂程序,即执行factory 分区的固件

otadata 分区不空,则从 otadata中判断从哪个 OTA 分区加载镜像文件

在这里插入图片描述

2. 升级过程简述

假设某次升级固件,存储在ota_0 分区中

嵌入式设备将固件从云端下载完成之后,会在 otadata 分区写入一个标记(如从ota_0区域加载),

设备重新上电时会先读取 otadata 分区的标记,然后从ota_0区域加载固件程序

ota_0 分区中的固件启动无误之后,会调用函数esp_ota_mark_app_valid_cancel_rollback()otadata 分区写ESP_OTA_IMG_VALID ,标记这个分区的固件正确,这样以后每次启动都是从 ota_0 分区架子啊;

ota_0 分区第一次启动有错误,则会标记该区域固件有问题,则从ota_1 分区或者 factory 分区加载

3.升级过程中断电了怎么办?

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39217004/article/details/133173845