2018-12-29 08:35 AM
Hi,
I am having a problem using Read Out Protection on the STM32F405VE processor
My firmware has a proprietary bootloader which is stored at 0x8000000. It basically checks to see if a USB OTG lead is plugged in and if so attempts to access a mass storage device from which it loads new firmware and writes it to flash in an area after the bootloader. If no new firmware is loaded, or new firmware has loaded and been verified, the bootloader jumps to the new firmware which is located at 0x8010000 and executes it. With no Read Out Protection set this works perfectly every time. It is 100% reliable.
However, if I use the ST-LINK utility to set the Option Bytes and I set Read Out Protection to Level 1, the firmware will no longer boot at all!
I have BOOT0 tied to ground through a 10K resistor and BOOT1 is not connected.
When Readout Protection is set, it appears to work in so much as I cannot read the chip and when I set it back to zero the chip is erased.
Can anyone offer any suggestions as to why the bootloader would stop working? It normally outputs data on the UART and as far as I can tell, it does not even start as nothing comes out at all. I also have a board led that does not come on. It is as if the processor is bus faulting (or similar) as soon as power is applied.
I have unplugged the programmer so there is no JTAG access going on.
I have to say that I have run out of ideas now.
2019-01-01 10:47 AM
> I use the ST-LINK utility to set the Option Bytes and I set Read Out Protection to Level 1
Post a screenshot.
JW