cancel
Showing results for 
Search instead for 
Did you mean: 

Built in bootloader jump to address

psusi
Associate II

AN2606 indicates that I should be able to activate the built in boot loader by jumping to the correct address in ROM, but I can't work out what that address is for the STM32U535CB.

 

6 REPLIES 6
TDK
Super User

Jump to the address specified by the vector table at 0x0BF90000.

Screenshot 2026-04-08 110011.png

How to jump to system bootloader from application ... - STMicroelectronics Community

 

If you feel a post has answered your question, please click "Accept as Solution".
Onizuka09
ST Employee

 

Hello @psusi ,

The relevant information in AN2606 is provided in Table 214, “STM32U535xx/545xx configuration in System Memory boot mode,” which indicates that the System Memory bootloader base address for the STM32U535 is 0x0BF90000. This same address applies to the entire STM32U5 family.

Note that when transferring execution to the System Memory bootloader, it is recommended to:

- Disable all interrupts.
- Clear all pending interrupts.
- Stop SysTick.
- De-initialize peripherals used by the application.
- Restore the clock configuration to a reset-like state, including disabling any PLLs enabled by the application.
- Load the MSP from the first entry of the System Memory vector table.
- Jump to the reset handler from the second entry of the System Memory vector table.

Best regards.

@Onizuka09 Something is off with this reply. The addresses in Table 3 do not match what is done here:

https://community.st.com/t5/stm32-mcus/how-to-jump-to-system-bootloader-from-application-code-on-stm32/ta-p/49424

Literally none of them match. The OP asked for an address to jump to. Which is correct?

If you feel a post has answered your question, please click "Accept as Solution".

Right is 0x0BF90000, but this isnt jump address! Here start VTOR table then first u32 is MSP and second stored value on 0x0BF90004 is address to jump... 

Fair enough. I guess my point is that 0x0BF90000/0x0BF90004 should appear in the code, not 0x0BF99EFE. I corrected my reply for this distinction.

If you feel a post has answered your question, please click "Accept as Solution".

Hello, @MM..1 , @TDK 

I was misled by Table 3 of the AN2606. The address I previously provided corresponds to the bootloader ID, not the actual jump address.

I stand corrected regarding the recommended procedure for transferring execution to the System Memory bootloader.

The correct boot loader address start is 0x0BF90000.

I have corrected my previous reply.

Thank you for pointing out the issue.

Best regards