文档 ID 025274 Rev 1 [English Rev 4] 3/952
RM0367 目录
38
NVM 写入/擦除操作的详细说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
对半页 Flash 程序存储器执行并行写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
3.4 存储器保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.4.1 RDP(读保护) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.2 PcROP(专有代码读取保护) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.4.3 防止意外的写入/擦除操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.4.4 写入/擦除保护管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.4.5 保护错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
写保护错误标志 (WRPERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
读错误 (RDERR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
3.5 NVM 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.5.1 硬性故障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.6 存储器接口管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.6.1 操作优先级和流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
写入/ 擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
选项字节加载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
3.6.2 操作序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
执行写入操作时请求读取数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
执行写入操作时请求取指 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
执行写入操作时请求执行另一写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
3.6.3 执行读取操作时更改等待周期数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.6.4 掉电 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.7 Flash 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
对寄存器执行读取操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
对寄存器执行写入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
3.7.1 访问控制寄存器 (FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7.2 编程和擦除控制寄存器 (FLASH_PECR) . . . . . . . . . . . . . . . . . . . . . . . 100
3.7.3 掉电密钥寄存器 (FLASH_PDKEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.7.4 PECR 解锁密钥寄存器 (FLASH_PEKEYR) . . . . . . . . . . . . . . . . . . . . . 103
3.7.5 编程和擦除密钥寄存器 (FLASH_PRGKEYR) . . . . . . . . . . . . . . . . . . . 104
3.7.6 选项字节解锁密钥寄存器 (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . 104
3.7.7 状态寄存器 (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.7.8 选项字节寄存器 (FLASH_OPTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.7.9 写保护寄存器 1 (FLASH_WRPROT1) . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.7.10 写保护寄存器 2 (FLASH_WRPROT2) . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.7.11 Flash 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111