【发布时间】:2021-07-14 21:32:51
【问题描述】:
我有一块 ESP32 板,GPIO0 通过开关接地。这个想法是,如果我按下按钮并发出ESP.restart(),板将进入闪光模式。
相反,ESP.restart() 只是重新启动应用程序,而忽略 GPIO0 状态。
是否可以强制整个引导过程,也许直接 JMP 到硬件重置向量?
【问题讨论】:
-
GPIO2的状态是什么?这也需要断开或拉低才能进入 ROM 引导模式。
-
你尝试过 ESP.reset() 吗?
-
GPIO2 根据 ESP32 引导模式选择指令 github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection 未连接,是的,确实尝试了 ESP 重置,但没有任何区别。如果我在物理上重新启动,MCU 将完全启动,因此不会忽略 GPIO0。我还没有尝试过接地 EN,但我希望能工作。所以一定有一个跳转向量可以正确完成
-
抱歉 esp32 没有 ESP.reset()。只有 esp8266 有它。
-
一些徒劳的尝试: 1. 试图擦除 OTA_DATA 分区,但显然引导加载程序选择了第一个并重建它? 2. 试图擦除整个分区表,但
spi_erase_range被设置为 abort() 作为 Arduino 库的默认值。这似乎是一个自定义引导加载程序,如果 OTA_DATA 分区为空白或某种类似的机制是可行的方法,它不会引导。
标签: esp32 arduino-esp32