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: When watchdog timer expires, board is not reset.

Part Number: CC1352P
Other Parts Discussed in Thread: SYSCONFIG, LAUNCHXL-CC26X2R1

I have a board with a CC1352P processor. My board is similar to the CC1352P-2 Launchpad. My firmware is based on the CC1352P-2 Launchpad zed_switch project. I have Simplelink SDK 5.10.00.48.

I've implemented a watchdog in my project. My watchdog code is almost identical to the watchdog example that comes with the SDK. I've run the watchdog example and it works (it resets the board when the watchdog timer expires).

However, my firmware doesn't work as expected, My problem is, when the watchdog timer expires, my board is not reset. I verified that my callback is actually called, but my board simply "hangs" and doesn't restart. Here is my code:

// 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);

I enabled the watchdog in SysConfig, and I gave it a valid timeout value.

Is there something I'm missing? Is there something else I must configure or enable to get a watchdog reset to work?

Thanks
Tim