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
SRAM 区域包含系统存储器 (SRAM)。SRAM 支持以最大 MCLK 频率 (32MHz) 访问零等待状态。CPU 对 SRAM 的访问直接通过连接到 SRAM 接口的 AHB 总线矩阵进行处理。请参阅器件特定的数据表,了解给定器件上存在的 SRAM 大小。
某些器件可能选择支持 SRAM 的奇偶校验或者奇偶校验与 ECC 校验。请参阅器件特定数据表以确定器件是否支持具有 ECC 校验或奇偶校验的 SRAM。有关器件如何处理奇偶校验错误和 ECC 错误的信息,请参阅节 2.4.10。
奇偶校验
对于奇偶校验(如果可用),每 8 个数据位提供 1 个奇偶校验位。奇偶校验能够检测相应 8 个数据位中的 single-bit 错误 (SED)。向经过奇偶校验的地址写入数据会根据新数据更新相应的奇偶校验位。从经过奇偶校验的地址读取数据会根据相应的奇偶校验位校验读取的数据。在读取时,如果数据与相应的奇偶校验位不匹配,则会产生一个奇偶校验错误。有关器件如何处理奇偶校验错误的信息,请参阅节 2.4.10。
ECC 校验
对于 ECC 校验(如果可用),每 64 个数据位提供 8 个 ECC 位。ECC 能够纠正 single-bit 错误 (SEC) 并检测相应 64 个数据位中的 dual-bit 错误 (DED)。向经过 ECC 校验的地址写入数据会根据新数据更新相应的 ECC 代码。从经过 ECC 校验的地址读取数据会根据相应的 ECC 代码校验读取的数据。如果发现一个 single-bit 错误,则会自动纠正该错误并生成一个可纠正的 ECC 错误。如果发现 dual-bit 错误,则会生成一个不可纠正的 ECC 错误。
别名子区域
器件上的物理 SRAM 被混叠到整个 SRAM 区域中的多个地址子区域中,如下表所示。默认、经过奇偶校验和未经过校验的地址子区域都映射到同一物理 SRAM 存储器。每个别名子区域之间的区别在于应用于访问的完整性检查类型。例如,将数据写入地址 0x2000.0000(默认子区域)将导致相同的数据出现在地址 0x2020.0000(未校验的子区域)中。
默认子区域 (0x2000.0000) 在所有 MSPM0 器件上都可用,并且在使用时提供器件上可用的最高级别的完整性检查。经过奇偶校验的子区域 (0x2010.0000) 在支持 ECC 校验或奇偶校验的器件上可用,并且始终使用奇偶校验来处理访问。未校验的子区域 (0x2020.0000) 在所有器件上都可用,并且在使用该子区域时不执行完整性检查。奇偶校验/ECC 代码子区域 (0x2030.0000) 在具有 ECC 校验或奇偶校验的器件上可用,并且返回与读取的地址相对应的奇偶校验或 ECC 代码。
| 子区域 | 启动 | 结束 (最大值) | 说明 |
|---|---|---|---|
| 默认值 | 0x2000.0000 | 0x200F.FFFF | 器件上可用的最高完整性检查始终应用于该子区域中的访问:
|
| 经过奇偶校验 | 0x2010.0000 | 0x201F.FFFF | 如果器件支持奇偶校验,则对该子区域的访问将进行奇偶校验。 |
| 未校验 | 0x2020.0000 | 0x202F.FFFF | 不对该子区域中的访问应用 ECC 校验或奇偶校验。 |
| 奇偶校验/ECC 代码 | 0x2030.0000 | 0x203F.FFFF | 如果器件支持奇偶校验或 ECC,则可以通过该子区域直接访问奇偶校验或 ECC 代码:
|
在某些器件中,SRAM 分为两组或更多组。并非所有闪存组都具有 ECC 和/或奇偶校验功能。通常,第一个闪存组将具有 ECC 和/或奇偶校验功能,而其他闪存组可能有也可能没有 ECC/奇偶校验功能。在这种情况下,每个子区域的大小将取决于器件特定的 SRAM 配置。例如,如果器件具有 128KB SRAM(前 64KB 具有 ECC/奇偶校验保护,后 64KB 没有 ECC/奇偶校验),则 ECC 受保护子区域、经过奇偶校验的子区域和代码区域分别为 64KB,而未校验区域将为 128KB。在所有情况下,未校验的子区域都是连续的并且是完整大小,允许应用程序在该子区域中自由链接代码和数据。
在支持奇偶校验或 ECC 的器件上,应用软件可以将物理 SRAM 的用途划分为用于 ECC 校验、奇偶校验或未校验的任意区域。例如,如果器件具有 32KB 的总 SRAM 存储器,并且支持 ECC 校验和奇偶校验,则可以将应用软件配置为根据两个子区域进行链接:一个子区域用于 ECC 校验,另一个子区域用于奇偶校验。
如果应用程序仅使用未校验的存储器区域,则奇偶校验/ECC 代码区域可用于其他应用程序 SRAM 存储器。