esp-idf/examples/system/task_watchdog
Darian Leung 616baa239d esp32: New Task Watchdog API
Legacy API of task watchdog used the same function esp_task_wdt_feed() to add
and feed a task. This caused issues of implicitly adding a task to the wdt list
if the function was used in shared code.

The new API introduces init, adding, feeding, deleting, deinit functions. Tasks
must now be explicitly added to the task watchdog using their handles. Deletion
must also be explicit using task handles. This resolves the issue of implicit
task additions to the task watchdog due to shared code calling
esp_task_wdt_feed().

Task watchdog is now fully configurable at runtime by calling the init and
deinit functions.

Also added functions to get the handles of idle tasks of the other core. This
helps when adding idle tasks to the watchdog at run time.

Configuring the task watchdog using menu config is still available, however
menu config will only result in calling the init and add functions for idle
tasks shortly after the scheduler starts.

Menu config also allows for using legacy behavior, however the legacy behavior
willcall the new API functions but with slight variations to make them legacy
compatible.

Documentation and example have also been updated

gcov_rtio.c headers updated to prevent error of freertos header files being
included in the wrong order.

Resolves issue TW#13265
2017-09-29 23:10:55 +08:00
..
main esp32: New Task Watchdog API 2017-09-29 23:10:55 +08:00
Makefile esp32: New Task Watchdog API 2017-09-29 23:10:55 +08:00
README.md esp32: New Task Watchdog API 2017-09-29 23:10:55 +08:00

Example: task_watchdog

This test code shows how to initialize the task watchdog, add tasks to the watchdog task list, feeding the tasks, deleting tasks from the watchdog task list, and deinitializing the task watchdog.

Test:

Program should run without error. Comment out "esp_task_wdt_feed()" to observe a watchdog timeout.