I'm trying to enable STM32 readout protection via Keil Ulink. I defined a ROM1 area starting from 0x1FFFF800 up to 0x1FFFF80F. I created a new c module containing two lines only:
#include <RTL.h> const U32 optionByte[] = {0x00FF00FF};
I put optionByte[0] = optionByte[0] into main to force linker to include it. I added the "STM32F10x Flash Options" into "Programming Algorithm".
I enabled the "Erase Sectors" option instead "Erase Full Chip" as suggested in http://www.keil.com/support/docs/3454.htm
If I burn the device, uVision told programming was done, but the device doesn't work. Obiuvsly, I cannot check why via JTAG, because the device is read protected. If I disable the option programming, the device works.
I'd like to know if it's possible to enable the readout protection via Ulink under uVision.
Thanks,
Lorenzo
That instruction is not converted to any machine instruction code, even with no optimization (O0). This is a trick to force linker to include this object.