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.

[参考译文] TMS570LC4357:NERROR 引脚触发、但 ESM 不标记原因

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1114785/tms570lc4357-nerror-pin-triggers-but-esm-does-not-flag-the-reason

器件型号:TMS570LC4357
主题中讨论的其他器件: NOWECC

尊敬的 Sirs:

我们在安全关键型应用中使用 TMS570LC4357器件、其中 nERROR 引脚用于向系统通知硬故障。

我们看到引脚变为低电平(错误)、但我们无法在 ESM 模块中识别原因、似乎没有设置标志。

似乎产生错误的代码部分由工具自动生成、因此难以调试。

如果有任何线索可以帮助我们捕获此错误、我们将不胜感激。 提前感谢您。

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

    你(们)好。

    我有其他与此问题相关的信息要分享。

    由于我们看到 nERROR 变为低电平的时间点非常不清楚、我们怀疑该问题可能与闪存 ECC 有关。

    我的一位同事尝试使用 nowECC 工具而不是 Code Composer 来生成 ECC 代码。 此方法已解决问题、nERROR 不再意外跳闸。 奇怪的是、现在我们可以使用 Code Composer 方法来生成 ECC 代码、它不会失败。

    它看起来存储器在某种程度上是"损坏的"、nowECC 工具修复了它、现在我们可以再次使用 Code Composer 来生成 ECC 代码。

    即使问题已经解决、我们也希望从您的角度进行评估、以了解幕后发生的情况。

    谢谢你。

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

    尊敬的 Txema:

    正如 TRM 所述、所有闪存存储器空间(闪存组0至6)的 ECC 值必须在程序/数据被读取前被编程到闪存中。

    Cortex R5F CPU 可以生成推测取指令、将其取指令到闪存存储器空间内的任何位置。 对具有无效 ECC 的位置的推测取指令(随后未使用)不会创建中止、但会为可纠正或不可纠正的错误设置 ESM 标志。 不可纠正的错误将无条件地导致 nERROR 引脚切换为低电平。 因此、必须注意为整个闪存空间生成正确的 ECC、包括段和任何未使用或空白闪存区域之间的空洞。

    最好的方法是使用链接器 CMD 脚本生成整个闪存的 ECC。

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

    以下是编写链接器 CMD 脚本以生成 ECC 的指南:

    https://software-dl.ti.com/hercules/hercules_docs/latest/hercules/How_to_Guides/index.html

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

    你(们)好。

    这种解释是非常有意义的。 但我仍然不明白为什么 Code Composer 没有执行正确生成 ECC 代码的函数。

    我们是否可以将其视为错误?

    供参考、我们使用的版本为9.3.0.00012 、具有以下设置:

    *链接器"控制 ECC 生成是打开还是关闭(--ECC)"至"打开"

    *闪存设置"自动 ECC 生成"未选中、"闪存验证"为无(否则失败)

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="443288" URL"~μ C/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1114785/tms570lc4357-nerror-pine-triggers-but -ESM-do-tag-real-reason/4134085代“闪存”[引用“自动闪存验证”,但未在“ECC”中引用“无”[引用]

    6年前、在 TMS570LC4357上发出总线 ECC ESM 错误信号且启用了高速缓存时、当从闪存中的部分编程高速缓存行读取 时、询问是否需要将"闪存验证"设置为"无"、以防闪存编程失败、而未报告。

    据信问题出在 CCS 闪存加载程序中。 不确定 CCS 上是否出现错误。