主题中讨论的其他器件:HALCOGEN
工具与软件:
要清除的问题- MCU 如何处理组7错误访问(ECC 错误)?
-
ESM 组2-通道36:指"36 FMC -不可纠正的 ECC 错误(组7访问)"。 导致通过- esmActionFatal ();处理高级中断(导致一个 while 真条件终止处理器)。 也会将 ERROR 引脚置位。
-
ESM 组3-通道7:指"FMC -不可纠正的 ECC 错误:总线1和总线2接口(不包括地址奇偶校验错误和访问组7时的错误)"。
-
这些通道没有中断响应、因为它们保留用于基于 CPU 的诊断、可以直接生成中止到 CPU。
-
-
不过、在系统启动 c_int00函数的旧测试中、有一个测试会通过从 BANK0 - OTP 读取来强制发生故意的 ECC 错误(TRM 的第5.4.2.5节)。 此函数专门查看此错误是否为了通过测试而向 ESM 组3 -通道7发出了信号。
-
此外、对于 ESM 组3-通道7: FMC -不可纠正的错误:总线1和总线2接口:
-
的说明 总线2 、访问 OTP 空间和 ECC 空间时、闪存包装程序本身会检测到 ECC 错误。 不存在数据中止 . 仅向 ESM 发送错误。
nERROR引脚生效。 -
总线2 处理 OTP 组0和组7。
-
-
相同的测试时、它会自动跳闸。 我不会实现完全系统复位 .
-
我认为这是因为第3组事件不会生成高级中断,这意味着它们不会由我们的处理程序(esmActionFatal ()))处理;这是正确的吗?
-
但是有发送至 ESM 组3 -通道7和
nERROR引脚信号。 我们目前未在我们的应用的硬件中使用 nERROR 引脚。
-
-
最后一个问题是、会是什么 如果在 BANK7访问时检测到不可纠正的 ECC 错误、则为预期行为 ?
-
我想、由于处理了组7、因此不会生成 CPU 数据中止 总线2。 是这样吗?
-
那么行为会是什么呢? ESM Group 2- Channel 36 (ESM 组2-通道36)是信号还是 ESM Group 3- Channel 7 (ESM 组3-通道7)?
-
如果第一个选项正确、则将调用处理程序 esmActionFatal ();、从而终止处理器。 nERROR 引脚生效。
-
如果第二个选项正确、则不会调用处理程序、因为组3事件不会生成中断。 nERROR 引脚生效。
-
如果同时发生这两种情况、则会调用处理程序 esmActionFatal ();、因为组2中断导致处理器中断、并且会断言 nERROR 引脚。
-
-
非常感谢您的支持。
Martin Estorninho Blochre