2022-03-09 06:37 PM
I tried to do an experiment with PC-ROP protection in Cubeprogrammer, but an exception occurred when I disabled protection.
My Memory Data seems to be protected all the time, the value is always 0, and there is no way to Erase the entire Chip normally.
I took a normal board to compare and found that Option Bytes are different.
In normal board
address(0x52002010) SR1 Data: 0x00000000
address(0x5200211C&0x5200201C) OPTSR_CUR&OPTSR_PRG Data: 0x0306AAD0
address(0x52002030&0x52002034) SCAR_CUR1&SCAR_PRG Data: 0x000000FF
On unusual boards
address(0x52002010) SR1 Data 0x01000000
address(0x5200211C&0x5200201C) OPTSR_CUR&OPTSR_PRG Data:0x0006AAD0
address(0x52002030&0x52002034) SCAR_CUR1&SCAR_PRG Data:0x80000000
I would like to know if there is a way to adjust to normal, or how to restore to default factory setting?
2022-03-10 02:29 AM
It seems that security mode has been activated for whole flash area, although the SR value is odd. To disable that ... well, possible but slightly complicated. Maybe CubeProgrammer has this fuctionality build in, OpenOCD doesn't. What I would do: Follow the instructions in RM section 4.4.3 "manually", i.e. issue the register writes via debug interface one by one. But this will take some time and patience ...
2022-03-10 11:20 PM
Thank you for your help
The Option Bytes of Cubeprogrammer v2.10.0 has no way to control the settings of SEC_AREA_START1&SEC_AREA_END1&DMES1.
This makes me wonder, under what circumstances did I accidentally modify this area?
I also tried to modify the registry using the following steps
I first successfully unlocked FLASH_OPTCR and OPT_LOCK bit = 0
And Write OPTSR_PRG: 0x0006BBD0->0x0006AAD0 (This is to meet RDP Level 1->0)
Write SCAR_PRG1: 0x80000000->0x800000FF
Last write OPTCR: 0x00000002 (OPTSTART bit = 1)
Finally press Apply,but nothing to changed.
Wondering what I'm doing wrong, or am I not paying attention to more details?