【看门狗】我说的是定时器不是狗啊
单片机在运行中死机了,你或许只能按2下电源键(重启)或1下复位键。
这里简单说一下重启和复位:
从RESET引脚复位,只有MCU复位。而外设看情况,有的可能会有MCU同步复位或者重新初始化。也有可能一些保持复位前的状态,如果有I2C转GPIO,输出亮灯,复位后没有重新初始化的,就保持原来的状态。
从Reset脚复位的叫硬件复位,也可以通过程序复位的叫软件复位,这两种都是热启动。
如果断电再打开的,叫冷启动。冷启动完全可以替代热启动,但热启动不一定能替代冷启动。
为了防止单片机死机(跑飞),可以使用看门狗(属于硬件复位的范畴),即Watch Dog Timer吗,其本质是Timer即定时器。
看门狗的作用机制可以简单概括为:
- 给看门狗定时器设置一个定时时间(这个时间取决于你的业务代码运行的时间);
- 看门狗启动,并开始计时,从定时时间依次递减到0,或者从0递加到定时值;
- 在主循环中,先清除看门狗的计数值(即喂狗),然后执行我们的业务代码;
- 代码运行一次后,喂狗,再一次执行;
- 如果业务代码执行过程中,看门狗计数值就到了设定值(程序本应该在看门狗设定的时间内运行完的,现在说明程序运行出问题了,需要复位),那么单片机就会复位。
看下面这个伪代码就可以理解:
...
IDG_Init(4,500); //初始化看门狗
while(1)
{IWD_Feed(); //喂狗work(); //我们的业务代码
}
...
一般情况下我们都设置喂狗时间为1s,当有特别的任务需要进行检测时需要根据特定的任务进行设置喂狗时间,假设有一个非常重要的进程,需要及时的进行检测,这里就要设置特定的时间,比如100ms一次喂狗等操作。
此外,由于使用看门狗,出现问单片机会复位,在特定的场景下,你可能需要设置相应的数据保存-恢复机制。
看门狗的分类:
CPU内部自带的看门狗:此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,设定溢出时间,并启动定时器。程序按时对定时器赋初值(或复位),以免被咬。这种看门狗是可以被禁用的(只要停止这个定时器即可)。大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。
优点:可以通过程序改变溢出时间;可以随时禁用
缺点:需要初始化;如果程序在初始化、启动完成前跑飞或在禁用后跑飞,看门狗就无法复位系统,这样看门狗的作用就没有了,系统恢复能力降低。独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位CPU。此类看门狗一上电就开始工作,无法禁用。现在常用的芯片有:CAT705/CAT706、IMP706等等,溢出时间在1.6秒左右。
优点:无须配置,上电即用。无法禁用,系统必须按时喂狗,系统恢复能力高。
缺点:无法灵活配置溢出时间,无法禁用,灵活性降低。
stm32的独立看门狗和窗口看门狗:
- 独立看门狗
根据内部看门狗时钟频率,装载寄存器定一个时间值,比如是1000,那么独立看门狗就会按照时钟频率,从1000开始向下每隔一个时钟周期减1,如果在减到0之前,你用程序代码重新向向下计数器里面写1000(喂狗),那么定时器会重新从1000开始向下递减。如果在减到0的时候,你还没有喂狗(用新的数值覆盖计数器),就会产生复位信号。- 窗口看门狗
根据系统时钟频率,装载一个初始值到向下计数器(假设还是1000),并且设置一个窗口值(小于装载到计数器的初始值,假设是500),窗口看门狗一般会定死窗口下线值是64。计数器从1000开始向下减,在减到500之前(1000到500间),是不允许你去喂狗的,一旦喂狗,就会产生复位信号。只有计数器值减到上限值之后(500到64),才允许你去喂狗。当计数器减到下限值(64到0之间),如果喂狗,也会产生复位信号,当减到0之后,自动产生复位信号。所以窗口看门狗实际上就是设置一个窗口(上下限),在这个范围内,你才允许你去喂狗,只要不在这个范围之内,都会复位。- 区别
(1)窗口看门狗计时时间比独立看门狗精准; 窗口看门狗使用的是系统时钟源。
(2)窗口看门狗严格限定喂狗时间段,独立看门狗则是只要没有到时间,都能喂狗。
————————————————
参考文章:https://blog.csdn.net/weibo1230123/article/details/83927007
参考文章:http://t.csdn.cn/4Vwrc
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
【看门狗】我说的是定时器不是狗啊
单片机在运行中死机了,你或许只能按2下电源键(重启)或1下复位键。 这里简单说一下重启和复位: 从RESET引脚复位,只有MCU复位。而外设看情况,有的可能会有MCU同步复位或者重新初始化。也有可能一些保持复位…...
![](https://img-blog.csdnimg.cn/img_convert/d68b08547ce6298e31d306d62884df4b.jpeg)
24万字智慧城市顶层设计及智慧应用解决方案
本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。部分资料内容: 4.8 机房消防系统 4.8.1消防系统概况 根据本工程机房消防系统的特殊要求,整个消防系统由火灾报警系统、消防联动系统和气体灭火系统三部…...
![](https://www.ngui.cc/images/no-images.jpg)
跨境电商卖家工具——跨境卫士内容介绍
一、简介 跨境卫士是一款集合多种跨境电商工具的综合软件,由知名跨境电商服务商跨境通开发。跨境卫士可以帮助卖家完成海外物流管理、订单处理、报关报税、市场营销等多项任务,同时还提供数据分析、客户服务、运营管理等一系列支持功能,方便卖…...
![](https://img-blog.csdnimg.cn/f86784b114014640a8d5000e4ac9afab.png)
Redis 常用基本命令
关于 redis 的常用基本命令 目录 关于 redis 的常用基本命令 1. 关于 key 的操作 2. HyperLogLog 求近似基数 3. 排序相关命令 4. Limit 限制查询 1. 关于 key 的操作 判断某个 key 是否存在 # 格式: exists key exists name# 存在name 返回1 # 不存在name 返回0 查找或…...
![](https://img-blog.csdnimg.cn/52019560c1414bc6883b7078bbc9f958.gif#pic_center)
【Leetcode】队列的性质与应用
文章目录225. 用队列实现栈示例:提示:分析:题解:622. 设计循环队列示例:提示:分析:题解:225. 用队列实现栈 请你仅使用两个队列实现一个后入先出(LIFO)的栈&…...
![](https://img-blog.csdnimg.cn/dc083b71cf9847a384933c45295807d2.jpeg)
开启新航路,拓尔思发力AIGC市场 | 爱分析调研
2022年,随着AI聊天机器人GhatGPT在世界范围内持续火爆,极具创意、表现力、个性化且能快速迭代的AIGC技术成功破圈,成为全民讨论热点。 AIGC是指在确定主题下,由算法模型自动生成内容,包括单模态内容如文本、图像、音频…...
![](https://img-blog.csdnimg.cn/b1bb225ec1f545e3bfdaab0198d5d61f.png#pic_center)
RK3568平台开发系列讲解(调试篇)Linux 内核的日志打印
🚀返回专栏总目录 文章目录 一、dmseg 命令二、查看 kmsg 文件三、调整内核打印等级沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将 Linux 内核的日志打印进行梳理。 一、dmseg 命令 在终端使用 dmseg 命令可以获取内核打印信息,该命令的具体使用方法如下所…...
![](https://img-blog.csdnimg.cn/628cbdd48e50430d9d5fdc83483dd56c.png)
hadoop之MapReduce框架原理
目录 MapReduce框架的简单运行机制: Mapper阶段: InputFormat数据输入: 切片与MapTask并行度决定机制: job提交过程源码解析: 切片逻辑: 1)FileInputFormat实现类 进行虚拟存储 &#x…...
![](https://img-blog.csdnimg.cn/79f251decb4a4f588467cae18ed1af2f.png)
JavaEE简单示例——SpringMVC的简单数据绑定
简单介绍: 在前面我们介绍过如何将我们自己创建的类变成一个servlet来处理用户发送的请求,但是在大多数的时候,我们在请求 的时候会携带一些参数,而我们现在就开始介绍我们如何在Java类中获取我们前端请求中携带的参数。首先&…...
![](https://www.ngui.cc/images/no-images.jpg)
耗时的同步请求自动转异步请求
耗时的同步请求自动转异步请求问题描述问题处理代码实现问题描述 现在在项目中碰到一个情况,导出数据到excel,在数据量比较下的时候直接下载,在数据量比较大时保存到服务的文件列表,后续再供用户下载。 也就是需要避免前端因后端…...
![](https://img-blog.csdnimg.cn/2441c05d53ae42dc8948291ba7bc8b3c.png)
React常见的hook
目录 useState useEffect useRef useContext useCallback useMemo useState const [初始值,修改值的方法] useState( 初始值 ) 我们用useState定义一个初始值,可以打印看一下结果 console.log(useState(10)) // [10, ƒ] 结果是一个数组…...
![](https://www.ngui.cc/images/no-images.jpg)
Oracle集群管理ASM-扩容磁盘组报错ora-15137
1 内容描述 今日对19c集群磁盘组进行扩容, [rootdb1 ~]# oracleasm createdisk DATA7 /dev/sdm1 Writing disk header: done Instantiating disk: done [rootdb1 ~]# oracleasm createdisk DATA8 /dev/sdn1 Writing disk header: done Instantiating disk: done 使…...
![](https://img-blog.csdnimg.cn/52cccf3eb6314c458ac7ab47844293dd.png)
TryHackMe-biteme(boot2root)
biteme 远离我的服务器! 端口扫描 循例 nmap Web枚举 打开一看是一个默认页面 扫一波 打thm这么久,貌似还是第一次见带验证码的登录 信息有限,对着/console再扫一波 查看/securimage 但似乎没有找到能利用的信息 回到console, 在源码发现…...
![](https://img-blog.csdnimg.cn/feb9613ad462411aa5f3f40a47c83a7c.png)
vue开发常用的工具有哪些
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…...
![](https://img-blog.csdnimg.cn/53d1966a5ffb429c9b710865c9cdfa54.png)
数组,排序,查找
数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型。 数组可以通过下标来访问元素下标是从0开始编号的比如第一个元素就是hens[0]数组定义,数据类型 数组名[] new 数据类型[大小];int a[] new int[5];动态初始化 import ja…...
![](https://www.ngui.cc/images/no-images.jpg)
redis中序列化后的对象后当如何修改
redis中序列化Redis 中存储的序列化对象是不可变需要频繁修改对象属性, 我存储对象为hash结构如何?总结君问归期未有期,巴山夜雨涨秋池。——唐代李商隐《夜雨寄北》 Redis 中存储的序列化对象是不可变 在 Redis 中存储的序列化对象是不可变的,因为它们…...
![](https://img-blog.csdnimg.cn/img_convert/f1bf0e7edcbb15356a923e3eb7d01dcd.webp?x-oss-process=image/format,png)
膜拜!阿里自爆十万字Java面试手抄本,脉脉一周狂转50w/次
最近,一篇题为《阿里十万字Java面试手抄本》的文章在社交媒体平台上引起了广泛关注。这篇文章由一位阿里工程师整理了阿里Java面试的经验,并分享给了大家。这篇文章一经发布,就在短时间内获得了数十万的转发量,让许多Java程序员受…...
![](https://img-blog.csdnimg.cn/e9029cd8a8c84629ad9319107f617222.png)
Yolov5改进: Yolov5-FasterNet网络推理加速
文章目录 1. FasterNet介绍1. 1 FasterNet性能1.2 FasterNet作为Backbone2. 基于C3-Faster实现Yolov5 轻量化2.1 C3-Faster的实现2.2 C3-Faster 在YOLOv5中的使用(1) 在common.py 中添加`C3-Faster`代码(2) 修改yolo.py 中的代码(2) 修改yolov5 yaml文件3. 训练1. FasterNet介绍…...
![](https://www.ngui.cc/images/no-images.jpg)
在ubuntu下安装五笔输入法(百度输入法)
想要在ubuntu下安装一款合适的五笔输入法,不是一件容易的事。现在我找到了一个好用的输入法分享给大家。 环境:Ubuntu22.04桌面版。 软件:百度Linux输入法-支持全拼、双拼、五笔 步骤一: 需要大家先下载百度的五笔输入法。 http…...
![](https://img-blog.csdnimg.cn/3889f2bfb8c146deb6e3db27517ba6ee.png)
python自动发送邮件(html、附件等),qq邮箱和网易邮箱发送和回复
在python中,我们可以用程序来实现向别人的邮箱自动发送一封邮件,甚至可以定时,如每天8点钟准时给某人发送一封邮件。今天,我们就来学习一下,如何向qq邮箱,网易邮箱等发送邮件。 一、获取邮箱的SMTP授权码。…...
![](https://img-blog.csdnimg.cn/65c7422e4a41452eb99a847c39f27efd.png)
数学-快速幂
从一个简单的问题说起: 给出整数m,n和p,要求计算(m ^ n) % p的结果。 #include <iostream> using namespace std;int main() {long long m, n, p;cin >> m >> n >> p;long long ans 1;for (long long i 0; i < …...
![](https://www.ngui.cc/images/no-images.jpg)
DevEco鸿蒙应用开发-第一个App
目录下载开发环境创建工程登录华为账户测试应用下载开发环境 前往官网下载 DevEco 开发环境:https://developer.harmonyos.com/cn/develop/deveco-studio#download 下载并安装,请记住你选择的 IDE 与 SDK 安装位置,后续可能会用到ÿ…...
![](https://img-blog.csdnimg.cn/img_convert/333a5215c617af2f330a64b3b4fb39ee.png)
又一款全新的基于 GPT4 的 Python 神器Cursor,关键还免费
chartgpt大火之后,随之而来的就是一大类衍生物了。 然后,今天要给大家介绍的是一款基于GPT4的新一代辅助编程神器——Cursor。 它最值得介绍的地方在于它免费,我们可以直接利用它来辅助我们编程,真正做到事半功倍。 注意&#…...
![](https://img-blog.csdnimg.cn/img_convert/367442660edf2f41efeeb1ecfae57cf1.png)
CSS的浮动(下)
🌟所属专栏:前端只因变凤凰之路🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该系列将持续更新前端的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~👉文章简…...
![](https://www.ngui.cc/images/no-images.jpg)
软件测试-性能测试流程
压测任务具体包含: 0.前期准备 尽量参与业务需求评审,可以对业务有更深入的了解,了解哪些功能是核心功能,哪些可能存在性能瓶颈,以便在性能需求评审的时候能给出有建设性的意见 1.性能需求分析、评审 明确测试范围(哪些业务接口)、目标(tps、rt、成功率) 关于性能需…...
![](https://img-blog.csdnimg.cn/083e22ef77cd4326a05791a0b41e9c51.png)
【python实操】年轻人,别用记事本保存数据了,试试数据库吧
为什么用数据库? 数据库比记事本强在哪? 答案很明显,你的文件很多时候都只能被一个人打开,不能被重复打开。当有几百万数据的时候,你如何去查询操作数据,速度上要快,看起来要清晰直接 数据库比我…...
![](https://img-blog.csdnimg.cn/8ed319c843d54db8af553e3cb98af814.jpeg)
铁威马NAS教程之利用docker快速搭建个人在线书库
这是一个基于Calibre的简单的图书管理系统,支持在线阅读。主要特点是:美观的界面、支持多用户、支持在线阅读、支持邮件推送、支持OPDS、支持一键安装,网页版初始化配置,轻松启动网站等等。 那么,如何利用docker快速搭…...
![](https://img-blog.csdnimg.cn/c3399c0951c14620a5f02761815fb6ff.png)
504. 七进制数——【Leetcode每日一题】
504. 七进制数 给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 示例 1: 输入: num 100 输出: “202” 示例 2: 输入: num -7 输出: “-10” 提示: −107<num<107-10^7 < num < 10^7−107<num<107 思路&…...
![](https://www.ngui.cc/images/no-images.jpg)
RocketMQ源码(24)—DefaultMQPushConsumer延迟消息源码
基于RocketMQ release-4.9.3,深入的介绍了DefaultMQPushConsumer延迟消息源码。 文章目录1 load加载延迟消息数据1.1 parseDelayLevel解析延迟等级2 start启动调度消息服务3 DeliverDelayedMessageTimerTask投递延迟消息任务3.1 executeOnTimeup执行延迟消息投递3.2…...
![](https://img-blog.csdnimg.cn/0b0992571a0a45deab55a93f33a5df1c.png)
计算机视觉知识点(一)——交并比(IoU)及其若干改进
交并比(IoU)前言IoU公式及示意图IoU Loss缺点GIoU Loss公式及示意图缺点DIoU公式及示意图CIoU前言 目标检测是一个常见的计算机视觉任务,在目标检测任务中,交并比作为评判检测框的标准具有很重要的意义,在实际的应用中…...
![](https://img-blog.csdnimg.cn/20210525081124844.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NzbnoxMjMxMjM=,size_16,color_FFFFFF,t_70)
三合一网站系统/快速网站搭建
一:首先建立普通java项目 二:创建目录lib 导入jar包 并添加到lib仓库 三:编写测试代码 public class JdbcDemo1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1:注册驱动Class.forName("c…...
![](https://img-blog.csdnimg.cn/1c2a5dd1e262419f808cd0e61618f413.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56iL5bqP54y_77yI5pS75Z-O54uu77yJ,size_20,color_FFFFFF,t_70,g_se,x_16)
美工宝盒网站/清博舆情系统
通过access日志记录,可以分析出并发访问量的大小,也可以分析访问的基本信息,比如请求ip地址,请求客户端信息以及访问的具体地址等。 1. 配置logstash的配置文件 input {file {start_position > beginning path > "E:…...
![](/images/no-images.jpg)
wordpress被攻击/花关键词排名系统
Requests 获取响应内容1,Requests 获取响应内容1,Requests 获取响应内容 url.text 响应内容url.encoding 文本编码 #!/usr/local/bin/python3 import requests url requests.get(https://filscan.io:8700/v0/filscan/BaseInformation)print ("He…...
![](/images/no-images.jpg)
网站建设百度小程序/赵阳竞价培训
由于公司的业务需要,要实现PhoneGAP文件上传并显示进度条。一开始没有仔细看PhoneGAP API就草草开工,后来通过logcat才发现,上传过程中居然有动态刷新上传的字节数据。顿时泪奔,我手动实现的上传进度监听啊,不过既然写…...
![](/images/no-images.jpg)
网站开发流程书籍/电商seo是什么
这是第五周。本周积极锻炼加上跑步,感觉很不错,肌肉变大了。学习开始有兴趣了,对java,找到了一个毕向东的视频,看的很来劲,加油,下周要学的更多,锻炼也不能停。转载于:https://www.c…...
![](https://s1.51cto.com/attachment/201005/201005041272980295671.gif)
广州市政府门户网站介绍/简述网络营销的特点
很多搞过数据仓库的朋友曾经问我有没有数据模型的资料,很惭愧,一来是实施项目确实不多;二来就算有也是公司机密的东西,不便泄露;今天登陆到 inmon 的网站,刚好看到这方面的资料,于是就当了下来&…...