CW32R030 通过设置擦写锁定寄存器FLASH_PAGELOCK 来实现FLASH 页面的擦写锁定,处于锁定状态的页面不
能进行页擦除或写操作。
CW32R030 内部FLASH 存储器被划分为128 页,每8 页对应擦写锁定寄存器FLASH_PAGELOCK 的1 个LOCKx
锁定位。LOCKx 域共16 位,可实现全部128 页FLASH 存储器的锁定保护。擦写锁定寄存器FLASH_PAGELOCK
的各位域与FLASH 锁定页面的对应关系如下表所示:
对 FLASH 进行页擦除和写操作时,必须先通过设置对应的FLASH_PAGELOCK.LOCKx 位域为1 来解锁对应页面。
解锁操作示例如下:
锁定Page0-Page7 代码示例:
CW_FLASH->PAGELOCK = 0x5A5A 0000 | ( CW_FLASH->PAGELOCK & 0x0000 FFFE );
解锁Page32-Page39 代码示例:
CW_FLASH->PAGELOCK = 0x5A5A 0000 | ( CW_FLASH->PAGELOCK | 0x0000 0010 );
注:
FLASH_PAGELOCK 寄存器具有KEY 保护特性,写入的数据高16bit 数据必须是0x5A5A,否则无法写入。
对未解锁的FLASH 页直接执行页擦除或者写操作,会操作失败并产生中断标志。
|