看门狗
一、概念
看门狗的简称是WDT(Watch Dog Timer),exynos4412scp中的看门狗定时器(WDT)是一种定时装置。

1. 工作原理
由(一般需要客户编写)软件读写定时器相关的寄存器,打开看门狗,并设定计数时间(以秒或分钟计算),定时器计数计满,由软件清零,以表明系统状态正常,这时,定时器计数重新开始,反复,否则,看门狗认为系统异常或有其他特定事件发生,触发系统复位信号,或提供中断,系统正常后重复定时器计数。

这样只要软件正常运行,就不会出现复位或触发中断。当软件死机或运行出错时,由看门狗定时器对系统进行复位或触发中断,从而保证系统的正常运行。

看门狗的定时时间可以由用户设定,这样可以根据需要在指定的时间内复位系统。

2. 作用
看门狗的作用是微处理器收到干扰进入错误状态后,使系统在一定时间间隔内复位。因此看门狗是保证系统长期、可靠和稳定运行的有效措施。目前大部分的嵌入式芯片内部都集成了看门狗定时器来提高系统运行的可靠性。

4412处理器的看门狗是当系统由于噪音和系统错误而出现故障后,用于处理器的复位操作,也可以作为一个通用的16位定时器来请求中断操作。看门狗定时器产生128个PCLK周期的复位信号。主要特性有如下两个。
1)通用的中断方式的16位定时器。
2)当计数器减到0(发生溢出)时,产生128个PCLK周期的复位信号。

3. Watchdog Timer Block Diagram

看门狗模块包括一个预比例因子放大器,一个四分频的分频器,一个16位计数器。

看门狗的时钟信号源来自PCLK,为了得到宽范围的看门狗信号,PCLK先被预分频,然后再进过分频器分频。预分频比例因子和分频器的分频值,都可以由看门狗控制寄存器(WTCON)决定,预分频比例因子的范围是0~255,分频器的分频比可以是16、32、64或128。看门狗定时器时钟周期的计算如下:

式中Prescaler value 为预分频比例放大器的值;Divison_factor是四分频的分频比,可以是16、32、64或128。

4. 工作流程
一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值就不能被自动地装在到看门狗定时器(WTCNT)中。因此,看门狗启动前要将一个初始值写入看门狗计数器(WTCNT)中。

【注意】
当4412用嵌入式ICE调试时,看门狗定时器的复位功能就不被启动,看门狗定时器能从CPU内核信号判断出当前CPU是否处于调试状态。如果看门狗定时器确定当前模式是调试模式,尽管看门狗产生溢出信号,但是仍然不会产生复位信号。

每个时钟周期都会将看门狗定时计数器WTCNT里的值减1,当计数器WTCNT里的值变为0时开始执行超时操作,首先,判断看门狗控制寄存器里bit2 WTCON[2]设置情况,如果为1则产生中断信号,引起系统中断,如果为0不做任何操作,进入复位信号产生器,如果WTCON[0]位为1,则产生控制器复位信号,否则不做任何操作。每次超时操作之后,看门狗WTCON会自动加载看门狗数据寄存器WTDAT里的用户设置值,继续执行递减操作。

二、寄存器设置
1)看门狗定时器控制寄存器(WTCON)

WTCON寄存器的内容包括:

WDT timer:[5] 用户是否启动看门狗定时器、
Clock select:[4:3] 4个分频比的选择、
Interrupt generation:[2] 是否允许中断产生、
Reset enable/disable: [0] 是否允许复位操作等。

由于我基本使用默认值所以可以根据公式计算默认的复位间隔:

Prescale value = 0x80 = 128

Division factor = 16

PCLK = 12 MHz

WTCNT = WTDAT = 0x8000 = 32768

所以  t_reset = 1 / (12000000 / (128+1) / 16) * 32768 = 5.6 s, 即开发板默认启动5.6秒后会自动复位。

