The make target is demo.watchdog_example-ISM43362_M3G_L44 download run in SDK 3.1.2. I am trying to use the watchdog function wiced_watchdog_kick() to trigger the reset of the system. My code is below

void application_start( )

{

/* Initialize Wiced system */

wiced_init();

WPRINT_APP_INFO(("kick watchdog..... \r\n"));

wiced_watchdog_kick();

while(1);

}

I also comment out the system_monitor_thread creation in the application_thread_main() of wiced_rtos.c. But the Inventek EVB never reboots after the watchdog timeout(22 seconds). Can you investigate this?

I have determined why the watchdog doesn’t trigger reset. The watchdog being used by WICEDis the STM32 Independent Watchdog (IWDG) which does not reset the MCU. You need to implement the Window Watchdog Timer (WWDG) which when it triggers will cause a reset.

Current watchdog in SDK 3.1.2 has been implemented using Independent Watchdog (IWDG), but my test shows that it doesn't work. See my email above. How can you says the Window Watchdog Timer (WWDG) can trigger the reset. If yes, can you post your implementation code?

Run the attached thread_monitor snippet application using WICED SDK-3.1.2 on the BCM943362WCD4 platform and following is the terminal output with the below change:

PLATFORM_DEFINE_ISR( dbg_watchdog_irq )
{
/* If the code breaks here, it means that the independent watchdog is about to bite.
* Observe the Debug view and examine where the software gets stuck and why
* the watchdog wasn't kicked.
* Click "Resume" to continue and let the actual watchdog take effect.
*/
TIM7->SR = (uint16_t)~TIM_IT_Update;
//WICED_TRIGGER_BREAKPOINT( );
}

Below terminal output is with not commented out "WICED_TRIGGER_BREAKPOINT( );" where the handling is implemented as break point. It is meant to allow debugging if there is an issue with the implementation. It could be replaced with your own specific handler if needed.

When I commented out "WICED_TRIGGER_BREAKPOINT( ). Watchdog can reboot the Inventel ECB. But it still cannot reboot my production board that is based on the Inventek EVB. Below is the terminal output. Any clue for this problem?