[笔记]ESP32 踩坑 任务看门狗超时的问题---Task watchdog got triggered
一、环境配置
更新--- 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相关推荐
- (实验6,实验7)单片机,STM32F4学习笔记,代码讲解【看门狗实验】【正点原子】【原创】
文章目录 其它文章链接,独家吐血整理 实验现象(实验六) 主程序(实验六) 独立看门狗初始化程序(实验六) 代码讲解(实验六) 实验现象(实验七) 主程序(实验七) 窗口看门狗初始化程序(实验七) 代 ...
- HBase眼高手低从Shell到IDEA编程、心路笔记、踩坑过程
HBase眼高手低从Shell到IDEA编程.心路笔记.踩坑过程 HBase眼高手低 通过shell操作Hbase Foundation 在terminal中输入hbase,就可以查看hbase命令的 ...
- 看门狗超时前在内核打印信息
前不久,有几台设备一直在无故复位,虽然我很怀疑是应用程序搞死设备的,但公司的人员一向都是自己找不到问题就赖内核.对于这个复位,我的意见是禁止看门狗再测试,但没人理会,因此我想在看门狗超时前在内核里打印 ...
- 【分析笔记】Linux gpio_wdt.c 看门狗设备驱动源码分析
基本原理 该看门狗的设备驱动实现原理很简单,比较主要的有两点: 一.定时器喂狗 通过定时器根据配置文件配置的喂狗方式(如脉冲切换.电平切换),对指定的 gpio 进行脉冲切换或电平切换实现喂狗. 脉冲 ...
- Slam学习笔记——ROS踩坑记录
Slam学习笔记--ROS踩坑记录 1. 安装 2. ROS文件系统 2.1 工作区 2.2 包package 2.2.1 包的操作 2.2.2 描述文件package.xml 2.3 节点node ...
- 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++){/ ...
- 我的内核学习笔记9:Intel内部看门狗iTCO_wdt驱动
本文对Intel e3800内部看门狗驱动源码进行分析. 一.概述 Intel e3800内部看门狗在手册的PCU - Power Management Controller (PMC)章节中介绍-- ...
- STM32看门狗超时时间计算
独立看门狗 公式 超时时间的公式为 :超时时间 :IWDG_PR寄存器中位2:0的十进制值 :重装载寄存器IWDG_RLR所对应的重装载数值 公式解读 首先,我们要明白: 独立看门狗内部是一个递减计数 ...
- STM32F1笔记(六)独立看门狗IWDG
STM32F1内置了两个看门狗,独立看门狗IWDG和窗口看门狗WWDG,可以用来检测和解决由软件错误引起的故障. IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精 ...
最新文章
- R语言ggplot2可视化左对齐两个可视化图像的画图区域(边缘)实战
- QT Creator介绍
- 经典排序算法 - 冒泡排序Bubble sort
- 设计模式------中介者模式
- LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)
- 轻松生成ip地址的姿势,最快得到批量***目标
- Golang实践录:静态资源文件整合:初步使用
- 笔记86 | 视频在ACC起来后会跳进度问题分析
- [转][C#] .net动态编译C# 和 VB
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
- 整合Spring Cloud微服务分布式云架构技术点
- 自然语言5——初学者书籍
- iOS 动画十四:Replicating Animations
- 视频教程-Protel99se电路设计速成-智能硬件
- 中国国家信息安全产品认证证书 | CCRC信息安全服务资质认证
- html js手册chm,W3C Javascript CHM参考手册离线版
- 后缀学习第三课(下)
- python 天勤 金叉 编程代码_基于tqsdk(天勤)编译的均线交叉与通道突破相结合的交易系统...
- word 2007 页眉页脚编辑心得
- 关于微信开发者没有上传按钮的问题
热门文章
- python输出时怎么保留两位小数_python输出怎么保留两位小数-Python教程
- echarts 桑基图sankey
- 超融合一体机分布式存储
- java 麻将 夹胡_麻将中两头夹怎么胡
- 计算机科学与技术3d仿真设计,三维仿真
- VMware虚拟机运行时报The CPU has been disabled by the guest operating system错误的解决方法
- Call From hadoop102/192.168.10.102 to hadoop102:8020 failed on connection exception: java.net.Connec
- hadoop HA 架构
- 软件项目“免坑”指南
- C/C++图形库EasyX快速上手指南【1】——绘图窗口和基本图形文字绘制