diff --git a/legacy/bootloader/bootloader.c b/legacy/bootloader/bootloader.c index 3149f3967..5594f40d3 100644 --- a/legacy/bootloader/bootloader.c +++ b/legacy/bootloader/bootloader.c @@ -112,6 +112,10 @@ static void bootloader_loop(void) { } int main(void) { + // grab go to bootloader flag as soon as possible + register uint32_t r11 __asm__("r11"); + volatile uint32_t go_to_bootloader_flag = r11; + #ifndef APPVER setup(); #endif @@ -124,8 +128,6 @@ int main(void) { mpu_config_bootloader(); - register uint32_t go_to_bootloader_flag __asm__("r11"); - if (go_to_bootloader_flag == RETURN_TO_BOOTLOADER_FLAG) { goto bootloader_loop_start; }