Artículos del sistema RTOS - Watchdog WatchDog 2
descripción general
La sección anterior explicó los principios básicos del perro guardián, las razones y las soluciones para activar el perro guardián en tareas e interrupciones en el artículo del sistema RTOS - Perro guardián [No alimente al perro ni lo muerda] .
Esta sección sigue a la sección anterior y analiza principalmente cómo agregar una tarea al perro guardián y alimentar al perro a tiempo. Los lectores pueden consultar el uso del ejemplo para comprender su uso básico y encontrar API similares en la plataforma que usan para estudiar e investigar.
Vigilancia de tareas en ESP-IDF
El mecanismo de vigilancia de tareas (TWDT) se basa en el temporizador de vigilancia del hardware en el grupo de temporizadores 0 .
TWDT se puede inicializar esp_task_wdt_init()
llamando , lo que configurará el temporizador de hardware.
Luego, las tareas esp_task_wdt_add()
se pueden agregar
Cada tarea agregada al supervisor de tareas debe llamar periódicamente esp_task_wdt_reset()
para restablecer el TWDT. Si alguna tarea añadida al guardián de tareas devuelve un error esp_task_wdt_reset()
cuando , significa que la tarea actual está atascada en un ciclo antes de llamar a esta función, o que una o más tareas ocupan la CPU durante mucho tiempo, por lo que la función actual no tiene oportunidad de correr esp_task_wdt_reset()
.
Las tareas se pueden eliminar de la cola de supervisión del mecanismo de vigilancia de tareas esp_task_wdt_delete()
mediante . Una vez que todas las tareas se cargan desde TWD