主题中讨论的其他器件: HALCOGEN
您好!
我使用的是定制的 TMS570LS3137板。
我启用了闪存 ECC、并正在尝试对其进行测试。 为此、我使用了链接器的--ecc:data_error 选项。 我还使链接器生成 ECC 位。
在 CCS 中、我在禁用"自动 ECC 生成"的情况下对闪存进行了编程。
我的第一个测试涉及一位错误。 这是第一次,似乎是工作:
错误在内存窗口中可见、当到达该元件时、错误被 纠正、并且 FCOR_ERR_ADD 和 FCOR_ERR_POS 是正确的。
您能否确认一下它应该是如何工作的?
我重复了测试、这次不是一样的行为。 在到达该行之前纠正了错误。 有时 FCOR_ERR_ADD 被正确置位、有时则未被置位。
我首先认为内存浏览器会计算它本身(在计算机上),但不是这种情况。
我还认为,看内存浏览器也是从闪存中读取它,而不是解释为什么它纠正比预期的更快。
我已尝试关闭"Disassembly"和"Memory"窗口、但它仍然无法在正确的时间纠正错误。
我尝试了多次更改错误位置、仍然是相同的行为。 我还尝试禁用管道、但失败。
我启用了分析并设置了阈值、但没有正常运行。
我还注意到、复位后、纠正后的错误重新出现。
我想知道以下几点:
- 是否有解释我所看到内容的高速缓存?
- 是否有保留先前错误的"表格"、以便更快地纠正这些错误?
- 当使用调试器执行系统复位时、FCOR_ERR_ADD 寄存器是否被复位?
- 我是否必须在闪存包装程序中启用分析?
- 当 ECC 检测到错误时、闪存是否已校正/写入? 看起来很奇怪、但读取 TRM、这就是我理解的。
此外、我希望启用相关的中断(通过 ESM)、以防我将错误标志复位。 我无法这样做。
我调用了以下命令(默认为 Halcogen):
我还启用了 ESM 低级中断。
始终不会进入中断。
您能帮助我了解我缺少什么吗?
提前感谢
劳伦特

