2019-08-04 10:24 AM
Hello!
SYSCFG_MEMRMP bits MemMode[2:0] reflect the mapping of pins Boot0 and Boot1.
Bits are RW and allow mapping of SystemMemory (Bootloader) to 0x00000000 (Start address after reset). This would generate the idea of switching to the bootloader by changing these bits. BUT: When do the changes take effect? How to change to start address after switching the code areas? Is there documentation for this method?
The alternative method of invocation of the bootloader via a call is already understood.
Thanks and rgds
Solved! Go to Solution.
2019-08-04 11:07 AM
https://community.st.com/s/global-search/0xDEADBEEF%200x1FFF0000
2019-08-04 10:29 AM
It changes the zero mapping/shadowing immediately. I've used it, and posted code, showing how to transfer control to the System Loader from a user application on F2/F4 devices.
The vector table content typically immediately vectors control to an 0x1FFxxxxx or 0x080xxxxx address, and the table content points to the natural address of the code.
At reset the SCB->VTOR is also zero, thus the shadowing, but can be set to the ROM/FLASH basis quite easily.
2019-08-04 10:41 AM
Hello Clive.
That reflects exactly my intention.
You posted code? Where can I find the code?
rgds
2019-08-04 11:07 AM
https://community.st.com/s/global-search/0xDEADBEEF%200x1FFF0000
2019-08-05 06:02 AM
Hello Clive,
i used the mechanism that is documented in the video #22 and is similar to the mechanism in your first link - a straight call to the bootloader (after some cleanup). Works well. Thank you!
rgds