From bd746a46309efc261d6124b546b5bf6775d47460 Mon Sep 17 00:00:00 2001 From: Thomas Friebel Date: Sat, 7 Mar 2020 22:27:32 +0100 Subject: [PATCH] esp32: Deinitialize Bluetooth on soft reset. This fixes a crash, caused by NimBLE continuing to call the Python BLE interrupt handler after soft reboot. --- ports/esp32/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ports/esp32/main.c b/ports/esp32/main.c index 8c416d0b8b..81e4a64346 100644 --- a/ports/esp32/main.c +++ b/ports/esp32/main.c @@ -58,6 +58,10 @@ #include "modnetwork.h" #include "mpthreadport.h" +#if MICROPY_BLUETOOTH_NIMBLE +#include "extmod/modbluetooth.h" +#endif + // MicroPython runs as a task under FreeRTOS #define MP_TASK_PRIORITY (ESP_TASK_PRIO_MIN + 1) #define MP_TASK_STACK_SIZE (16 * 1024) @@ -136,6 +140,10 @@ soft_reset: } } + #if MICROPY_BLUETOOTH_NIMBLE + mp_bluetooth_deinit(); + #endif + machine_timer_deinit_all(); #if MICROPY_PY_THREAD