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.

[参考译文] TMS570LS3137:看门狗是否应该在 ESM 中断上下文中工作?

Guru**** 2481465 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/663522/tms570ls3137-is-the-watchdog-supposed-to-work-within-the-esm-interrupt-context

器件型号:TMS570LS3137

我需要的行为是、如果发生 ESM 组2或组3事件、CPU 被复位。 在当前代码中、ESMInterrupt 处理程序中有一个简单的 while (1)、但看门狗不会复位处理器。 我怀疑,由于 ARM 基本上只有2个中断(IRQ 和 FIQ),在 ESM 异常中看门狗不能出现--这是吗?

请注意、我的看门狗在中断上下文之外正常工作。  

我有两个问题:

看门狗是否能够从任何中断或异常上下文中复位处理器、如果可以、是否有寄存器配置我未能允许这样做?

2.如果看门狗不是一个选项、是否有办法从这个上下文中复位处理器? 我尝试了 CPUSTCR 寄存器、但它不起作用。 此外、在该寄存器说明中、它表示"只要此位被切换、只有 CPU 被复位。 没有系统复位"、这表明无法通过软件复位处理器。

谢谢、

Jim

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

    Jim、您好!

    [引用]我所需的行为是、如果发生 ESM 组2或组3事件、CPU 将被复位。 在当前代码中、ESMInterrupt 处理程序中有一个简单的 while (1)、但看门狗不会复位处理器。 我怀疑、由于 ARM 基本上只有2个中断(IRQ 和 FIQ)、在 ESM 异常中看门狗不能出现-这是正确的吗?[/引用]

    这不是真的。 DWD 和 DWWD 独立于 CPU、会导致热复位或 NMI、具体取决于配置。 CPU 是否正在处理中断无关紧要、因为这是 CPU 可能"丢失"的情况之一。  

    另外值得注意的是、组2错误将导致 NMI、而不是 FIQ 或 IRQ、如果配置了组1错误、则会导致组1错误。 还值得注意的是、组3错误不会导致中断、因为在大多数情况下、CPU 会发出中止以响应这些关键故障类型。 请参阅以下数据表。

    [引述]1. 看门狗是否能够从任何中断或异常上下文中复位处理器、如果可以、是否存在允许这样做的寄存器配置我未命中?[/quot]

    是的、无论 CPU 是由于 ISR、异常还是其他原因执行代码、DWD 或 DWWD 都应使 DWD 跳闸。 如果 DWD 在 ISR 外部触发复位、那么我没有理由认为它在 ISR 上下文中不执行同样的操作。 在任一种情况下、CPU 都可以简单地获取指令并执行指令。 ISR 实际上只影响程序流。

    [引述]2. 如果看门狗不是选项、是否有办法从该上下文复位处理器? 我尝试了 CPUSTCR 寄存器、但它不起作用。 此外、在该寄存器说明中、它表示"只要此位被切换、只有 CPU 被复位。 没有系统复位"、这表明无法通过软件复位处理器。

    请参阅第2.5.1.47节 TRM 中描述的系统异常控制寄存器(SYSECR)寄存器。 这是用于使用 SW 触发复位的寄存器。

    关于将 DWD 用于您使用它的目的、您的项目是否是功能安全项目? 如果是、您可能需要考虑时钟子系统中常见故障原因的影响。 在这种情况下、DWD 可能会以与 CPU 相同的折旧时钟速率进行计数、但如果发生故障导致时钟减速或加速、系统的执行速度会比预期慢得多。 如果时钟完全发生故障(停止)、片上 WD 也会停止计数、并且也不会触发这种情况的复位。 如果您想继续以安全的方式使用 DWD、可以使用 EXTCLKIN 引脚之一提供外部时钟来驱动 RTI。 该时钟的最大值为16.67MHz。

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

    我忘了说、如果这是您相当自信的事情、并且您有一个相对简单的 CCS 项目、您可以发送它来演示问题、如果您可以压缩项目并将其发布在此主题上、我可以在工作台上查看它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将查看是否可以中断该故障、并查看看一下看门狗寄存器。 我应该能够看到计数和状态变化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一些有关此问题的其他信息。 我是通过强制执行锁步、奇偶校验或双位 TCRAM 错误并观察行为来重现这一点的、但我的测试代码是从中断上下文(特别是 N2HET 绑定中断)中调用的。 从这个中断运行环境中、强制执行这些组2 ESM 错误中的一个会导致 CPU 挂起并且不会触发安全装置。

    我正在构建一个简单的应用程序来向您发送来演示这一点、我的简单应用程序也做了同样的事情、但从后台任务(从 main.c 开始、不在中断范围内)、看门狗针对所有这些测试用例正确地重置 CPU。

    我不确定这是否已成为问题、我需要您的输入。 如果你认为看门狗应该一直触发--不管代码在哪个上下文中,我应该能够向你发送一个演示这一点的应用程序。 如果我的原始测试代码在中断内强制执行测试模式奇偶校验/锁步错误、那么请告诉我、我很乐意更改它。

    谢谢、
    Jim
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Jim
    我正在审核一些可能未解决的旧论坛帖子。 由于此帖子已打开并最终锁定、我想检查您是否能够解决问题或需要进一步的指导?

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

    Mukul、

    感谢后续行动;这个问题没有得到解决,但我们在设计中已经解决了这个问题。 在我的单元测试过程中,我发现,当我们对电路板进行辐射测试时,我们确认处理器有时会停止,而且看门狗不会重置处理器。 我知道看门狗配置正确、因为我们也有看门狗事件。 在我们的设计中、我们必须添加一个外部硬件看门狗来克服这一问题。 请告诉我是否可以提供任何其他信息。  

    Jim

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

    您的应用中的数字窗口式看门狗反应控制(RTIWDRXNCTRL)寄存器的配置是什么? 我认为它被配置为不生成复位、而是生成不可屏蔽中断。 您可以选择通过此 NMI 服务例程生成复位。

    请注意、如果由于某些其他 ESM 组2错误被有意引起、CPU 已经处于 FIQ 模式、所有新的 FIQ 将被自动阻止、这是因为架构不支持嵌套中断。 这就是为什么在 CPU 首次退出当前 FIQ 之前看门狗 NMI 不会被处理的原因。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Jim
    好的、谢谢。 让我与团队跟进、看看他们是否可以提供有关这方面的任何其他指导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sunul、
    将 RTIWWDRXNCTRL 寄存器设置为5、这将导致复位。 我认为这个问题是由你的第二条评论解释的--如果 CPU 已经在一个 FIQ 环境中(由某些 ESM 组2事件引起),并且如果这个事件不能从返回(如一个锁步或者双位内存错误),那么最初的 FIQ 会阻止看门狗复位?
    Jim
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jim、

    FIQ 不会阻止看门狗复位。 看门狗复位会导致系统复位、进而禁用看门狗、直到应用再次启用。

    是否在您的应用中启用了所有复位源? 您对暂停的 CPU 的初始描述表明计时失败。 这将在检测到振荡器故障或 PLL 跳周时导致系统复位。 不过、这两个功能可被禁用、因此有助于检查它们是否被启用为系统复位源。

    此致、
    Sunil