Hello,
I want to setup and use the internal watchdog (DWD) in interrupt mode due to the reported issue MSS#41 on the IWR6843AOP errata sheet, “Issuing WARM_RESET can Cause Bootloader Failure Which Results in Failure to Load the Application From Serial Flash”.
According to the mmwave_sdk_03_05_00_04 watchdog driver document Watchdog_clear() function only clears the watchdog in Watchdog_RESET_ON reset mode.
I tried to used it in Watchdog_RESET_OFF mode, but IWR6843AOP device resets as soon as WatchdogRTI_clear() function is called, reset occurs on the below line:
ptrHwCfg->ptrWatchdogBase->RTIWDKEY = WATCHDOG_SECOND_WDKEY;
Same function WatchdogRTI_clear() works fine if the watchdog configured in Watchdog_RESET_ON reset mode.
Could you please advise me how can I clear watchdog in Watchdog_RESET_OFF mode.
Here is the watchdog configuration snippet which identical to the driver test scenario:
Watchdog_Params watchdogParams;
/* Initialize the Watchdog driver */
Watchdog_init();
/* Initialize the Watchdog driver default parameters */
Watchdog_Params_init(&watchdogParams);
watchdogParams.resetMode = Watchdog_RESET_ON;
//watchdogParams.callbackFxn = watchdogCallback;
watchdogParams.debugStallMode = Watchdog_DEBUG_STALL_ON;
watchdogParams.windowSize = Watchdog_WINDOW_100_PERCENT; /* Window watchdog disable */
watchdogParams.preloadValue = 20; /* texp = ((preloadValue + 1) × 2^13) / RTICLK */
watchdogParams.socHandle = gMmwMssMCB.socHandle;
watchdogParams.esmHandle = gMmwMssMCB.esmHandle;
/* Open the Watchdog driver */
watchdogHandle = Watchdog_open(0, &watchdogParams);
if (watchdogHandle == NULL)
{
System_printf ("Error: Watchdog Driver Open failed\n");
while(1);
}
/* Clear watchdog */
Watchdog_clear(watchdogHandle);
Cheers,