mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
7c02bde904
This commit does the following: - Update existing unit tests that use the TWDT to call the new esp_task_wdt_init() API - Add a set of dedicate TWDT unit tests - Updates the TWDT example
67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Task Watchdog Example
|
|
|
|
The following example demonstrates how to use the following features of the task watchdog timer (TWDT):
|
|
|
|
- How to initialize and deinitialize the TWDT
|
|
- How to subscribe and unsubscribe tasks to the TWDT
|
|
- How to subscribe and unsubscribe users to the TWDT
|
|
- How to tasks and users can reset (i.e., feed) the TWDT
|
|
|
|
## How to use example
|
|
|
|
Before project configuration and build, be sure to set the correct chip target using `idf.py set-target <chip_name>`.
|
|
|
|
### Hardware Required
|
|
|
|
* A development board with ESP32-S or ESP32-C series chip
|
|
* A USB cable for Power supply and programming
|
|
|
|
### Configure the project
|
|
|
|
Program should run correctly without needing any special configuration. However, users can disable `CONFIG_ESP_TASK_WDT` which will prevent the TWDT from being automatically initialized on startup. If disabled, the example will manually initialize the TWDT.
|
|
|
|
### Build and Flash
|
|
|
|
Build the project and flash it to the board, then run monitor tool to view serial output:
|
|
|
|
Run `idf.py -p PORT flash monitor` to build, flash and monitor the project.
|
|
|
|
(To exit the serial monitor, type ``Ctrl-]``.)
|
|
|
|
See the [ESP-IDF Getting Started Guide](https://idf.espressif.com/) for all the steps to configure and use the ESP-IDF to build projects.
|
|
|
|
## Example Output
|
|
|
|
When the example runs normally, the following output will be observed:
|
|
|
|
```
|
|
I (316) cpu_start: Starting scheduler on PRO CPU.
|
|
I (0) cpu_start: Starting scheduler on APP CPU.
|
|
TWDT initialized
|
|
Subscribed to TWDT
|
|
Delay for 10 seconds
|
|
Unsubscribed from TWDT
|
|
TWDT deinitialized
|
|
Example complete
|
|
```
|
|
|
|
Users can comment out any of the `esp_task_wdt_reset()` or `esp_task_wdt_reset_user()` calls to trigger the TWDT, which in turn will result in the following output:
|
|
|
|
```
|
|
I (316) cpu_start: Starting scheduler on PRO CPU.
|
|
I (0) cpu_start: Starting scheduler on APP CPU.
|
|
TWDT initialized
|
|
Subscribed to TWDT
|
|
Delay for 10 seconds
|
|
E (6326) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
|
|
E (6326) task_wdt: - task (CPU 0)
|
|
E (6326) task_wdt: Tasks currently running:
|
|
E (6326) task_wdt: CPU 0: IDLE
|
|
E (6326) task_wdt: CPU 1: IDLE
|
|
E (6326) task_wdt: Print CPU 0 (current core) backtrace
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon.
|