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.

[参考译文] CC1352P:当看门狗计时器到期时、电路板不会复位。

Guru**** 2589265 points
Other Parts Discussed in Thread: CC1352P, SYSCONFIG, LAUNCHXL-CC26X2R1

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1011195/cc1352p-when-watchdog-timer-expires-board-is-not-reset

器件型号:CC1352P
主题中讨论的其他器件: SysConfigLAUNCHXL-CC26X2R1

我有一个具有 CC1352P 处理器的电路板。 我的板类似于 CC1352P-2 Launchpad。 我的固件基于 CC1352P-2 Launchpad zed_switch 项目。 我有 Simplelink SDK 5.10.00.48。

我在项目中实现了看门狗。 我的看门狗代码与 SDK 随附的看门狗示例几乎相同。 我已经运行了看门狗示例、它可以正常工作(当看门狗计时器过期时、它会将板复位)。

但是、我的固件无法正常工作、我的问题是、当看门狗计时器过期时、我的板未复位。 我验证了我的回调实际上是被调用的、但我的电路板只是"挂起"而不重新启动。 以下是我的代码:

// Callback function that runs when the watchdog timer times out and the CPU is about to be reset.
void watchdogCallback(uintptr_t watchdogHandle)
{
    // Loop until the device resets.
    while (1) {}
}

// Initializes and opens watchdog driver.
void rit_initializeWatchdog(void)
{
    // One-time initialization of driver
    Watchdog_init();

    // Initialize parameters
    Watchdog_Params params;
    Watchdog_Params_init(&params);
    params.callbackFxn = (Watchdog_Callback) watchdogCallback;
    params.debugStallMode = Watchdog_DEBUG_STALL_ON;
    params.resetMode = Watchdog_RESET_ON;

    // The watchdog timeout value is set in watchdog section of SysConfig.

    // Open driver
    watchdogHandle = Watchdog_open(CONFIG_WATCHDOG_0, &params);

    if (watchdogHandle == NULL)
        System_printf("Error opening watchdog driver\n");
}

// And, in one of my TI_RTOS tasks, I "kick" the wathdog:

    Watchdog_clear(watchdogHandle);

我在 SysConfig 中启用了看门狗、并为其提供了有效的超时值。

我是否遗漏了什么? 我是否必须配置或启用其他功能才能使看门狗复位正常工作?

谢谢
Tim

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

    我尝试在 LAUNCHXL-CC26x2R1的 zed_sw 中启用看门狗、如果在按下按钮时添加阻塞 while (1)-loop、我可以看到看门狗无问题地复位。 如何检查电路板只是"挂起"而不重新启动?

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

    您好、Tim、

    请参阅这些类似的 E2E 帖子、了解它们是否提供了任何线索:

    https://e2e.ti.com/f/1/t/952241 
    https://e2e.ti.com/f/1/t/935781 
    https://e2e.ti.com/f/1/t/879386 

    此致、
    Ryan

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

    我可以告诉电路板挂起、因为两个 LED 都关闭(通常是我们正在使用的)、它不会通过串行端口发送任何内容(通常是这样)、也不会发送任何 Zigbee 消息(通常是这样)。  

    我也尝试过看门狗示例代码、它确实起作用。  在调用看门狗回调后、该板几乎立即复位。

    Ryan、我将查看您提供的链接。 我将在本周旅行、因此我可能不会尝试几天。

    谢谢

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

    您还应查看您的实现与示例之间的区别。 您是否尝试使用您正在使用的设置运行示例?