freertos 看门狗
在 FreeRTOS 中使用看门狗(Watchdog)的要点如下:
1. 看门狗的作用
- 用于检测系统异常(如任务死循环、阻塞超时等),通过超时复位系统恢复稳定性。
- 分为 硬件看门狗(由MCU提供)和 软件看门狗(通过FreeRTOS机制实现)。
2. 硬件看门狗实现
- 配置硬件定时器: 在MCU中启用硬件看门狗(如STM32的IWDG或WWDG),设置超时时间。
-
定期喂狗: 在FreeRTOS任务中周期性重置看门狗(如使用
xTaskGetTickCount()控制喂狗间隔)。void vTaskCheck(void *pvParameters) { for (;;) { // 喂狗操作(具体函数取决于MCU型号) IWDG_Refresh(); vTaskDelay(pdMS_TO_TICKS(500)); // 每500ms喂狗 } }
3. 软件看门狗实现
- 任务监控钩子:
使用
vApplicationTickHook()(时钟钩子函数)或uxTaskGetSystemState()检查任务状态。 -
任务超时检测: 记录任务运行时间戳,若超时未更新则触发复位。
// 全局变量记录任务状态 volatile uint32_t ulTaskLastCheckTime = 0; void vTaskWorker(void *pvParameters) { for (;;) { // 任务正常运行时更新时间戳 ulTaskLastCheckTime = xTaskGetTickCount(); // ... 任务逻辑 ... } } // 监控任务 void vTaskWatchdog(void *pvParameters) { for (;;) { if ((xTaskGetTickCount() - ulTaskLastCheckTime) > pdMS_TO_TICKS(1000)) { // 超时未更新,触发复位 NVIC_SystemReset(); } vTaskDelay(pdMS_TO_TICKS(100)); } }
4. 关键注意事项
- 喂狗策略:
- 多任务系统中,需协调各任务状态,避免单一任务阻塞导致误复位。
- 可设计“健康状态报告”机制,各任务定期上报状态,由独立监控任务统一喂狗。
- 优先级设计: 喂狗任务的优先级应足够高,避免被长时间阻塞。
- 调试技巧:
- 在复位前记录错误信息(如通过串口输出或保存到非易失存储器)。
- 使用
uxTaskGetSystemState()分析任务状态,定位超时原因。
5. FreeRTOS 辅助工具
- 运行时间统计:
启用
configGENERATE_RUN_TIME_STATS,通过vTaskGetRunTimeStats()获取任务CPU占用率,辅助分析阻塞任务。 - 堆栈溢出检测:
启用
configCHECK_FOR_STACK_OVERFLOW,避免任务堆栈溢出导致看门狗误触发。
6. 示例流程
- 初始化硬件看门狗(如配置IWDG超时为1秒)。
- 创建高优先级监控任务,定期检查关键任务状态。
- 关键任务运行时更新共享的时间戳或信号量。
- 若监控任务检测到超时,触发系统复位。
通过结合硬件看门狗和FreeRTOS的任务监控机制,可以有效提升系统可靠性,快速恢复异常状态。
软件看门狗和硬件看门狗的区别
软件看门狗和硬件看门狗都是用于监控系统崩溃的工具,它们的作用是在系统出现故障或异常情况时自动恢复系统。 软件看门狗是一种程序,运行在操作系统中
2024-04-16 15:10:41
MCU如何集成看门狗的功能
一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门
2023-06-22 09:09:00
什么是看门狗,工业路由器看门狗技术的功能优势
工业路由器大多都会配备看门狗技术,它是保证工业路由器传输过程中连续24小时不宕机的重要保护技术,那么,什么是看门狗呢?▍看门狗功能
2023-03-27 10:16:19
MCU独立看门狗与窗口看门狗的区别
早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。为了满足更多使用场景,现在很多MCU都集成了两个
资料下载
刘洋
2021-10-28 20:06:01
STM32 ADC模拟看门狗及其应用
STM32 ADC模拟看门狗及其应用(电源技术期刊是什么级别期刊)-模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看
资料下载
丁冬芹
2021-08-04 18:12:22
单片机看门狗有两种:分别为独立看门狗和窗口看门狗,它们有什么区别?资料下载
电子发烧友网为你提供单片机看门狗有两种:分别为独立看门狗和窗口看门狗,它们有什么区别?资料下载的电子资料下载,更有其他相关的电路图、源代码、课件
资料下载
佚名
2021-04-18 08:41:01
STM32中的独立看门狗和窗口看门狗是什么
在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗
2023-02-20 17:47:07
STM32中的独立看门狗和窗口看门狗
在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门狗
2023-01-30 14:38:17
STM32中的独立看门狗和窗口看门狗
一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门
2022-12-22 16:58:20
FreeRTOS使用看门狗的步骤
FreeRTOS可以建立很多任务,假如有某种问题使得某一任务一直在执行,不释放资源。到一定时间后,看门狗会自动进行系统复位。看门狗,又叫 wat
2022-09-13 15:42:19
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机