| .. zephyr:code-sample:: watchdog | 
 |    :name: Watchdog | 
 |    :relevant-api: watchdog_interface | 
 |  | 
 |    Use the watchdog driver API to reset the board when it gets stuck in an infinite loop. | 
 |  | 
 | Overview | 
 | ******** | 
 |  | 
 | This sample demonstrates how to use the watchdog driver API. | 
 |  | 
 | A typical use case for a watchdog is that the board is restarted in case some piece of code | 
 | is kept in an infinite loop. | 
 |  | 
 | Building and Running | 
 | ******************** | 
 |  | 
 | In this sample, a watchdog callback is used to handle a timeout event once. This functionality is used to request an action before the board | 
 | restarts due to a timeout event in the watchdog driver. | 
 |  | 
 | The watchdog peripheral is configured in the board's ``.dts`` file. Make sure that the watchdog is enabled | 
 | using the configuration file in ``boards`` folder. | 
 |  | 
 | Building and Running for ST Nucleo F091RC | 
 | ========================================= | 
 |  | 
 | The sample can be built and executed for the | 
 | :ref:`nucleo_f091rc_board` as follows: | 
 |  | 
 | .. zephyr-app-commands:: | 
 | 	:zephyr-app: samples/drivers/watchdog | 
 | 	:board: nucleo_f091rc | 
 | 	:goals: build flash | 
 | 	:compact: | 
 |  | 
 | To build for another board, change "nucleo_f091rc" to the name of that board and provide a corresponding devicetree overlay. | 
 |  | 
 | Sample output | 
 | ============= | 
 |  | 
 | You should get a similar output as below: | 
 |  | 
 | .. code-block:: console | 
 |  | 
 | 	Watchdog sample application | 
 | 	Attempting to test pre-reset callback | 
 | 	Feeding watchdog 5 times | 
 | 	Feeding watchdog... | 
 | 	Feeding watchdog... | 
 | 	Feeding watchdog... | 
 | 	Feeding watchdog... | 
 | 	Feeding watchdog... | 
 | 	Waiting for reset... | 
 | 	Handled things..ready to reset | 
 |  | 
 | .. note:: After the last message, the board will reset and the sequence will start again |