固件升级
[English]
1. Host MCU 如何通过串口对 ESP32 进行烧录升级?
相关协议应用请参考:ESP32 串口协议;对应文档说明参见 串口协议。
示例实现代码参考:esp-serial-flasher。
更新时间:2022.4.22
2. 如何使用 USB 转串口工具对 ESP32 系列的模组下载固件?
USB 转串口对 ESP32 系列的模组下载固件的接线方式如下:
乐鑫模组 | 3V3 | GND | TXD | RXD | IO0 | EN |
---|---|---|---|---|---|---|
串口工具 | 3V3 | GND | RXD | TXD | DTR | RTS |
注: ESP8266 模组需要额外将 IO15 接地。
更新时间:2022.4.22
3. ESP32 是否支持使用 JTAG 管脚直接烧写程序?
ESP32 支持使用 JTAG 管脚 直接烧写程序,参考文档:上传待调试的应用程序。
更新时间:2022.4.22
4. ESP32 能否通过 OTA 开启 Security Boot 功能?
不推荐这样开启,因为这样操作存在风险,并且需要多次 OTA 固件。
Security Boot 功能存在于 Bootloader 中,需要首先更新 Bootloader 才可以开启该功能。
首先,检测目前设备的分区表是否可以存放开启 Security Boot 后的 Bootloader。
然后,更新一个支持写入 Bootloader 分区的中间固件。默认配置中无法擦写 Bootloader 分区,需要 make menuconfig 单独开启。
随后,将中间固件签名后 OTA 到目标设备,运行中间固件,中间固件先进行 OTA Bootloader, 再 OTA 被签名的新固件。
如果在 OTA Bootloader 时出现中途断电或者断网失败重启,设备将无法启动,需要重新烧录。
更新时间:2022.4.22
5. ESP32 如何设置 Flash SPI 为 QIO 模式?
可通过 menuconfig -\ Serial flasher config -\ Flash SPI mode 配置端进行设置,对应 API 为 esp_image_spi_mode_t()。
更新时间:2022.4.22
6.使用 ESP32-WROVER-B 模组通过 Flash 下载工具 下载 AT 固件,当完成写 Flash 后,结果显示 ERROR。但使用 ESP32-WEOVER-E 的模组下载相同的 AT 固件结果却显示正常,是什么原因?
ESP32-WROVER-B 模组引出了 FLASH SPI 的管脚,但 ESP32-WROVER-E 模组没有引出 FLASH SPI 的管脚,请先检查 ESP32-WROVER-B 模组的 FLASH SPI 引脚是否被外部其他应用电路复用。
ESP32-WROVER-B 的 FLASH SPI 的 CMD 引脚接 GND 会导致 Flash 无法启动,报错将打印如下日志:
rst:0x10 (RTCWDT_RTC_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
更新时间:2022.4.22
7. 使用 ESP32-WROVER-E 模组下载程序后,上电打印日志如下,是什么原因?
rst:0x10 (RTCWDT_RTC_RESET),boot:0x37(SPI_FLASH_BOOT)
【2020-12-11 15:51:42 049】invalrd header:0xffffffff
invalrd header:0xffffffff
invalrd header:0xffffffff
出现如上报错日志一般情况为 GPIO12 拉高导致,ESP32-WROVER-E 模组 GPIO12 不能拉高,建议将 GPIO12 拉低测试一下。可参见 ESP32 boot log 指南。
更新时间:2022.4.22