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.

[参考译文] TMS320F28377S:使用 VCU 计算 CRC 时的 NMI 中断会重启 CPU

Guru**** 2394305 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1269295/tms320f28377s-nmi-interrupt-while-using-vcu-to-compute-crc-which-reboots-the-cpu

器件型号:TMS320F28377S

您好!

我们将面临 DSP 的罕见重新启动。

经研究后、它与地址0x701F8上发生闪存不可纠正错误时的 NMI 相关。

此地址位于 OTP 存储器区域、TI 添加了一些错误以能够测试 ECC。

在我们的应用中、我们不会运行会导致 NMI 的测试。 在.map 文件中、也没有该地址。

我不明白为什么要在0x701F8 OTP 地址上执行该 ECC 测试。

您能帮助我们了解这种异常行为以及如何解决它吗?

提前感谢您。

此致、

萨米

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

    Sami

      请参阅此帖子: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/514745/compute-crc-with-vcu-for-ti-opt-memory-causes-mcu-to-crash 

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

    您好、Hareesh。

    感谢您的反馈。

    我以前已经检查过这个帖子。

    在我们的应用程序中、我们不检查 MCU 闪存和 OTP 区域。

    应用程序在启动后运行正常、有时 CPU 会在几秒钟后重新启动。

    我们在大小固定的 RAM 存储器缓冲区上使用 VCU CRC 进行定制串行通信。

    崩溃很少发生、但我们能够捕获 NMI 中断。基于堆栈、CRC 计算在此之前正在进行。

    您知道 ECC 是否自动检查 OTP 区域? 如果否、如何执行此检查?

    此致、

    萨米

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

    尊敬的 Samy:

    SECDED (ECC)模块不自动读取任何存储器范围-只有 CPU 读取或获取可以将闪存/ ECC 数据引入 SECDED 逻辑。

    您是否有打开至 TI-OTP 存储器范围的调试器存储器窗口?  如果是、您能否尝试将其关闭、然后查看问题是否仍然存在?

    谢谢。此致、

    瓦姆西

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

    尊敬的 Vamsi:

    感谢您的反馈。

    我们根本没有打开存储器窗口。

    VCU CRC 是否使用一些来自 TI-OTP 的数据?

    谢谢!

    此致、

    萨米

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

    尊敬的 Samy:

    我认为 VCU CRC 不会自动读取 TI-OTP 的那些位置。  让我向团队核实一下。

    谢谢。此致、
    瓦姆西

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

    Samy、您好!

    此职位已被分配给 VCU CRC 专家、但他们将在周五之前不在办公室。 请稍后回复。

    此致、

    阿米尔·奥马尔

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

    Samy、

    总结为:

    -应用程序运行良好一段时间

    -在极少数情况下,会发生 NMI 并将 CPU 复位。 在此期间、正在进行 VCU CRC 计算。

    几个问题

    -每次 NMI 发生时,是否计算 VCU CRC ?

    - VCU CRC 计算发生一次还是多次? 它是在 ISR 中还是在后台发生?

    -使用什么数据计算 VCU CRC ? RAM?

    -如果你不做这个 VCU CRC 计算,这个问题会发生吗?

    谢谢。

    Sira

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

    额外信息点-我查看了此器件的芯片勘误表、发现了与 VCU 和中断相关的内容。 不过、这似乎与您的问题无关。

    https://www.ti.com/lit/er/sprz412m/sprz412m.pdf?ts = 1694715283453且 ref_url=https%253A%252F%252Fwww.google.com%252F

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

    尊敬的所有人:

    我们确定了触发 NMI 的 TI-OTP 上 ECC 闪存不可纠正错误的根本原因。

    这是 FW 低级别驱动器中的一个错误、我们有一个指针表(只读操作)、其中索引有时会超出范围。

    当计数器的值等于0x701FB 或更接近时、读取包含32位计数器而不是指针的表的下一地址。在取消引用该值时、将发生 NMI。
    我们在驱动程序中纠正了此问题、一切正常。
    感谢您投入宝贵的时间给予大力支持。
    此致、
    萨米