summaryrefslogtreecommitdiff
path: root/ports/esp32/modmachine.c
diff options
context:
space:
mode:
authorTrent Piepho <tpiepho@gmail.com>2024-03-02 01:10:20 -0800
committerDamien George <damien@micropython.org>2024-03-08 15:54:44 +1100
commit9fc450689b7505a44460bd6cc3a25961e1e4306e (patch)
tree34ad4b079db774c387f2387c236bbe70fec801e4 /ports/esp32/modmachine.c
parent27279e69b4d74b255bd8d8c5dd6668c97c942776 (diff)
esp32/mpconfigport: Don't hang when machine.bootloader isn't supported.
Currently only the Arduino Nano ESP32 defines a machine.bootloader handler for ESP32. All other boards will intentionally hang. There is no error message, nor is a NotImplementedError raised. There's no indication if Micropython has crashed, or if the bootloader was entered but USB is not working, which is a real problem the ESP32 bootloader has. It's not possible escape from this hang with ^C or any other means besides physical access to the reset pin or the ability to cycle power. Change this to only define an implementation of machine.bootloader() when there is a handler for it. Signed-off-by: Trent Piepho <tpiepho@gmail.com>
Diffstat (limited to 'ports/esp32/modmachine.c')
-rw-r--r--[-rwxr-xr-x]ports/esp32/modmachine.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ports/esp32/modmachine.c b/ports/esp32/modmachine.c
index 6e6a57896..a61d381e0 100755..100644
--- a/ports/esp32/modmachine.c
+++ b/ports/esp32/modmachine.c
@@ -220,11 +220,13 @@ static mp_int_t mp_machine_reset_cause(void) {
}
}
+#ifdef MICROPY_BOARD_ENTER_BOOTLOADER
NORETURN void mp_machine_bootloader(size_t n_args, const mp_obj_t *args) {
MICROPY_BOARD_ENTER_BOOTLOADER(n_args, args);
for (;;) {
}
}
+#endif
void machine_init(void) {
is_soft_reset = 0;