summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-10-02 17:38:56 +1000
committerDamien George <damien@micropython.org>2020-11-11 21:41:04 +1100
commit1e297c88989592258965b69cb740039e26c7636c (patch)
tree1c20db845ce46af888ce9aa1c00a5ed255e44303
parentb7883ce74c5a9b9689d812d134117d625fd42e73 (diff)
stm32/main: Move update_reset_mode to outside the soft-reset loop.
Running the update inside the soft-reset loop will mean that (on boards like PYBD that use a bootloader) the same reset mode is used each reset loop, eg factory reset occurs each time. Signed-off-by: Damien George <damien@micropython.org>
-rw-r--r--ports/stm32/main.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ports/stm32/main.c b/ports/stm32/main.c
index f19dac0e7..7f8ee84fd 100644
--- a/ports/stm32/main.c
+++ b/ports/stm32/main.c
@@ -552,6 +552,11 @@ void stm32_main(uint32_t reset_mode) {
MP_STATE_PORT(pyb_uart_obj_all)[MICROPY_HW_UART_REPL - 1] = &pyb_uart_repl_obj;
#endif
+ #if !MICROPY_HW_USES_BOOTLOADER
+ // check if user switch held to select the reset mode
+ reset_mode = update_reset_mode(1);
+ #endif
+
soft_reset:
#if defined(MICROPY_HW_LED2)
@@ -564,11 +569,6 @@ soft_reset:
led_state(3, 0);
led_state(4, 0);
- #if !MICROPY_HW_USES_BOOTLOADER
- // check if user switch held to select the reset mode
- reset_mode = update_reset_mode(1);
- #endif
-
// Python threading init
#if MICROPY_PY_THREAD
mp_thread_init();
@@ -776,5 +776,8 @@ soft_reset_exit:
gc_sweep_all();
+ // Set reset_mode to normal boot.
+ reset_mode = 1;
+
goto soft_reset;
}