2025-10-14 6:53 AM
Hi everyone,
I am currently working on a customer product trying to design an OTA update around 3 MCUs in star configuration. I have just started to test the commands which would be needed to accomplish this with the ST factory bootloader residing in system memory. Most of the commands seem to work fine, apart from documentation discrepancies eg.: this line of product is not mentioned to perform a system reset in the documentation (rm0444, an2606, an3155) upon modifying the option bytes when using the below commands:
Apart from this I managed to test all of them and 1-3 are performing as expected doing a system reset upon executed. However when I try to perform the 4. I get a bootloader crash (I believe) (which is confirmed if I try and read the register values after the crash: ICSR->ACTIVEVECT=0x3).
I tested this in depth and have the following findings:
First scenario:
Second scenario:
Doing a Read Protect from bootloader on an empty flash does seem to work and as expected after the reset I end up back in the bootloader and I am able to communicate with it.
I attach my code for entering the bootloader from user code and also a register value summary from stm32cubeprogrammer.
Thanks in advance for your help!