This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS0714:MCU 如何处理组7错误访问(ECC 错误)?

Guru**** 2203600 points
Other Parts Discussed in Thread: HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1427795/tms570ls0714-how-does-the-mcu-handle-bank-7-faulty-accesses-ecc-errors

器件型号:TMS570LS0714
主题中讨论的其他器件:HALCOGEN

工具与软件:

要清除的问题- MCU 如何处理组7错误访问(ECC 错误)?

  1. ESM 组2-通道36:指"36 FMC -不可纠正的 ECC 错误(组7访问)"。 导致通过- esmActionFatal ();处理高级中断(导致一个 while 真条件终止处理器)。 也会将 ERROR 引脚置位。

  2. ESM 组3-通道7:指"FMC -不可纠正的 ECC 错误:总线1和总线2接口(不包括地址奇偶校验错误和访问组7时的错误)"。

    1. 这些通道没有中断响应、因为它们保留用于基于 CPU 的诊断、可以直接生成中止到 CPU。

  3. 不过、在系统启动 c_int00函数的旧测试中、有一个测试会通过从 BANK0 - OTP 读取来强制发生故意的 ECC 错误(TRM 的第5.4.2.5节)。 此函数专门查看此错误是否为了通过测试而向 ESM 组3 -通道7发出了信号。

  4. 此外、对于 ESM 组3-通道7: FMC -不可纠正的错误:总线1和总线2接口:

    1. 的说明 总线2 、访问 OTP 空间和 ECC 空间时、闪存包装程序本身会检测到 ECC 错误。 不存在数据中止 . 仅向 ESM 发送错误。 nERROR 引脚生效。

    2. 总线2 处理 OTP 组0和组7。

  5. 相同的测试时、它会自动跳闸。 我不会实现完全系统复位 .

    1. 我认为这是因为第3组事件不会生成高级中断,这意味着它们不会由我们的处理程序(esmActionFatal ()))处理;这是正确的吗?

    2. 但是有发送至 ESM 组3 -通道7和 nERROR 引脚信号。 我们目前未  在我们的应用的硬件中使用 nERROR 引脚。

  6. 最后一个问题是、会是什么 如果在 BANK7访问时检测到不可纠正的 ECC 错误、则为预期行为

    1. 我想、由于处理了组7、因此不会生成 CPU 数据中止 总线2。 是这样吗?

    2. 那么行为会是什么呢? ESM Group 2- Channel 36 (ESM 组2-通道36)是信号还是 ESM Group 3- Channel 7 (ESM 组3-通道7)?

      1. 如果第一个选项正确、则将调用处理程序 esmActionFatal ();、从而终止处理器。 nERROR 引脚生效。

      2. 如果第二个选项正确、则不会调用处理程序、因为组3事件不会生成中断。 nERROR 引脚生效。

      3. 如果同时发生这两种情况、则会调用处理程序 esmActionFatal ();、因为组2中断导致处理器中断、并且会断言 nERROR 引脚。

非常感谢您的支持。

Martin Estorninho Blochre

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Martin Estorninho Blochre:

    我对延迟答复深表歉意。

    您是否仍然受困于此问题? 如果是、那么我可以立即尝试处理它、并尽快尝试提供我的更新。

    ——
    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Jagadish、

    首先,我在第一个评论中提到 ESM 组时犯了一个错误。 在"ESM Group 2 - Channel 36"中、我指的是"ESM Group 1"。

    我认为 BANK7的 ECC 保护由一个不同的寄存器控制、而不是 FEDACCTRL1 (BANK0)、而是 EECTRL1 (BANK7)。 我在 HALCOGEN 上找不到任何用于打开 BANK7的 ECC 检查的配置。 我想这必须通过配置 EECTRL1手动完成、我就是这么做的。

    为 BANK7打开 ECC 保护。 我设法了解了使用 F021 API 函数在 BANK7 (EEPROM 仿真)上注入不可纠正的 ECC 故障后的行为。  n ESM 组1 -通道36上生成一个中断、允许用户决定如何处理该中断以及相应的错误引脚响应。

     

    谢谢。

    Martin Blochre