1.什么是watchdog?

watchdog,中文名称叫做“看门狗”,全称watchdog timer,从字面上我们可以知道其实它属于一种定时器。然而它与我们平常所接触的定时器在作用上又有所不同。普通的定时器一般起记时作用,记时超时(Timer Out)则引起一个中断,例如触发一个系统时钟中断。熟悉windows开发的朋友应该用过windows的Timer,windows Timer的作用与方才所讨论的定时器在功能上是相同的,只是windows Timer属于软件定时器,当windows Timer记时超时则引起App向System发送一条消息从而触发某个事件的发生。我们从以上的描述可知不论软件定时器或硬件定时器他们的作用都是在某个时间点上引起一个事件的发生,对于硬件定时器来说这个事件可能是通过中断的形式得以表现,对于软件定时器,这个事件则可以是以系统消息的形式得以表现。正如本文开头所讲的,watchdog本质上是一种定时器,那么普通定时器所拥有的特征它也应该具备,是的,当它记时超时时也会引起事件的发生,只是这个事件除了可以是系统中断外,它也可以是一个系统重起信号(Reset Signal),可以这么说吧,能发送系统重起信号的定时器我们就叫它watchdog.

2.watchdog的工作描述

当一个硬件系统开启了watchdog 功能,那么运行在这个硬件系统之上的软件必须在规定的时间间隔内向watchdog发送一个信号.这个行为简称为"喂狗"(feed dog),以免watchdog记时超时引发系统重起。

s3c2410 s3c2410开发板 看门狗 嵌入式 ARM9开发板

3.watchdog存在的意义是什么?

你可能会问watchdog存在的意义是什么?开启了watchdog之后软件必须定时向它发信息,这不是麻烦又耗费资源的行为吗?其实这个行为很重要,这个行为是软件向硬件报告自身运行状态的一中手法。一个软件运行良好,那么它应该可以在规定的时间间隔内向watchdog发送信息,这等同于软件每隔一段时间就告诉硬件:“嘿,哥们,我在好好的跑着呢,你放心吧。”,若软件由于某个不当的操作而进入死循环(也就是俗称的死机),则他无法向watchdog发送信息了,watchdog将发生记时超时,从而引起硬件重起。如果没有watchdog的存在,程序已经死掉了,但我们的用户还一头雾水,以为系统正在进行大规模的运算而进行耐心的等待。。。这一等可就是天荒地老啊。。。-_-!!

4.s3c2410 watchdog的操作

对于s3c2410的watchdog来说,PCLK是它唯一的时钟信号源。(不知道PCLK的朋友可以上网搜搜或看我下一篇文章)

s3c2410用了3个寄存器对watchdog进行操作,3个寄存器分别为:WTCON,WTDAT,WTCNT。

WTCON:watchdog控制寄存器

WTDAT:watchdog数据寄存器

WTCNT:watchdog记数寄存器

以上各个寄存器的详细信息请参考s3c2410数据手册上关于watchdog部分

5.s3c2410 watchdog 工作描述:

在开启watchdog之前,我们必需在寄存器WTDAT里面存有一个值,在watchdog开启之后这个值会被自动加载进寄存器WTCNT中,WTCNT的作用将在下面进行讲解,现在你只需要知道WTDAT必须有一个值,这个值将被自动装进WTCNT中(注1)

Watchdog根据PCLK,Prescaler Value,Clock Select会产生一个watchdog自己的工作周期,我们把这个工作周期记为t_watchdog(注2),watchdog在一个t_watchdog周期结束时会产生一个记数递减信号,每当这个信号产生时,WTCNT中的值便减1,若在WTCNT递减为0(Timer Out)的时候软件层还没有重新往WTCNT中写入数值(这个行为便是我上文提到的喂狗),则watchdog触发Reset Signal,系统重起。

根据上述的描述,我们可以更形象地描述watchdog的工作原理和3个寄存器之间的相互关系:WTCNT通过WTDAT得到一个值,watchdog在每个t_watchdog周期里向WTCNT发送一个递减信号,当WTCNT的值递减到0的时候则发生time out,重而重起系统。

---------------------

作者:dadalan

来源:CSDN

原文:https://blog.csdn.net/dadalan/article/details/2803318

版权声明:本文为博主原创文章,转载请附上博文链接!

