主题中讨论的其他器件: NOWECC
尊敬的 Sirs:
我们在安全关键型应用中使用 TMS570LC4357器件、其中 nERROR 引脚用于向系统通知硬故障。
我们看到引脚变为低电平(错误)、但我们无法在 ESM 模块中识别原因、似乎没有设置标志。
似乎产生错误的代码部分由工具自动生成、因此难以调试。
如果有任何线索可以帮助我们捕获此错误、我们将不胜感激。 提前感谢您。
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.
尊敬的 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 生成"未选中、"闪存验证"为无(否则失败)
谢谢你。
6年前、在 TMS570LC4357上发出总线 ECC ESM 错误信号且启用了高速缓存时、当从闪存中的部分编程高速缓存行读取 时、询问是否需要将"闪存验证"设置为"无"、以防闪存编程失败、而未报告。
据信问题出在 CCS 闪存加载程序中。 不确定 CCS 上是否出现错误。