luat_wdt_idf5.c 674 B

123456789101112131415161718192021222324252627282930313233
  1. #include "luat_base.h"
  2. #include "luat_wdt.h"
  3. #include "esp_task_wdt.h"
  4. #include "luat_log.h"
  5. #define LUAT_LOG_TAG "wdt"
  6. esp_task_wdt_config_t twdt_config = {
  7. .timeout_ms = 0,
  8. .idle_core_mask = 0,
  9. .trigger_panic = false,
  10. };
  11. int luat_wdt_init(size_t timeout){
  12. twdt_config.timeout_ms = timeout;
  13. esp_task_wdt_init(&twdt_config);
  14. return esp_task_wdt_add(NULL);
  15. }
  16. int luat_wdt_feed(void){
  17. return esp_task_wdt_reset();
  18. }
  19. int luat_wdt_set_timeout(size_t timeout){
  20. twdt_config.timeout_ms = timeout;
  21. return esp_task_wdt_reconfigure(&twdt_config);
  22. }
  23. int luat_wdt_close(void){
  24. esp_task_wdt_delete(NULL);
  25. return esp_task_wdt_deinit();
  26. }