主题中讨论的其他器件:TMS570LS3137
重新出现闪存 ECC 问题。
我们刚刚发现、通过链接器选项--ecc:ecc_error 在闪存 ECC (不是闪存本身、而是在 ECC 数据中)中注入故障时出现了一种奇怪的行为。
我的期望是 ESM 会通知您是否检测到并校正了1个错误或者检测到2个(或更多)错误。 但该行为完全取决于错误屏蔽。
我们尝试了这些掩码(十六进制值)、并获得了以下结果:
01 ->无标志(假设已校正、没有方法检测)
02 ->无标志(假设已校正、没有方法检测它)
03 ->已标记
07 ->已标记
0A ->已标记
0f ->已标记
1A ->无标志
2A ->无标志
30 ->中止
aa ->中止
AF ->已标记
EA ->异常中断
F1 ->无标志
FA ->中止
FF ->已标记
"已标记"表示 ESM 组 2、通道3标志变为"1"。
我可以假设 ESM 组2、通道3仅在多个位错误时才会被标记。 但我不明白 DABORT 何时被试探、更不用说为什么"03"掩膜和"30"掩膜会产生不同的行为、当两者都引入2个错误的位时。
有没有人知道答案、或者能够为我们指出正确的文档来解释 ECC 模块的工作原理? 我已经在手册中看到"Cortex R5F CPU 可能生成到闪存存储器空间内任一位置的推测取数据。到一个带有无效 ECC 的位置的推测取数据、随后不被使用、不会产生一个中止、 但将为可纠正或不可纠正的错误设置 ESM 标志"、但我们始终在相同的位置注入错误、并执行错误、因此听起来并不像合理的解释。
提前感谢您。