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.

IWRL6432:Watchdog reset problem

Part Number: IWRL6432
Other Parts Discussed in Thread: IWR1642

HI.

Test cases in MMWAVE_L_SDK_05_03_00_02\examples\drivers\watchdog\watchdog_reset\xwrL64xx-evm\m4fss0-0_freertos. After triggering the watchdog timeout, the radar stopped printing output, and the radar did not respond, nor did it re-run the program. This is the same as the soft reset symptom. When using the watchdog_interrupt test case, what do I do in the callback function to trigger a watchdog reset?

  • Hello.

    Test cases in MMWAVE_L_SDK_05_03_00_02\examples\drivers\watchdog\watchdog_reset\xwrL64xx-evm\m4fss0-0_freertos. After triggering the watchdog timeout, the radar stopped printing output, and the radar did not respond, nor did it re-run the program. This is the same as the soft reset symptom

    This may be due to the fact that the end goal of the watchdog_reset example is to trigger a warm reset via triggering a watchdog reset.  This is a known issue with the warm reset, so I will follow up and I will provide an update by Wednesday of next week.

    When using the watchdog_interrupt test case, what do I do in the callback function to trigger a watchdog reset?

    The callback function is not used to trigger a watchdog reset.  The function responds to getting an interrupt generated by the watchdog timer expiring, which then executes the callback.  You do not need to trigger a watchdog reset for this example.

    Sincerely,

    Santosh

  • Hi.

    I used the watchdog_reset use case in the NoRTOS test project to restart the program after the watchdog restarts. What if I want to use watchdog_interrupt to reset the watchdog? My idea is to determine the number of times (gWatchdogInt) to enter the callback function in the watchdog's timed interrupt callback function, such as reset if it is greater than 10 times. When the program is running normally, it only needs to set 0 to gWatchdogInt. When the program is abnormal or not set 0 to gWatchdogInt, the reset is triggered. We used this approach in iwr1642. The iwr1642 code is shown below; What to do if you want to achieve the same effect as iwr1642.

  • Hello.

    To reset the watchdog, all you need to do is make sure the Watchdog_RESET_ON mode is enabled.  Upon expiry of the watchdog timer, it will generate a reset signal.  However, if you call watchdog_clear(), it will prevent the generation of the reset signal and will not reset the signal.  So what you could do is until the desired gWatchdogInt reaches the desired count, call watchdog clear like in the example, and then afterwards allow the generation of the reset signal by not calling the clear function.  However, I believe enabling the NMI interrupt will cause this mode to be off, so you would need to manually trigger the reset by calling soc_triggerWarmReset in the handler function at the desired count as the reset signal will not be automatically generated at the end of the watchdog timer.

    Sincerely,

    Santosh