在实际的MCU应用系统中,由于常常会受到来自外界的某些干扰,有可能(对规范的设计概率极小)造成程序的跑飞而陷入死循环,从而导致整个系统的陷入停滞状态并且不会自动恢复到可控的工作状态。所以出于对MCU运行的安全考虑,便引入了一种专门的复位监控电路,俗称看门狗(WatchDog)。看门狗电路所起的作用是一旦MCU运行出现故障,就强制对MCU进行硬件复位,使整个系统重新处于可控状态(要想精确恢复到故障之前的运行状态从技术上讲难度大成本高,而复位是最简单且可靠的处理手段)。

在51单片机中AT89S52也有看门狗,由于看门狗已经是MUC运用中非常重要的以个环节,为了节省成本,现在大部分MUC都集成了看门狗的功能。

在Stellaris系列ARM里集成有硬件的看门狗定时器模块。看门狗定时器在到达超时值时会产生不可屏蔽的中断或复位。当系统由于软件错误而无法响应或外部器件不能以期望的方式响应时,使用看门狗定时器可重新获得控制。

最实用的看门狗就是用在:当系统跑飞后,产生一个中断复位,使系统重新复位运行。为了防止在程序跑飞时意外修改看门狗模块的配置,特意引入了一个锁定寄存器。在配置看门狗定时器之后,只要写入锁定寄存器一个不是0x1ACCE551的任何数值,看门狗模块的所有配置都会被锁定,拒绝软件修改。因此以后要修改看门狗模块的配置,包括清除中断状态(即喂狗操作),都必须要首先解锁。解锁方法是向锁定寄存器写入数值0x1ACCE551。这是个很特别的数字,程序跑飞本身已是罕见的事件,而在一旦发生此罕见事件的情况下又恰好会把这个特别的数字写入锁定寄存器更是不可能。因此可以保证中断复位的产生。

但是,正常情况下,程序跑飞是小概率事件,大家如果遇到程序跑飞的情况,应该首先考虑是否是软件编程错误或者硬件的设计错误,这才是跑飞情况下的大概率事件。如果实在是没有发现任何软硬件方面的设计错误,才可以考虑采用看门狗复位。

首先都是设置外设,看门狗设置需要实用下面几个语句,看门狗可以在第一次超时产生一个中断,第二次超时喂狗。

看门狗定时器具有“二次超时”特性。当32位计数器在使能后倒计数到0状态时,看门狗定时器模块产生第一个超时信号,并产生中断触发信号。在发生了第一个超时事件后,32位计数器自动重装并重新递减计数。如果没有清除第一个超时中断状态,则当计数器再次递减到0时,且复位功能已使能,则看门狗定时器会向处理器发出复位信号。

我们下面来编写这样一个功能函数来验证看门狗的功效:

程序正常运行时,使得LED1不断地闪烁,并喂狗。当按键按下时,触发GPIO按键中断,处理器进入死循环,看门狗定时器产生第一个超时信号,进入看门狗中断服务程序,LED2不断闪烁,直到看门狗定时器产生第二次超时信号,导致系统复位,系统再次正常运行,LED1恢复不断地闪烁。

http://www.eefocus.com/bbs/article_1079_179870.html

青风和大家一起学Stellaris系列ARM——五.看门狗的使用相关推荐

  1. STM32系列 STM32F4xx 独立看门狗(IWDG)

    2019独角兽企业重金招聘Python工程师标准>>> 0 前言     由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存数据混乱,会导致程序指针错误,不在程序区 ...

  2. java le下载安装_跟老杨学java系列(五) JDK的安装与配置

    跟老杨学java系列(五) JDK的安装与配置 提示:本节内容对于java入门是非常关键的,对于刚接触java的同学一定要认真学习,欢迎大家留言探讨技术问题.其他问题概不回复. (书接上回)上节课程我 ...

  3. zigbee CC2530 系列教程 10 看门狗实验

    所有课程见此链接: zigbee CC2530 系列教程 0 课程介绍 4.9看门狗实验 4.9.1 实验目的 1.学习CC2530看门狗的工作方式: 2.学习看门狗功能在系统中的运行机制: 4.9. ...

  4. 电子器件系列七:看门狗

    看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让 ...

  5. 独舞风雪夜 跟我学mvc系列

    http://www.cnblogs.com/poorboy/archive/2009/09/01/1557747.html 转载于:https://www.cnblogs.com/mylife_00 ...

  6. 一起学DHCP系列(五)指派、获取

    节将主要讲述DHCP客户端获取IP的过程,也是此系列中非常重要的一节. 为了让大家更好的理解DHCP客户端和服务器之间是如何交互工作的.这里搭建了一个很小的环境来辅助演示.如下图: 首先在win2k3 ...

  7. .net基础学java系列(五)慢性自杀 之 沉沦在IDE中

    最近在慢学习IDEA,总是喜欢与Visual Studio! 其实,对于Visual Studio,它的官方(https://docs.microsoft.com/zh-cn/visualstudio ...

  8. 从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)

    关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复. (1)加载 ①首先 ...

  9. 从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)...

    关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复. (1)加载 ①首先 ...

最新文章

  1. adxl276怎么添加到proteus中_奶粉中的营养强化剂和食品添加剂是怎么一回事?
  2. 【转】UNITY中相机空间,投影空间的正向问题
  3. mysql数据存储7天_MySQL开启binlog并且保存7天有效数据
  4. Spring-Jpa : @MappedSuperclass的作用
  5. django基础知识之验证码:
  6. IOS中延时执行的几种方式的比较和汇总
  7. 关闭微软拼音输入法自带的emoji表情包
  8. PostMan中文插件支持8.12.2
  9. 【小米】风口的猪-中国牛市
  10. 解决Windows无法访问指定设备路径或文件,您可能没有合适的权限访问这个项目
  11. psd2html 阿里,psd2html
  12. 2019年计算机类毕业设计论文题目推荐
  13. 推荐系统与搜索引擎的差异
  14. 后台传给前台的进度条传百分比数据
  15. 一步一步带你爬天猫,获取杜蕾斯评论数据
  16. 一篇文章带你吃透VUE响应式原理
  17. https网站打不开如何解决
  18. ubuntu下安装bochs
  19. hdmi接口有什么用_(转)电视上各种各样的接口有什么用?你能知道几个?
  20. 一篇重新带你认识:C语言

热门文章

  1. 2021年危险化学品生产单位安全生产管理人员考试技巧及危险化学品生产单位安全生产管理人员模拟试题
  2. java虚线_Java中菜单的实现以及画实线与画虚线之间的自由转化
  3. 长安大学转计算机专业,关于做好2019级本科生校内转专业工作的通知
  4. Elasticsearch检索系统部署|MacBook Pro Python
  5. java计算机毕业设计ssm基于JAVA的网上购物系统-商城购物网站
  6. c语言录取分数线问题,2018中考录取分数线公布!!
  7. 2020年成都市集成电路行业产量、市场规模及集成电路行业潜力趋势分析[图]
  8. 最适合 Apple Silicon 的 Tensorflow 环境搭建
  9. SOC的多核启动流程详解
  10. GKFX捷凯外汇官网: gkfx-cn com 外汇投资别急躁