2020-03-30 01:49 AM
I'd like to do a jump to bootloader from application on STM32 Blue Pill STM32F103C8T6. My approach looks that:
- Write to BKP->DR1 any value;
- Do a reset (NVIC_SystemReset());
- A the beginning of main, check if BKP->DR1 != 0, than set it to 0 and jump to boot;
Dubugging shows, that core jumps far away (0xfffffffe) and nothing happens. My code:
I have no idea why it does not work. More over, before jump memory in the area of 0x1FFFF000 looks ok: Before jump
and here is after failing jump to boot: after jump
Maybe my chip is fake? ST Utility shows correct values (Device ID, flash size, MediumDensity), but it can means nothing. When I'm using the BOOT pins, the bootloader is loaded properly and STM flashloader recognize it. Even if my chip is a fake, the embedded bootloader works so I can't figure out the reason, why jump from application does not work.