Use of Watchdog in Applications
Zephyr provides watchdog support natively. There are two types of watchdog in a typical system:
System Level watchdog using hardware watchdog timer and
Task Watchdog for various individual Application Threads.
System Level Watchdog using Hardware Watchdog Timer
This uses hardware watchdog to monitor kernel, drivers and other system software modules.
The watchdog driver source is in zephyr/drivers/watchdog/*cmsdk* files, and is included
by default for Atmosic platforms.
Individual Applications in its main() function is responsible for installing, configuring
and enabling this System watchdog. Look for wdt_install_timeout(), wdt_setup(),
wdt_feed() usages in one of Atmosic Applications source in openair repository
(openair/applications/ras_rrsp_reflector/src/main.c, for example).
It is recommended that each application enables and uses System watchdog for healthy operation of the system.
Task Watchdog for Various Application Threads
This typically uses Zephyr kernel provided software timers, task_wdt. Use of this depends
upon individual applications requirements, depending upon how many application threads exist,
how complex they are and the need for health monitoring within application threads.
Additional Resources
For additional details on Zephyr watchdog support refer to Zephyr documentation: