0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

硬件+软件看门狗监测多任务的原理

strongerHuang 来源:嵌入式专栏 作者:嵌入式专栏 2021-03-09 11:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们都知道硬件看门狗的目的:是用来监测系统,防止系统死机,并在死机的情况下使其系统复位重启。

RTOS操作系统中,如果任务(线程)较多,出现高优先级任务长时间占用CPU资源,低优先级任务长时间得不到执行这种想象,那么我们的系统就是具有“Bug”的系统。

如上描述,假如我们的线程没有死机,只是长时间得不到执行。在这种异常情况下,我们又不希望系统复位,只希望执行特定代码,那我们该如何来避免这种问题呢?

1

关于看门狗硬件看门狗:利用一个定时器计数电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时“喂狗”。

因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内喂狗,就使得看门狗定时器溢出产生复位信号并重启系统。

STM32中,有两个看门狗:独立看门狗和窗口看门狗。原理和功能都类似,只是应用场景不一样。

软件看门狗:软件看门狗和硬件看门狗原理类似,都是定期(在时间溢出之内),对其喂狗。只是软件喂狗的方式是通过自身设计的计数来实现。

2

硬件+软件看门狗监测多任务的原理

1.利用一个监测线程(自身),来监测其它多个线程;2.利用硬件看门狗来监测自身。

如图:

假如我系统中有多个应用线程(如上图),我就利用一个监测线程(自身),来监测其它多个应用线程。

同时,为了防止自身线程异常,利用一个硬件看门狗来监测自身。这样就可以做到双重监测的作用。

3

结合软件来讲原理上一节上述的原理可能对于有些人来说,是比较抽象的。那么这一节来看看代码:

监测线程(自身):

简单来说:在监测线程(自身)之中,需要对硬件看门狗进行喂狗。软件看门狗的角色:在这里就是对齐计数,浏览是否溢出,我把它封装成一个浏览函数。具体的喂狗就在其他各个被监测的线程中。

那么,再看软件看门狗对其中一个应用线程喂狗的代码:

这里只是简单的举例,一个主线程里面的喂狗。相当于:我线程启动之后,就需要定时喂狗。如果这里长时间不喂狗,那么监测线程(自身)就会发现你没有喂狗。

4

简答的实现方法

看到这里,相信大家都知道其原理了。具体实现的方式方法很多种,可根据自己实际项目需要,添加相应的接口。这里举例几点吧。

定义一个数据结构:

这里举例,是实现最基础的东西,比如计数器,最大超时值等。

注册接口函数:

监测浏览函数接口:

以上只是教大家方法,具体的实现,可自己根据自己习惯,项目需求来定制化开发。

------------ END ------------

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    611

    浏览量

    73195
  • 定时器
    +关注

    关注

    23

    文章

    3373

    浏览量

    124502
  • 线程
    +关注

    关注

    0

    文章

    510

    浏览量

    20871

