616baa239d
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
12 lines
335 B
Markdown
12 lines
335 B
Markdown
# 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.
|
|
|