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.

[参考译文] RTOS/LAUNCHXL-CC1310:CC1310中看门狗定时器的可靠性

Guru**** 2540720 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578196/rtos-launchxl-cc1310-reliability-of-watchdog-timer-in-cc1310

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

工具/软件:TI-RTOS

您好!  

我在 TI-RTOS 的 CC1310顶部使用看门狗计时器。 我设置它生成系统重启中断、并使用无限循环检查我的代码。 我将 while ();放入我的代码中、并定义了看门狗超时。 当我运行 CC1310 LaunchPad 的代码时、会重启、此时超时。 但是、我想知道如果 TI-RTOS 卡在某个位置会发生什么情况? 因为启用 WDT 我使用了 TI-RTOS 库函数。  我的代码开始时添加了这个库头#include 。 如果 TI-RTOS 挂起、看门狗计时器是否仍在工作? 有人能让我清楚地了解这一点吗? 谢谢你。

这是我用于初始化 WDT 的代码、

 

void wdtSetup()

Watchdog_Params 参数;
/*呼叫板初始化函数*/
Watchdog_init();
/*创建并启用禁用复位的看门狗*/
Watchdog_Params_init (params);
params.callbackFxn =(Watchdog_Callback)看门狗回调;
params.resetMode = Watchdog_reset_on;//生成重新启动中断
WatchdogHandle = Watchdog_open (Board_WATCHDOG0、&params);
Watchdog_setReload (watchdogHandle、30000000);//设置 WDT 周期

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

    看门狗计时器的目的是检测应用程序变为"卡住"的情况。 看门狗驱动程序只是配置硬件、因此与操作系统无关。 在您的情况下、看门狗将在超时后生成复位。

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

    感谢您的快速响应。 那么、我如何测试 WDT 功能呢? 这意味着我如何创建 TI-RTOS 卡住的情形? 因为我想确保我的 WDT 正常工作。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Harsha、

    您使用的是 TI-RTOS 或 SimpleLink SDK 的哪个版本?

    您的产品中可能包含一个看门狗示例。

    或者、最简单的方法是添加一个硬件中断(Hwi)。 在 Hwi 内、禁用 Hwi 并进入无限 while (1)循环。

    void myHwi (UARg arg)
    {
    uint32_t KEY = Hwi_disable();
    
    while (1);
    
    } 

    请参阅 Hwi 文档

    Derrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 Derrick。 这对我来说很有用。