ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
执行闪存操作的具体做法是为所需命令配置 CMDTYPE 和 CMDCTL 寄存器以及必须为特定命令配置的任何其他寄存器,然后将 0x01 写入 CMDEXEC 寄存器以启动该命令。
在 CMDEXEC 中设置 0x01 后,该命令的操作开始执行。正在执行操作时,大多数配置寄存器会被阻止写入,直到该操作完成。某些寄存器(例如,屏蔽寄存器)可以在操作完成时在硬件控制下更改状态。闪存控制器通过设置 STATCMD 寄存器中的 CMDDONE 位来指示命令的操作已完成。闪存控制器还向 CPU 子系统提供中断矢量,以便在操作完成时指示“DONE”状态。
必须从以下两个位置执行设置 CMDEXEC 位并等待 CMDDONE 响应的软件序列:从器件 SRAM 或从作为操作对象的闪存存储体之外的其他存储体,因为闪存控制器将控制正在运行的闪存存储体。在闪存控制器执行命令时对作为操作对象的闪存存储体的读取是不可预测的。
闪存控制器在 CMDTYPE 寄存器的 COMMAND 字段中提供五个基本命令来操作闪存。表 6-4介绍了这些命令。
| 命令 | 说明 |
|---|---|
| NOOP | 无操作(默认设置)。 |
| PROGRAM | 为闪存选择一个编程操作。 |
| ERASE | 为闪存选择一个擦除操作。 |
| READVERIFY | 选择一个独立的读取验证操作。 |
| BLANKVERIFY | 选择一个独立的空白验证操作。 |