How does one design a circuit where an STM32H7 is never unrecoverable?
Per section 2.6 of RM0433 (https://www.st.com/resource/en/reference_manual/rm0433-stm32h742-stm32h743753-and-stm32h750-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf), when the STM32H7 boots up it latches the boot pin and then goes to the memory address that is coded in the BOOT_ADDx option bytes.
At the factory they are set to the following: BOOT_ADD0 is somewhere in flash memory, and BOOT_ADD1 is set to system memory's system bootloader.
Ideally, I think one would just never change BOOT_ADD1 to preserve the safety of being able to always be able to access the system bootloader in case the flash becomes corrupted in a over the air re-programming application. However, given that BOOT_ADD1 is modifiable, if one were to modify BOOT_ADD1 to also point to some corrupted flash memory, how would one recover the chip at that point?
The easy answer is to make unmodifiable code, but I want to design something that is robust to egregious failures.
I want to make a schematic where we can always recover the chip in the event of corruption (because there will be a lot of over the air programming with a possibility for failure) and I am wondering if that is even possible?
