基础看门狗--idf开发esp32s3
idf的esp32自带freertos任务,如果main函数中使用了while(1),则需要在程序中定时喂狗或延时,以此释放cpu处理其他隐藏任务,也就是自带的喂狗任务。
下面是没有喂狗的情况,日志的5266就是5.266s的意思,也就是长时间没有喂狗的提示,任务i默认喂狗时间是5000ms左右,也就是5s,第一次的日志打印时间不是这个时间,是因为程序的启动耗时。
下面是喂狗的方案。(推荐是用方案一)
方案一是要是用freertos内置的延时函数,所以需要包含头文件。
针对方案一,最简单的理解就是基于freertos,如果阻塞了当前的程序,cpu就会从当前任务脱身,去执行别的程序,这别的程序就包括喂狗程序。
方案二是要是用任务注册函数
针对方案二,esp_task_wdt_add(NULL)是将当前任务添加到看门狗,也就是app_main这个任务的运行时间和喂狗时间绑定,之后在while中