一、环境配置

更新--- 2022/4/13

问题:之前的操作会造成新项目无法找到esp_vApplicationldleHook的函数,所以改成了屏蔽宏定义的操作,但是需要使用者在自己的所有项目的main.c中添加void vApplicationldleHook(void)函数,不然会编译出错

1、ESP-IDF 4.3 & ESP-IDF 4.4

2、应该适用于全部的ESP32系列,ESP8266就不太清楚,本人基本不用ESP8266了,所以没有遇到

提示  IDLE是FreeRTOS系统中必须有的一个最低级调度的空闲任务,具体为啥请百度

二、先看UART的LOG

这里提示说IDLE0空闲任务的看门狗被触发了(没有喂狗),但当前运行在loopTask任务中。当然可能是其他的任务,但都是同种情况。

这里分两种情况,一个是函数中没有运行vTaskDelay挂起函数,一个是运行了vTaskDelay挂起函数。

1、任务循环中没有运行vTaskDelay挂起函数

请添加vTaskDelay,至少有一段时间的运行权给到IDLE任务中。

2、任务循环中运行了vTaskDelay挂起函数

即使添加了vTaskDelay,但还是出现上述LOG的报告的话。请看下面。

三、在保证任务中已有运行vTaskDelay挂起函数的情况下,依旧出现卡狗的情况

1、添加相关头文件并打开宏开关

在你的main.c中添加

#include "freertos/FreeRTOSConfig.h"
#include "esp_task_wdt.h"

FreeRTOSConfig.h 一般情况下,是使用者更改宏开关的地方。在里面全局搜索 configUSE_IDLE_HOOK,请保证这个宏是 1;一般情况下这个宏默认是1

#define configUSE_IDLE_HOOK                             1

esp_task_wdt.h则是稍后添加喂狗函数的头文件

2、添加IDLE空闲任务的钩子函数(钩子函数不知道的请百度,有点类似回调函数)

在main.c的最下面添加钩子函数,直接添加就可以了,不用其他操作。请注意,最好不要添加阻塞性的函数,包括printf函数,为了保证响应

void vApplicationIdleHook(void)
{esp_task_wdt_reset();
}

在源代码中是这样的

 #if ( configUSE_IDLE_HOOK == 1 ){extern void vApplicationIdleHook( void );/* Call the user defined function from within the idle task.  This* allows the application designer to add background functionality* without the overhead of a separate task.* NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES,* CALL A FUNCTION THAT MIGHT BLOCK. */vApplicationIdleHook();
}
#endif /* configUSE_IDLE_HOOK */

函数内声明了这个函数,所以使用者无需在.h中对外声明。而代码中的这个宏就是在第三点第一小点的宏

三、屏蔽宏函数(更新修改点)

因为ESP32的系列中,分两个内核,一个是riscv,一个是xtensa,所以在.h中也分两个文件,按照自己需要的屏蔽即可

我使用的是ESP32-C3,内核是riscv,所以要找到对应riscv的.h文件

四、编译

可以编译了

再次提醒!!!

这样做的话,要在你使用的所有项目中,都添加void vApplicationIdleHook(void),参考第三点第二小点----添加IDLE空闲任务的钩子函数。

不然的话编译到最后会报无法找到vApplicationIdleHook函数的错误

这个问题基本解决方法大概是这样子。如果后期再出现这种问题可以在下面留言

