commit 2976bd627e5963ed14431cc402015b5a1a46105d parent 20318278528b99247c729ee6c0f0f6d14c296c6b Author: Nick Brassel <nick@tzarc.org> Date: Tue, 4 Jul 2023 21:16:14 +1000 Fixup STM32-DFU (#21447) Diffstat:
| M | platforms/chibios/bootloaders/stm32_dfu.c | | | 15 | ++++++++------- |
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/platforms/chibios/bootloaders/stm32_dfu.c b/platforms/chibios/bootloaders/stm32_dfu.c @@ -107,6 +107,12 @@ void enter_bootloader_mode_if_requested(void) { if (bootloader_marker_active()) { bootloader_marker_disable(); + struct system_memory_vector_t { + uint32_t stack_top; + void (*entrypoint)(void); + }; + const struct system_memory_vector_t *bootloader = (const struct system_memory_vector_t *)(STM32_BOOTLOADER_ADDRESS); + __disable_irq(); # if defined(QMK_MCU_ARCH_CORTEX_M7) @@ -128,16 +134,11 @@ void enter_bootloader_mode_if_requested(void) { NVIC->ICPR[i] = 0xFFFFFFFF; } + __set_CONTROL(0); + __set_MSP(bootloader->stack_top); __enable_irq(); - struct system_memory_vector_t { - uint32_t stack_top; - void (*entrypoint)(void); - }; - const struct system_memory_vector_t *bootloader = (const struct system_memory_vector_t *)(STM32_BOOTLOADER_ADDRESS); - // Jump to bootloader - __set_MSP(bootloader->stack_top); bootloader->entrypoint(); while (true) { }