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
动态写保护方案旨在通过软件在运行时进行配置。该方案为应用软件提供了一种简单的方法来指定扇区,以防止被闪存控制器发出的任何编程或擦除操作修改。与静态写保护机制不同,动态机制不可锁定,因此不提供任何级别的数据安全性。
动态写保护有两个主要用途。首先,它进一步提高了稳健性,可防止应用中涉及固件更新或 EEPROM 仿真的系统内编程的指定扇区被意外编程或擦除。其次,它提供了一种方法来简化需要存储体擦除的情况,但在发出存储体擦除命令时,有少量扇区不应擦除。一个示例是在单存储体器件上运行的应用,其中大多数 MAIN 区域扇区用于存储可执行映像,但少数扇区用于存储器件特定数据,固件更新期间不应擦除这些数据。在这种情况下,可通过动态写保护来保护包含器件特定数据的扇区,并可发出存储体擦除命令来擦除所有其他扇区。这样做的好处是,使用单个命令(存储体擦除)就可以擦除大部分 MAIN 区域,而不是使用各项逐扇区命令(这些命令具有更长的整体擦除时间并使用更多的能量)。
通过在闪存控制器中设置 CMDWEPROTx 寄存器来配置动态写保护方案。CMDWEPROTx 寄存器一次覆盖一个闪存存储体。这意味着,必须在知道将对哪个闪存存储体尝试应用编程或擦除操作的情况下,对这些寄存器进行配置。请注意,在所有编程和擦除操作结束时,CMDWEPROTx 寄存器将复位至一个受保护的状态。启动新操作之前,必须通过软件重新配置这些寄存器。编程或擦除动态写保护区域将导致写入/擦除保护失败,并且将 STATCMD 中的 FAILWEPROT 位置位。