原文标题:基于STM32、FreeRTOS实现硬件看门狗+软件看门狗监测多任务的思路

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探秘MAX6814:5引脚看门狗定时器电路的实用指南

    的低功耗看门狗电路。 文件下载: MAX6814.pdf 一、概述 MAX6814能够有效监控系统的软件代码执行情况,大大提高系统的可靠性。当看门狗输入检测到转换沿时,内部的看门狗定时
    的头像 发表于 03-26 14:50 162次阅读

    SGM819SxQ 汽车应用看门狗定时器电路解析

    SGM819SxQ 这款独立看门狗定时器电路。 文件下载: SGM819SxQ.pdf 一、概述 SGM819SxQ 是一款独立的看门狗定时器电路,它就像系统的“守护者”,能有效防范因硬件故障(如外设错误、总线占用)或
    的头像 发表于 03-24 10:10 195次阅读

    SGM819S看门狗定时器电路:设计与应用详解

    有效的解决方案。下面我们就来详细了解一下这款产品。 文件下载: SGM819S.PDF 产品概述 SGM819S是一款独立的看门狗定时器电路,可防范因硬件(如外设错误、总线占用)或软件(如代码无限循环执行)问题导致的系统故障。它
    的头像 发表于 03-24 09:40 157次阅读

    【瑞萨RA × Zephyr评测】多线程和看门狗

    本文章旨在评估使用 Zephyr RTOS 在 Renesas FPB-RA6E2 开发板上实现多线程调度与硬件看门狗功能的应用。评估内容包括任务调度、看门狗初始化流程、主程序逻辑的详
    的头像 发表于 01-10 10:23 2656次阅读
    【瑞萨RA × Zephyr评测】多线程和<b class='flag-5'>看门狗</b>

    深度解析 MAX6369–MAX6374 引脚可选看门狗定时器

    深度解析 MAX6369–MAX6374 引脚可选看门狗定时器 在当今电子设备的复杂系统中,确保微处理器(μP)稳定运行至关重要。看门狗定时器作为一种关键的监督机制,能够在系统出现故障时及时发出信号
    的头像 发表于 12-30 17:55 1535次阅读

    什么是ADC模拟看门狗

    模拟看门狗功能,支持将 ADC 转换结果与用户设定的阈值进行比较,支持上阈值、下阈值、区间值比较,通过阈值寄存器 ADC_VTH 和 ADC_VTL 设置比较阈值。 模拟看门狗功能只在单通道模式
    发表于 12-12 06:15

    中科芯CKS32F107XX系列MCU的独立看门狗介绍

    安全性、时间精确性和使用灵活性方面变现得非常优秀。两个看门狗定时器单元都可用来检测由软件错误引起的故障,具体表现为当计数器达到给定的超时值或未能在指定时间窗口内刷新计数器的值,会触发系统复位。
    的头像 发表于 11-28 14:51 4006次阅读
    中科芯CKS32F107XX系列MCU的独立<b class='flag-5'>看门狗</b>介绍

    中科芯CKS32F107XX系列MCU的窗口看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG
    的头像 发表于 11-28 14:48 4315次阅读
    中科芯CKS32F107XX系列MCU的窗口<b class='flag-5'>看门狗</b>介绍

    “喂狗”的艺术:看门狗不叫,才是系统好

    看门狗选哪只好呢? 中间那只看起来不错。 咳咳搞错了,自动化项目中说的看门狗是PLC的看门狗,那这个有什么用呢?难道真的是看大门的
    的头像 发表于 11-25 10:50 425次阅读
    “喂狗”的艺术:<b class='flag-5'>看门狗</b>不叫,才是系统好

    既然有独立看门狗了,为啥还要窗口看门狗(WWDT),窗口看门狗的特色是什么?

    既然有独立看门狗了,为啥还要窗口看门狗(WWDT),窗口看门狗的特色是什么?
    发表于 11-21 06:42

    看门狗定时器、复位源、异常处理机制科普

    的作用、原理与应用。一、看门狗定时器(WatchdogTimer)1.原理看门狗定时器本质上是一个独立定时器,持续倒计时:软件在规定时间内“喂狗”(重置看门狗计数器
    的头像 发表于 11-17 10:53 1676次阅读
    <b class='flag-5'>看门狗</b>定时器、复位源、异常处理机制科普

    小安派BW21-CBV-Kit入门教程之看门狗简介

    这是一个简单的看门狗定时器(WDT)示例,演示了看门狗 API 的用法。 有关看门狗的定义和工作原理,请参阅以下信息。
    的头像 发表于 11-13 17:22 5212次阅读
    小安派BW21-CBV-Kit入门教程之<b class='flag-5'>看门狗</b>简介

    德州仪器TPS3436-Q1汽车级窗口看门狗定时器技术解析

    Texas Instruments TPS3436-Q1精密窗口看门狗定时器是一款超低功耗(250nA典型值)器件,提供可编程窗口看门狗定时器。TPS3436-Q1可提供具有多种功能的高精度超时
    的头像 发表于 08-18 14:54 1943次阅读
    德州仪器TPS3436-Q1汽车级窗口<b class='flag-5'>看门狗</b>定时器技术解析

    井下电子仪器守护者——高温看门狗电源监控电路

    石油测井高温看门狗电源监控电路是保障井下电子仪器在极端恶劣环境下生存和执行任务的关键“守护者”
    的头像 发表于 07-30 17:21 778次阅读
    井下电子仪器守护者——高温<b class='flag-5'>看门狗</b>电源监控电路

    第二十四章 WWDG——窗口看门狗

    W55MH32的窗口看门狗是7位递减计数器,有上下窗口值,时钟来自PCLK1用于监测软件故障,代码演示了其配置、中断测试与复位测试。
    的头像 发表于 06-20 14:00 1392次阅读
    第二十四章 WWDG——窗口<b class='flag-5'>看门狗</b>