2021-01-26 08:12 PM
We are using the STML47xx processor series and the customer would really like to use the STM Bootloader (ROM in system memory) to program the assembled units post-manufacturing AND after the application code has been programmed.
The main issue with this is that AN2606 (Application Note - STM32 microcontroller system memory boot mode) calls out the following flowchart for the bootloader:
Problem #1
The customer will not have the Boot0 pin routed to the external connector (pulled-low internally).
So due to the boot0 check embedded within the bootloader, we will be right back to booting from the main flash.
The address for the start of the bootloader in system memory is 0x1FFF0000.
I'm curious if the address what the address is in system memory that would allow us to bypass those checks and start the manual execution of the bootloader.
I understand that this is dependent on the newer revision of the ST bootloader not updating these checks which would move that manual start address.
Problem #2
In my testing, even after I erase the entire main flash region, I'm still not getting into the bootloader. In this case, I'm still required to pull the Boot0 pin high to enter the bootloader.
I'm curious why the checks for "value of first address is within int. SPRAM address" do not kick me into the bootloader. I have reviewed the flash option bytes and do not see anything odd there as well.
Is this intended behavior?
I'm open to any other ideas to get around the Boot0 pin requirement.
Thanks for your time,
-Kane
HERE is a different post around bypassing bootloader checks: