.. _faq_watchdog: Use of Watchdog in Applications ############################### Zephyr provides watchdog support natively. There are two types of watchdog in a typical system: i) System Level watchdog using hardware watchdog timer and ii) 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: * `Watchdog Interface `_ * `Task Watchdog `_