2021-09-23 07:55 AM
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?
2021-09-23 09:39 AM
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.
2021-09-24 11:50 AM
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.
2021-09-27 01:21 AM
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.
2024-02-21 09:46 AM
Hi SClar.4
Did you ever solve this problem? I have similar issues.
Led
2024-02-21 10:15 AM
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..