网站推广策略与问题分析,受欢迎的徐州网站建设,网站建设维护公司地址,网络营销产品概念的五个层次看门狗#xff1f;看门狗(watchdog)-字面上的意思就是一条看门的dog#xff0c;如果一切正常dog就不回叫#xff0c;如出现异常dog就会叫#xff0c;并且把你逼到门外#xff01;其实看门狗不是什么特殊的外设#xff0c;一般我们叫看门狗也叫做看门狗定时器#xff0c;… 看门狗看门狗(watchdog)-字面上的意思就是一条看门的dog如果一切正常dog就不回叫如出现异常dog就会叫并且把你逼到门外其实看门狗不是什么特殊的外设一般我们叫看门狗也叫做看门狗定时器其实他就是一个计数器在使用看门狗得时候给其一个值然后计数器从0开始不断的累计(根据计数方向)在计数器到达预设值的值之前我们可以重置看门狗简称喂狗。那么如果我们程序没有及时喂狗当计数器到达预设值值时便会复位芯片。好了看门狗知识就这么多今天的文章就结束了吗不是的大家也可以看到下面还有很多内容那我这里问大家一个问题看门狗就是程序跑飞了没及时喂狗就复位了程序重新运行这样有什么意义带着这个问题继续往下看。看门狗分类按照看门狗实现方式分为硬件看门狗和软件看门狗。硬件看门狗我们大部分单片机都会有看门狗这一个功能不过有少数芯片没有那些个时候我们想使用该功能我们就需要外扩对应的硬件看门狗芯片比如MAX813等。大体工作方式硬件看门狗芯片会有接收单片机的置位信号和控制单片机复位的引脚。单片机可以根据看门狗芯片信号需求可以通过io口进行喂狗如果程序异常看门狗会由于收不到单片机给的信号而发出单片机复位信号给单片机让单片机进行复位。如果我们单片机存在watchdog其实也是实现类似的原理都属于硬件看门狗软件看门狗我们都知道看门狗其实就是一个定时器不过当定时器到达系统就会复位那么我们完全可以采用我们普通的定时器进行模拟。大体实现方式定时器模拟我们在主程序中喂狗就可以对定时器进行计数器清零即可当我们没有及时喂狗会进入定时器中断在中断中我们可以触发软件复位或者通过程序跳转到程序入口处。软件watchdog的缺点是其本质上也是软件可能当遇到中断无法触发的异常复位MCU就会失效。 从依赖性角度看门狗也可以分为独立看门狗和窗口看门狗独立看门狗不受系统影响有自己内部独立的时钟源等监控整个系统异常。而窗口看门狗主要是监控软件上的错误且其时钟来源于控制器的时钟。下面重点讲讲窗口看门狗窗口看门狗独立看门狗在0-重载值之间都可以进行喂狗操作这样如果程序跑飞反复在喂狗这样程序无法复位。所以就有了窗口看门狗窗口看门狗存在喂狗窗口上限和下限喂狗只能在窗口里才能喂狗其他时间喂狗都会复位。看门狗如何使用1)一定要注意并不是所有的系统都适合使用看门狗比如说在我们的比较精密的控制系统一旦我们程序除了一些小异常而导致芯片复位可能会导致系统时续混乱而造成较大得设备损害2)对于看门狗一般用在比如温控系统显示系统等复位系统对整个系统影响不是很大的延时系统等这样能够在系统异常后复位系统让系统继续运行。 3)对于部分MCU在看门狗复位之前会出发一个中断服务函数给程序最后进行喂狗的机会。这个是系统给我们的机会我们可以对当前MCU的状态进行保存等日志信息记录供软件研发人员进行系统的分析。4)同时对于喂狗每个人持有不同的态度有些人认为需要在主程序中喂狗有些则认为需要在中断里面喂狗不过在中断里面喂狗存在一个问题是对于MCU主程序处于死循环的时候而我们的中断服务函数可以正常运行这样无法出发看门狗复位。所以常用做法是通过中断置位相关标志位然后主程序检测标志位进行喂狗操作至于更加强大的看门狗机制我们需要在实际的项目中根据需求来制定相关策略。推荐阅读专辑|Linux文章汇总专辑|程序人生专辑|C语言我的知识小密圈关注公众号后台回复「1024」获取学习资料网盘链接。欢迎点赞关注转发在看您的每一次鼓励我都将铭记于心~