看门狗WATCHDOG 的复位相关推荐

  1. 什么是看门狗(watchdog)?看门狗有什么作用?

    什么是看门狗(watchdog) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂 ...

  2. 什么是看门狗(watchdog)

    什么是看门狗(watchdog) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂 ...

  3. RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你]

    RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 概述 程序设计完成后,要开始考虑系统整体的稳定性了. 在设备上线后,可能因为程序设计不合理.硬件设计有 bug,电气干扰.静电噪声.电源故障 ...

  4. RTOS 系统篇-看门狗 WatchDog 2

    RTOS 系统篇-看门狗 WatchDog 2 概述 上一节在 RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 讲解了 看门狗的基本原理,以及任务.中断中触发看门狗的原因.解决方法. 本小 ...

  5. python看门狗(watchdog)、多线程、实现文件夹实时监听、日志输出、备份

    python看门狗(watchdog).多线程.实现文件夹实时监听.日志输出.备份 代码展示 import _thread from watchdog.observers import Observe ...

  6. 新唐Nuvoton NUC972 看门狗WatchDog(WDT)使用注意事项

      由于新唐系台湾厂商,NUC972 ARM MPU资料不是足够完善,笔者认为,一般ARM处理器的TRM手册至少要3000页以上才能够足以详细描述各种寄存器在不同情况下的功能描述.新唐的TRM只有区区 ...

  7. Android 中的看门狗—Watchdog

     Android 中的看门狗-Watchdog 一.SystemServer 进程中初始化.启动看门狗............................................... ...

  8. RT_thread 独立看门狗 watchdog 不断自动复位的解决方法

    记录一下,这个问题把我坑惨了,搞了3天都没有解决,甚至都有点怀疑人生了.本着学习的态度跑一遍官网给的各种案例,再慢慢学习用到项目上,结果上来就闷头一棒. 可能是这点坑了自己,我并没有直接从官网上去下载 ...

  9. TI DSP 28335 看门狗(WatchDog)及通过看门狗实现中断

    文章目录 前言 1 看门狗(监控芯片) 2 相关寄存器 2.1 WDCR看门狗控制寄存器 2.2 WDCNTR看门狗计数器寄存器 2.3 WDKEY看门狗复位寄存器 2.4 SCSR系统控制和状态寄存 ...

最新文章

  1. LiveData ViewModel 使用详解
  2. MATLAB工作环境
  3. c语言如何输出斜杠星号,Excel 如何提取出最后一个斜杠开始的数字
  4. php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别
  5. 将某个字段改为不重复(unique)
  6. PHP移动互联网开发笔记(3)——运算符
  7. java 中negate()_Java BigInteger negate()用法及代码示例
  8. 服务器虚拟化的主备,云服务器可以主备切换
  9. do…while 第二讲
  10. ubuntu14.04换一个更快的源
  11. php4.0中文手册,服务 — CodeIgniter 4.0.0 中文手册|用户手册|用户指南|中文文档
  12. JDBC:数据库操作:处理大对象CLOB数据
  13. jquery学习笔记一之window.onload与$(document).ready()区别
  14. 【前端安全】JavaScript防http劫持与XSS (转)
  15. 拓端tecdat|R语言线性分类判别LDA和二次分类判别QDA实例
  16. 网页中常用加载页面的实现原理
  17. java操作cad_java调用AutoCAD绘图
  18. mac端锐捷无法验证服务器,还在为mac无法用锐捷认证校园网登陆而郁闷吗?
  19. Flutter 3更新详解
  20. 微信公众号做淘宝优惠券找券查券搜券和返利机器人的详细配置教程

热门文章

  1. button的setClickable 和 setEnabled 区别
  2. NV21 to NV12(YUV420SP)
  3. 文件上传漏洞的小总结
  4. matlab 滤波器篇
  5. unsupported format character '}' (0x7d) at index 83
  6. C#蓝牙连接及传输数据的三种方式(蓝牙传输文件、二进制数据)
  7. centos7双机搭建_Centos7 Mysql 双机热备实现数据库高可用
  8. 动漫人物手绘线稿图,非常适合初学者临摹
  9. AI人工智能可以做哪些课题的毕业设计毕设
  10. 图中的搜索——dij