linux服务器看门狗服务,服务器watchdog看门狗的理解相关推荐

  1. terminal看服务器性能,终端服务服务器性能评估优化问题

    终端服务服务器性能评估优化计算问题terminal server performance:现有50客户端需要访问总部ERP,财务等资源,这些都是在一台服务器上.线路已经准备好,4M光纤. 但对于终端服 ...

  2. 计算机网络校园网服务器搭建,计算机网络校园网服务器搭建课程设计(绝对等级).doc...

    河南理工大学 计算机科学与技术学院 课程设计报告 20 13 - 20 14 学年第 1 学期 课程名称 计算机网络 设计题目 组建局域网及搭建服务器 学生姓名 学 号 专业班级 计算机11-1 指导 ...

  3. arm linux下看门狗应用,arm linux watchdog 看门狗

    目前手上有个项目需要设计看门狗,是arm+CPLD 方式.由于对看门狗要求很高,打算做一个双看门狗,arm CPLD互相为 对方的看门狗.理论上CPLD是不需要看门狗的,还是这么去设计了.接下来对看门 ...

  4. 看门狗2服务器连接中断,看门狗2无法连接服务器 | 手游网游页游攻略大全

    发布时间:2016-01-06 看门狗发售至今已经有好长时间了,很多玩家应该都已经做完主线任务了,但是还可以玩玩支线任务,也可以玩多人连线的游戏,但是有玩家发现看门狗线上模式出现了,入侵无法连接的问题 ...

  5. Android system server之WatchDog看门狗分析

    android -- WatchDog看门狗分析 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系 ...

  6. [RK3568 Android11] 教程之watchdog看门狗应用

    目录 一.watchdogd服务应用 二.开启watchdogd服务 一.watchdogd服务应用 1.rk3568 android11系统中自身带有个watchdogd服务,默认是没有开启,此wa ...

  7. Linux内核中喂狗,m3352linux内核中看门狗喂狗和应用层喂狗方法

    1.linux内核模块喂狗方法: #include #include #include #include #include #include #include #include #include st ...

  8. AURIX TC397 SCU 之 Watchdog 看门狗

    目录 看门狗基础 TC397 Watchdog 微信公众号 看门狗基础 文档参阅 TC3XX User Manual 的9.4节, 看门狗Watchdog Timers (WDT)是System Co ...

  9. 【Linux部署】NTP时间服务器搭建及Linux+Windows客户端使用(一篇学会使用NTP服务)

    1.什么是NTP 百度百科:网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同 ...

最新文章

  1. Java学习总结:19
  2. minicom的使用,发送AT指令
  3. 思科、华为、华三、Juniper路由协议优先级汇总
  4. OpenCV实现张正友相机标定源代码
  5. Zigbee音频, 6LowPAN, IEEE 802
  6. 洛谷P7518:宝石(倍增、可撤销并查集)
  7. python监听键盘库_python监听、操作键盘鼠标库pynput详细教程|python基础教程|python入门|python教程...
  8. Error:The module 'app' is an Android project without build variants, and cannot be built.
  9. Kong 1.0 GA 版本正式发布,微服务 API 网关
  10. java 改为matlab_用面向对象的方法将一段JAVA代码转化为matlab
  11. webpack静态资源地址注入html,Webpack4+ 多入口程序构建
  12. 子窗口和父窗口交互 (转)
  13. 网站域名被墙(被封锁、被屏蔽、被和谐)后最好的解决方法
  14. JS调用Arcgis实现地图中心点画圆
  15. 1.大数据之EKL平台搭建以及使用
  16. 机器学习入门的绝佳材料:斯坦福大学机器学习课程原始讲义(含公开课视频)
  17. 尚有缺者,方为完美。小人求全,智者求阙——《致温弟沅弟》曾国藩
  18. 【html标签复习】
  19. 超级计算机能力,再夺世界第一 中国天河2号超级计算机运算能力达30PF
  20. 容器编排之战——kubernetes

热门文章

  1. 每周一更——新的起点
  2. 推荐完全免费的三维模型下载网站
  3. RTX2080Ti不能正常安装ubuntu/xubuntu的解决方法 安装显卡驱动/cuda/cudnn的正确方法 USBboot黑屏
  4. 主流相机镜头分析与代表作
  5. 甲骨文面试经历 Oracle Interview
  6. 收藏优秀外贸平台B2B网站 开发国外客户用什么平台
  7. (上)小程序从0快速入门到实战项目打造个性简历,让你轻松脱颖而出吸引面试官眼球(附源码)
  8. python去掉每行前面_第一个python去掉行号
  9. Java基础算法题(02):古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  10. 习题 5.11 有一行电文,已按下面规律译成密码:A-Z a-z即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。