在进行OTA升级之前,需要在ESP32的bootloader中配置OTA服务器地址信息。在bootloader中,有两种方式可以配置OTA服务器地址:在项目中使用idf.py set-target 和 idf.py set-extras 命令设置OTA服务器地址,或者将OTA服务器地址写入到ESP32的EEPROM中。并且,在OTA升级期间,ESP32需要连接到WiFi网络,以保证能够成功连接到OTA服...
ESP_LOGI(LOG_TAG, "my_bl_init_flash: ota[0] offset = 0x%x, ota[0] size = 0x%x\n", ps.ota[0].offset, ps.ota[0].size); memcpy(&my_ps, &ps, sizeof(bootloader_state_t)); } //读接口 esp_err_t bootloader_flash_read(size_t src_addr, void *dest, size_t size, bool allow...
其中factory (0) 是Bootloader默认跳转到的app分区;ota(0)是OTA数据分区;nvs(2)是NVS专用的分区,最好分配至少0x3000字节的空间;nvs_keys(4)是密钥分区,用于NVS加密相关功能;phy(1)是用于存放PHY初始化数据的分区,默认配置下phy分区并不启用,会直接将phy初始化数据编译至应用程序中,使能CONFIG_ESP32_PHY_INIT_D...
选项CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE允许跟踪应用程序的第一次引导(请参阅OTA文章). 对于native_ota_example,添加了一些代码来演示回滚是如何工作的。要使用它,您需要在menuconfig和CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE子菜单下启用CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE选项来设置“用于诊断的GPIO输入的数量”,...
I (28) boot: ESP-IDF v3.1-dev-322-gf307f41-dirty 2nd stage bootloader I (28) boot: compile time 16:32:33 I (29) boot: Enabling RNG early entropy source... I (34) boot: SPI Speed : 40MHz I (38) boot: SPI Mode : DIO I (42) boot: SPI Flash Size : 4MB I (46) boot...
可编程引导加载器(Bootloader): 特点:ESP32内置了一个可编程引导加载器,用于启动设备并加载固件。引导加载器存储在闪存中的特殊区域。 应用:引导加载器用于启动设备并加载用户程序,支持OTA固件升级等功能。 分区方案: 特点:ESP32支持分区方案,允许将不同类型的数据存储在不同的闪存和RAM分区中。这提供了更好的数据管...
bootloader第二阶段 该程序开始存放在flash的0x0地址处,其中的作用是从flash中加载分区表,并且决定启动的程序位置,对于OTA来说非常有用处。而且也有一些flash程序的解压或者压缩的代码,安全启动,以及 over-the-air updates(OTA)等等。然后将程序的数据段放到DROM,指令段放到DRAM中。
选项CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE允许跟踪应用程序的第一次引导(请参阅OTA文章). 对于native_ota_example,添加了一些代码来演示回滚是如何工作的。要使用它,您需要在menuconfig和CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE子菜单下启用CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE选项来设置“用于诊断的GPIO输入的数量”,...
1)应用程序运行正常。开发者自测确定功能一切正常,由开发者调用 esp_ota_mark_app_valid_cancel_rollback() 函数将正在运行的固件状态标记为有效固件 (ESP_OTA_IMG_VALID),该固件随后便可无限制启动。 2)应用程序出现严重错误。因为异常导致自动二次重启,这种情况 Bootloader 会直接将该固件标记为异常固件 (ESP_OT...
0x1000-0x8000 Bootloader分区 0x8000-0x9000 Partition Table分区,保存着分区表 0x9000-0xD000 NVS分区,可以存储一些PHY初始化数据,也可以存储其他数据,一些断电存储的数据建议放在这里 0xD000-0xF000 OTA data分区,系统从哪个app分区启动由这里存储的数据决定 ...