嵌入式C语言--WatchDog最全概念
嵌入式C语言–WatchDog最全概念
嵌入式C语言--WatchDog最全概念
- 嵌入式C语言--WatchDog最全概念
- 一. 什么是Watchdog
- 1)什么是“被狗咬”
- 2)什么是喂狗
- 二. 基本思想
- 三. 作用
- 四. 监视目标
- 1) 监视一个进程
- 2)监视一个操作系统
- 五. 系统初始化时关闭watchdog的原因
- 六. WATCHDOG模块
- 七. WatchDog总结
一. 什么是Watchdog
Watchdog,又称watchdog timer,它是计算机可靠性(dependability)领域中一个极为简单同时非常有效的检测(detection)工具。
WatchDog硬件的逻辑就是,其硬件上有个记录超时功能,然后要求用户需要每隔一段时间(此时间可以根据自己需求而配置)去对其进行一定操作,比如往里面写一些固定的值,俗称“喂狗”,发现超时了,即过了这么长时间还不给狗喂食,那么偶就认为你系统是死机了,出问题了,狗狗就帮你重启系统。说白了就是弄个看家狗Dog,你要定期给它喂食,如果超时不喂食,那么狗就认为你,他的主人,你的系统,死机了,就帮你reset重启系统。
Softwere Watchdog Timeout,顾名思义就是软件超时监控狗。
1)什么是“被狗咬”
当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启。
简单理解就是当不喂狗时,狗就要来咬你了,这个时候就系统重启了。
2)什么是喂狗
系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零,从而不让复位信号产生。
如果系统不出问题,程序保证按时“喂狗”,一旦程序跑飞,没有“喂狗”,系统“被咬”复位。
这就好比你的身边有一只时刻饥饿的狗,你不按时给它肉吃,它就会吃你的肉,被狗咬…然后挂了,投胎转世,彻底重新做人。
二. 基本思想
WatchDog的基本思想是针对被监视的目标设置一个计数器和一个阈值,WatchDog会自己增加计数值,并等待被监视的目标周期性地重置计数值。一旦目标发生错误,没来得及重置计数值,watchdog会检测到计数值溢出,并采取恢复措施(通常情况下是重启)。
总结一下就是计数——溢出——触发。
一个正常运行的系统,它的执行流应该是可预测的,因此可以在它正常执行路径上设置一些周期性重置watchdog的点;但如果系统发生故障,它可能执行不到下一个重置watchdog的点,此时故障将被watchdog捕捉到。看到这儿,您应该知道watchdog对于检测死循环或死锁这类故障非常有效。
三. 作用
watchdog 一般是一个硬件模块(也可以软件实现),其作用是在嵌入式操作系统中,很多应用情况是系统长期运行且无人看守,所以难免或者怕万一出现系统死机,那就狗屁了,这时,watchdog就会自动帮你重启系统来完成初始化。
它的工作方式是事件触发的,它可以对任何合理的事件计数(如CPU指令)。其中时间事件(timeout)最常使用,这也是为什么watchdog又叫做watchdog timer。Watchdog系统起到非常重要的作用,相当于系统警察,当系统发生严重错误(如程序进入死循环等)不能恢复的时候,WatchDog能够让系统重启。WatchDog的应用主要是在嵌入式操作系统中,避免了系统在无人干预时长时间挂起的情况。
总结:保证系统在出现不可恢复错误时,能够自动让系统重启。
四. 监视目标
Watchdog是一种检测手段,它监视的目标可以是一个进程也可以是整个操作系统。
1) 监视一个进程
如果监视目标只是一个进程,那么利用操作系统提供的定时功能即可实现一个Watchdog。
2)监视一个操作系统
如果要监视操作系统,就得使用操作系统之外的工具,通常是一个附加的计数器。现代Intel CPU都包含的performance counter也可以提供这样的功能,从而不需要额外的设备就能实现监视操作系统的watchdog。
五. 系统初始化时关闭watchdog的原因
如果不禁用watchdog,那么就要单独写程序去定期“喂狗”。bootloader的作用是初始化必要的硬件资源和系统资源,保证产品软件能够正常启动。bootloader不必长期留在内存中,所以用不到这个watchdog的机制。
六. WATCHDOG模块
在比较高档的嵌入式硬件都有一个WATCHDOG模块。如果在MCUMPU是没有集成WATCHDOG,一般会在此嵌入式系统中加一个专门的WATCHDOG芯片来实现WATCHDOG机制。
此模块主要的功能包括:
- 提供WATCHDOG控制寄存器和配置寄存器,供软件开发人员根据系统需要进行灵活配置。
- 提供一接口,使应用软件能够定时给WATCHDOG“喂狗”。
- 提供WATCHDOG机制,当系统进入不可恢复错误时,能产生一个不可屏蔽中断来通知系统自动重启(一般这样,也有改变为其他处理方式的),只有相应的复位信号才能清除它。
七. WatchDog总结
- 看门狗 (Watch Dog)在嵌入式系统中很常见,常用于保证系统的可靠性。看门狗有软件与硬件两种,有的MCU,本身有看门狗定时器,可以借助【外部独立的看门狗芯片】,实现程序【监控】功能。
- 看门狗是一个独立的【定时器模块】,有独立的定时器控制器,程序可以设置定时器的超时时间,时间到了,会进入看门狗定时器中断,并触发系统【复位】
- 当系统异常,如程序跑飞后,由于无法确保按时【喂狗】,也就是不能及时的【重置看门狗定时器】,造成看门狗超时,触发系统【复位】而重新运行程序
- 使用看门狗完成重启能够解决大部分的嵌入式系统的问题。因为出现错误重启系统,能够解决大部分的问题。
相关文章:
嵌入式C语言--WatchDog最全概念
嵌入式C语言–WatchDog最全概念 嵌入式C语言--WatchDog最全概念 嵌入式C语言--WatchDog最全概念一. 什么是Watchdog1)什么是“被狗咬”2)什么是喂狗 二. 基本思想三. 作用四. 监视目标1) 监视一个进程2)监视一个操作系统 五. 系统初始化时关闭…...
数据结构【树篇】(二)
数据结构【树篇】(二) 文章目录 数据结构【树篇】(二)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件? 目录树(一)、树的存储(二)、树和森林的遍历——并查集(三)、并查集的优化 结语 前言 为什么突然想学算法了…...
2024上海城博会|上海国际城市与建筑博览会-官 网
2024上海城博会|上海国际城市与建筑博览会 时间:2024年10月30日-11月1日 地点:上海世博展览馆 主办单位:联合国人居署 上海市住房和城乡建设管理委员会 协办单位:上海世界城市日事务协调中心 展会介绍 上海国际城市与建筑博览…...
Dockerfile - 基于 SpringBoot 项目自定义镜像(项目上线全过程)
目录 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 1.2、打包项目(jar) 1.3、编写 Dockerfile 文件,构建镜像 1.4、运行镜像并测试 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 a)简…...
论文查重降重写成大白话可以吗
大家好,今天来聊聊论文查重降重写成大白话可以吗,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 论文查重降重:用大白话解析 一、引言 写论文是每个…...
【WPF.NET开发】WPF中的命令
本文内容 什么是命令WPF 中的简单命令示例WPF 命令中的四个主要概念命令库创建自定义命令 命令是 Windows Presentation Foundation (WPF) 中的一种输入机制,与设备输入相比,它提供的输入处理更侧重于语义级别。 示例命令如许多应用程序均具有的“复制…...
怎么将epub转换成txt文件?
怎么将epub转换成txt文件?在当前时代,各种各样的电子书是很多人都喜欢接触并阅读的,但很少有人知道电子书格式的不同,其中就包括epub和txt格式,这两种格式虽然都可以展示文本但能达到的效果完全不一样,在某…...
Java单词排序
【问题描述】 编写一个程序,从一个文件中读入单词(即:以空格分隔的字符串),并对单词进行排序,删除重复出现的单词,然后将结果输出到另一个文件中。 【输入形式】从一个文件sort.in中读入单词。 …...
Moonsong Labs与Web3演变
作者:Derek Yoo 创建Moonsong Labs的理由 我们创建了Moonsong Labs,其使命是创建推动Web3采用的软件基础设施协议。我们的动力来自这样一个观念,即Web3使人类相互交往更加透明、高效和公正。这无疑是一个值得努力实现的目标,但更…...
流媒体学习之路(WebRTC)——GCC分析(4)
流媒体学习之路(WebRTC)——GCC分析(4) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全配置…...
k8s持久化存储(NFS-StorageClass)
一、StatefulSet由以下几个部分组成: 用于定义网络标志(DNS domain)的Headless Service用于创建PersistentVolumes的volumeClaimTemplates定义具体应用的StatefulSet 二、StatefulSet 特点 StatefulSet 适用于有以下某个或多个需求的应用&a…...
java servlet软件缺陷库管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java servlet软件缺陷库管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOM…...
19|BabyAGI:根据气候变化自动制定鲜花存储策略
19|BabyAGI:根据气候变化自动制定鲜花存储策略 随着 ChatGPT 的崭露头角,我们迎来了一种新型的代理——Autonomous Agents(自治代理或自主代理)。这些代理的设计初衷就是能够独立地执行任务,并持续地追求长…...
面试经典150题(62-64)
leetcode 150道题 计划花两个月时候刷完,今天(第三十天)完成了3道(62-64)150: 62.(226. 翻转二叉树)题目描述: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其…...
流量困境下,2024年餐饮商家的直播带货生意到底怎么做?
据官方数据显示,截至2023年2月,抖音生活服务餐饮商家直播间数量达到43万,2023年7月,抖音生活服务餐饮行业自播商家数较1月增长134%。可以说,直播带货已经成为餐饮商家的常态化的线上营销模式,也成为各大餐饮…...
C++ 具名要求-基本概念-指定该类型对象可以默认构造
指定该类型对象可以默认构造 要求 以下情况下,类型 T 满足可默认构造 (DefaultConstructible) : 给定 任意标识符 u, 下列表达式必须合法且拥有其指定的效果 表达式后条件T u对象 u 被默认初始化。T u{}对象 u 被值初始化或聚合初始化。…...
T527 Android13遥控适配
T527 Android13遥控的适配和官方提供的文档有些不一样,按照官方的文档不能够正常适配到自己的遥控器。 首先确保驱动是否有打开CONFIG_AW_IR_RX和CONFIG_RC_DECODERSy 以及CONFIG_IR_NEC_DECODERm,这个可以在longan/out/t527对应的目录下的.config查看是…...
第三部分使用脚手架:vue学习(61-65)
文章目录 61 创建vue脚手架![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f71d4324be0542209e690ab9e886d199.png)62 分析脚手架结构63 render函数64 修改默认配置65 ref 属性 61 创建vue脚手架 写完vue文件,没有脚手架做翻译,浏览器不认识…...
【Linux学习笔记】解析Linux系统内核:架构、功能、工作原理和发展趋势
操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是…...
springboot连接oracle报错ORA-12505解决方案
springboot连接oracle报错ORA-12505解决方案 springboot项目,在测试环境连接正常,生产环境连接数据库报错ORA-12505。 测试环境连接数据库语句为jdbc:oracle:thin:xxxx.xxxx.xxxx.xxxx:1521:orcl 生产环境修改对应ip后报错ORA-12505, TNS:listener does…...
服务器为什么大多用 Linux?
服务器为什么大多用 Linux? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「Linux的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&#…...
C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法
前言 上一篇文章中介绍了Snap7访问西门子S7-1200/S7-1500 DB块的方法,对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块,VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试&…...
通信及信号处理领域期刊影响因子、分区及期刊推荐-2024版
期刊名IF(202401)中科院分区(20231227)备注IEEE Journal on Selected Areas in Communications16.4计算机科学1区Top通信顶刊IEEE Transactions on Signal Processing5.4工程技术2区Top信号处理顶刊IEEE Transactions on Information Theory2.5计算机科学3区信息论顶刊IEEE Tra…...
cfa一级考生复习经验分享系列(十五)
备考背景: 本科211石油理科背景;无金融方面专业知识及工作经验;在职期间备考;有效备考时间2个月;12月一级考试10A。 复习进度及教材选择 首先说明,关于教材的经验分享针对非金融背景考生。 第一阶段&#x…...
如潮好评!优秀选手视角下的第二届粤港澳大湾区(黄埔)国际算法算例大赛
为发挥国家实验室作用、推动地区大数据与人工智能算法的生态体系建设,琶洲实验室(黄埔)受广州市黄埔区政府委托,于 2022 年创办粤港澳大湾区(黄埔)国际算法算例大赛,推动原始创新、赋能社会经济…...
软件测试之冒烟测试
一、什么是冒烟测试 这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过…...
NE555学习笔记-2024
实物图片 NE555引脚图 内部时序图 示列1,红外接收电路 红外接收电路的工作原理:在上述电路中,TSOP1738构成了该电路的主要组成部分,旨在检测来自任何来源的红外信号。这用于检测38 KHz范围的信号,因此命名为“TSOP173…...
记一次docker中安装redis的过程
1. Docker搜索redis镜像 docker search redis2. Docker搜索redis镜像 docker pull redis3.Docker挂载配置文件 挂载 redis 的配置文件挂载 redis 的持久化文件(为了数据的持久化)。 conf文件位置: /home/redis/myredis/redis.conf data文件…...
Matlab进阶绘图第37期—多色悬浮柱状图
多色悬浮柱状图是一种特殊的柱状图。 与常规柱状图相比,多色悬浮柱状图可以通过悬浮的矩形展示最小值到最大值的范围(或其他范围表达),并通过颜色进行美化/区分/附加信息。 本文使用自己制作的Floatingbar小工具进行多色悬浮柱状…...
【嵌入式】About USB Powering
https://www.embedded.com/usb-type-c-and-power-delivery-101-power-delivery-protocol/https://www.embedded.com/usb-type-c-and-power-delivery-101-power-delivery-protocol/ Type-C接口有多强?PD协议又是什么?-电子发烧友网由于Type-C接口自身的强…...
成都今日各区疫情情况/ seo won
BossAnim 项目地址:Alex-Cin/BossAnim简介:仿 boss 直聘,查看用户头像博客地址 http://www.jianshu.com/p/eadd1a764720BossAnim 博客地址 http://www.jianshu.com/p/eadd1a764720...
用照片做的ppt模板下载网站好/建设优化网站
扑飞动漫是一款会更新上线各种各样精品动漫内容供大家去免费看的软件,这里有许许多多的资源支持大家缓存到本地,无需会员看全章节的内容都是可以的,在这里你将有着更好的阅读体验感,全方位的给用户们带来了追漫画的便利࿰…...
做网站浏览器/seo优化技巧有哪些
相比java,scala的函数定义时可以设置参数的默认值。但在scala调用java方法时不可用,要遵循java语法。 需要在参数列表的参数声明后面加个默认值即可,如下图,tableName和etl_date的默认值分别为test和1225 //ss:SparkSession,sc:…...
合肥企业网站建设哪个好/电商从零基础怎么学
数据分析疫情图jquery做时间绘图前言 好好学习,javaweb制作全国疫情展示,以下是今天学习的知识,今天学了jquery制作时间导入到HTML中,和用echarts绘制图形,官网:[https://echarts.apache.org/zh/index.html] 第一天&am…...
首都农村医学人才培养体系建设与农村医学人才培养的研究与实践 网站/怎样建立自己网站
C:\Users\Public\Thunder Network\XMP5\ProgramData\Subtitle\Online 复制直接拖入上方的地址栏即可找到。...
织梦网站建设流程/西安百度网站排名优化
5.1 wireshark简介和抓包原理及过程 5.2 实战:WireShark 抓包及快速定位数据包技巧 5.3 实战:使用 WireShark 对常用协议抓包并分析原理 数据包分析称为数据包嗅探,协议分析,我们捕获和解析网络上传输数据包的一个过程。为了更…...