M3的FLASH 保护机制



是这样的,关于FLASH的保护机制,我写了以下代码:

       FlashProtectSet(1024, FlashReadWrite);

FlashProtectSet(1024*127, FlashExecuteOnly);

FlashProtectSet(1024*0, FlashReadOnly);

t = FlashProtectGet(1024);

t = FlashProtectGet(1024*127);

t = FlashProtectGet(1024*0);

然后仿真:

第一次t的值是FlashReadOnly

第二次t的值是FlashExecuteOnly

第三次t的值是FlashReadOnly

但是第一次我设置的保护机制是FlashReadWrite,为什么读出来是FlashReadOnly呢。

另外,FlashProtectSet(1024*0, FlashReadOnly);之后我调用了FlashProtectSave();,再仿真,我读出来t = FlashProtectGet(1024*0);的值还是FlashReadWrite,这是为什么呢???