我们正在使用 MC9S12ZVM128,想知道如何处理 SRAM 中的双位 ECC 错误。具体来说,系统是否可以通过使用以下方法执行软件重启来恢复正常运行 CPMUCOP = 0x01; CPMUARMCOP = 0x00;?
你好,喇嘛
感谢您的答复。这个问题我们现在已经很清楚了,我相信我们可以结束这个话题。
BR, Mark
您好,
让我来概括一下。
在 POR 期间,SRAM 将被初始化。如果检测到双位 ECC 错误:
内存访问受阻。
已通知启动器模块。
7.3.4内存初始化 ...
为避免出现虚假的 ECC 错误报告,允许在首次写入前进行读取的内存操作(如非对齐访问的读取-修改-写入操作)要求在执行首次读取-修改-写入访问之前,内存必须包含有效的 ECC 值。ECC 模块提供在开机阶段将整个内存内容初始化为零的逻辑。在初始化过程中,SRAM 的访问被禁用,RDY 状态位被清零。如果初始化过程完成,则可以访问 SRAM,并设置 RDY 状态位。
它的作用:POR 是通过重新启动电源或由专用 POR 信号触发的全面硬件 RESET。
对 ECC 错误的影响
-SRAM 已清除:所有易失性存储器都丢失,包括损坏的数据。
-ECC 逻辑已 RESET:所有 ECC 错误标志或状态位都被清除。
-寄存器RESET为默认值:所有配置寄存器返回其默认状态。
- 影响:除非从闪存或外部资源重新加载相同的损坏数据,否则系统将重新启动,双位 ECC 错误将不会继续存在。
________________________________________
它的作用:当软件无法及时维修时,看门狗定时器会触发 COP RESET。
对 ECC 错误的影响
- SRAM 未清除
- ECC 错误持续存在:如果损坏的数据仍在 SRAM 中,ECC 逻辑可能会在重启后再次检测到相同的双位错误。
-寄存器可能保留值:某些寄存器可能会保留其值,具体取决于RESET配置。
________________________________________
如果您想保证消除 ECC 错误状态,请使用 POR RESET。如果您正在调试软件故障或从软件故障中恢复,并希望保留内存以供分析,则 RESET COP 可能更合适。
因此,最好确保在 POR 之后检查并处理 RDY,而不使用 RAM。 如果 COP 重新启动了系统,则尝试写入该字,并检查 ECC 错误是否确定。
此致
拉吉斯拉夫