cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F469 processor internal Bootloader issue

SClar.4
Associate

I am having an issue using the STM32F469 processor. Previously using the STM32F407 and STM32F373 I have been able to implement a call to the internal bootloader via address 0x1FFF0000 as suggested in many previous posts. It all works fine and dandy and was a very useful piece of information.  However, when trying to use the same method on the STM32F469, which is a close relative to the 407, the call to the internal bootloader just causes a reset. I can enter the bootloader using the external Boot0 pin without problems. Is there a key difference in the ST32F469 bootloader that I need to be aware of?

5 REPLIES 5

I don't have one to hand.

Check if you're mapping the ROM into the zero address space, you can always then vector thru zero instead of 0x1FFF0000 table.

In newer STM32 they had a means of detecting if the flash is erased, and that would cause it to call back into the FLASH, this is less than helpful if you simply want to transfer control to the loader for UART or USB/DFU support.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
TDK
Guru

There's not anything special about the F469 that I'm aware of. The difference is probably in what your program does prior to the call. Possibly a watchdog is active. Step through code (in disassembly) to see what happens.

If it's resetting, look at RCC_CSR flags to determine cause of reset.

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

Hello, thanks for the help. The process I have implemented is one where it looks to enter the bootloader directly after reset if a certain memory location contains a defined value. The point of doing this was to ensure a "clean" setup so none of the internal peripherals would have been set at this point and would save complications. I have stepped through the startup process and it detects this and attempts to enter the boot loader via the code snippet below but either seems to reset or get into a Hard fault condition. I was not expecting the 469 to be any different either, which is what is so puzzling as the 407 has absolutely no problems when doing this.

 /* Call DFU bootloader memory */

 Reboot_Loader: LDR    R0, =0x1FFF0000

        LDR    SP,[R0, #0]

        LDR    R0,[R0, #4]

        BX    R0

I am probably just being a bit dim, cannot see the wood for the trees but any help is appreciated.

Hi SClar.4

Did you ever solve this problem? I have similar issues.

Led

Don't know, haven't had cause to throw resources at it.

Check that the ROM address is correct.

Check that you've remapped the zero address space to the ROM, not FLASH.

Unpack the Hard Fault if you're getting one. Disassemble the ROM to identify the specific failure.

I need more data and better presentation to debug this through a key hole..

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..