| 12345678910111213141516171819202122232425262728293031323334353637 |
- #include "luat_base.h"
- #include "luat_wdt.h"
- #include "esp_task_wdt.h"
- #include "luat_log.h"
- #define LUAT_LOG_TAG "wdt"
- static uint32_t task_added = 0;
- int luat_wdt_init(size_t timeout){
- if (task_added != 0)
- return 0;
- luat_wdt_set_timeout(timeout);
- esp_task_wdt_add(NULL);
- task_added = 1;
- return 0;
- }
- int luat_wdt_feed(void){
- return esp_task_wdt_reset();
- }
- int luat_wdt_set_timeout(size_t timeout){
- esp_task_wdt_config_t twdt_config = {
- .timeout_ms = timeout,
- .idle_core_mask = 0,
- .trigger_panic = true,
- };
- esp_task_wdt_reconfigure(&twdt_config);
- return 0;
- }
- int luat_wdt_close(void){
- esp_task_wdt_delete(NULL);
- return esp_task_wdt_deinit();
- }
|