[笔记]ESP32 踩坑 任务看门狗超时的问题---Task watchdog got triggered相关推荐

  1. (实验6,实验7)单片机,STM32F4学习笔记,代码讲解【看门狗实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象(实验六) 主程序(实验六) 独立看门狗初始化程序(实验六) 代码讲解(实验六) 实验现象(实验七) 主程序(实验七) 窗口看门狗初始化程序(实验七) 代 ...

  2. HBase眼高手低从Shell到IDEA编程、心路笔记、踩坑过程

    HBase眼高手低从Shell到IDEA编程.心路笔记.踩坑过程 HBase眼高手低 通过shell操作Hbase Foundation 在terminal中输入hbase,就可以查看hbase命令的 ...

  3. 看门狗超时前在内核打印信息

    前不久,有几台设备一直在无故复位,虽然我很怀疑是应用程序搞死设备的,但公司的人员一向都是自己找不到问题就赖内核.对于这个复位,我的意见是禁止看门狗再测试,但没人理会,因此我想在看门狗超时前在内核里打印 ...

  4. 【分析笔记】Linux gpio_wdt.c 看门狗设备驱动源码分析

    基本原理 该看门狗的设备驱动实现原理很简单,比较主要的有两点: 一.定时器喂狗 通过定时器根据配置文件配置的喂狗方式(如脉冲切换.电平切换),对指定的 gpio 进行脉冲切换或电平切换实现喂狗. 脉冲 ...

  5. Slam学习笔记——ROS踩坑记录

    Slam学习笔记--ROS踩坑记录 1. 安装 2. ROS文件系统 2.1 工作区 2.2 包package 2.2.1 包的操作 2.2.2 描述文件package.xml 2.3 节点node ...

  6. ESP32 E (10309) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdo

    ESP32,在开发时,在以下代码片中(功能很简单,定时改变PWM的Duty): // A code block while (1){for (int i = 0; i < 100; i++){/ ...

  7. 我的内核学习笔记9:Intel内部看门狗iTCO_wdt驱动

    本文对Intel e3800内部看门狗驱动源码进行分析. 一.概述 Intel e3800内部看门狗在手册的PCU - Power Management Controller (PMC)章节中介绍-- ...

  8. STM32看门狗超时时间计算

    独立看门狗 公式 超时时间的公式为 :超时时间 :IWDG_PR寄存器中位2:0的十进制值 :重装载寄存器IWDG_RLR所对应的重装载数值 公式解读 首先,我们要明白: 独立看门狗内部是一个递减计数 ...

  9. STM32F1笔记(六)独立看门狗IWDG

    STM32F1内置了两个看门狗,独立看门狗IWDG和窗口看门狗WWDG,可以用来检测和解决由软件错误引起的故障. IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精 ...

最新文章

  1. R语言ggplot2可视化左对齐两个可视化图像的画图区域(边缘)实战
  2. QT Creator介绍
  3. 经典排序算法 - 冒泡排序Bubble sort
  4. 设计模式------中介者模式
  5. LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
  6. 轻松生成ip地址的姿势,最快得到批量***目标
  7. Golang实践录:静态资源文件整合:初步使用
  8. 笔记86 | 视频在ACC起来后会跳进度问题分析
  9. [转][C#] .net动态编译C# 和 VB
  10. VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
  11. 整合Spring Cloud微服务分布式云架构技术点
  12. 自然语言5——初学者书籍
  13. iOS 动画十四:Replicating Animations
  14. 视频教程-Protel99se电路设计速成-智能硬件
  15. 中国国家信息安全产品认证证书 | CCRC信息安全服务资质认证
  16. html js手册chm,W3C Javascript CHM参考手册离线版
  17. 后缀学习第三课(下)
  18. python 天勤 金叉 编程代码_基于tqsdk(天勤)编译的均线交叉与通道突破相结合的交易系统...
  19. word 2007 页眉页脚编辑心得
  20. 关于微信开发者没有上传按钮的问题

热门文章

  1. python输出时怎么保留两位小数_python输出怎么保留两位小数-Python教程
  2. echarts 桑基图sankey
  3. 超融合一体机分布式存储
  4. java 麻将 夹胡_麻将中两头夹怎么胡
  5. 计算机科学与技术3d仿真设计,三维仿真
  6. VMware虚拟机运行时报The CPU has been disabled by the guest operating system错误的解决方法
  7. Call From hadoop102/192.168.10.102 to hadoop102:8020 failed on connection exception: java.net.Connec
  8. hadoop HA 架构
  9. 软件项目“免坑”指南
  10. C/C++图形库EasyX快速上手指南【1】——绘图窗口和基本图形文字绘制