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.

[参考译文] RM42L432:如何正确处理数字窗口看门狗(DWWD)、NMI 中断?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1115686/rm42l432-how-do-i-correctly-service-the-digital-windowed-watchdog-dwwd-nmi-interrupt

器件型号:RM42L432
主题中讨论的其他器件:LAUNCHXL-RM42TMS570LS0432

我有 一个 LAUNCHXL-RM42 、我正在尝试了解如何正确使用数字看门狗。   我使用的是 Halocogen 示例文件 example_dwwd.c、其中演示了如何使用 dwwdinit 函数的 generate_NMI 设置来设置数字看门狗。   运行此示例时、nERROR LED 将在看门狗到期时亮起、这是预期的。   

当这个中断发生时、我想运行一个特定的安全关断功能、假定我的正常程序不再工作并且安全装置更新正确。  根据我的理解、来自窗口化看门狗的中断映射到 ESM 组2通道24。   然后、当 看门狗过期时、我希望 notificait.c 中的 esmGroup2Notificaiton (uint32通道)中断函数在通道= 24时运行。   但是、情况并非如此。    当看门狗过期时,esmGroup2Notificaiton 或 esmGroup1Notificaitons 函数都不运行。      在 ESM.c 文件中、esmHighInterrupt (调用 esmGroup1Notificaitons 和 esmGroup2Notificaiton)也不会在看门狗过期时运行。  据我所知、看门狗过期时没有可修复的中断运行。   我缺少什么吗?  我觉得这应该是一个非常简单的做法。   

由于某种原因、我认为这个芯片可能无法正常工作、但我使用了一 个姐妹 Hercules 芯片 TMS570LS0432尝试了同样的操作、它的运行方式也是一样的。   

那么、我的问题是、使用  即将过期的数字看门狗触发的中断立即运行关断功能的正确方法吗?   

感谢您的阅读和任何帮助!   

道格

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

    您好 Doug、

    ESM 组2错误生成 CPU 的复位或者一个不可屏蔽的高优先级中断 、并且将 ERROR 引脚置为有效。  这是通过配置 数字 窗口看门狗反应控制寄存器(RTIWDRXNCTRL)来控制的。

    您是否将 RTIWWDRXNCTRL 寄存器配置为在发生 DDW 违规时生成 NMI?

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

    在与这个问题进行了大量的斗争和大量的阅读之后,我终于弄清楚了我的问题是什么。    Halocogen 中的示例 example_dwwd.c 未专门设置为处理 esmGroup2Notificaiton 中断。   该示例通过调用 enable_IRQ()来启用中断,该函数显然只启用 IRQ 中断,但不启用 ESM 中断所使用的 FIQ 中断。   我最终意识到调用 enable_interrupt_()是启用 IRQ 和 FIQ 中断的正确中断启用命令。   这解决了我的示例问题。   希望有一天、这对其他人有所帮助。