新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > ARM学习之---看门狗(WatchDog)

ARM学习之---看门狗(WatchDog)

作者:时间:2016-08-05来源:网络收藏

  WatchDog,中文为"",老外起的名字有时很有趣也很贴切,这些从事技术的老外对生活总是充满了乐观的态度,把工作当成乐趣而不要认为他是痛苦的事情,这样才能把工作做好.否则就不要去做,天天做自己不喜欢的事情,其结果是很痛苦的.

本文引用地址:http://www.eepw.com.cn/article/201608/295115.htm

  一样,我总是喜欢用自己的理解而不是无聊的术语来讲解我所理解的东西.

  WatchDog是为了能够防止程序跑飞而使用的一种东西.如果你的程序没有跑飞,那么你的程序会定时的去喂,如果你的程序跑飞了,那么就不会再去喂狗了,如果超过了喂狗的时间,那么狗就会自己生成一个信号来重新reset你的CPU,重新开始.这是一种在很重要的情况下防止系统跑飞的一种方法.一般的程序也许不需要,但在特殊的情况下可能会需要这种机制.

  我们在上一篇的图中,第一个地址段就是为设置的.

  

 

  可以看一下实际的电路.SP706的(-RST)输出低电平时会使LPC2478的CPU复位.对于PFI,-PFO两个管脚来讲,当PFI的电压监控输入低于1.25V时,-PF0会置为LOW.但因为PFI在这里接地,-PFO置空,因此没有使用这一功能.

  因为-MR,-WDO相连接,因此当Vcc低于复位值,-RST将输出200ms的LOW脉冲.并且如果WDI输出保持高电平1.6s时,看门狗超时,-WDO将置为LOW,也就将-MR置低,一旦-MR置低,-RST便置低,也就将CPU复位.

  当WDI超过1.6s没有来脉冲,也会导致-WDO输出低电平,同理也会是-RST产生复位信号.

  在文档中介绍超时时间是1.6s,电路中标识为1.2s.我也有点不理解,没有细研究其原因.而控制看门狗的APB寄存器大概是这样的Name Description Access ResetValue[1] Address

  WDMOD Watchdog mode register. This register contains

  the basic mode and status of the Watchdog Timer. R/W 0 0xE000 0000

  WDTC Watchdog timer constant register. This register

  determines the time-out value. R/W 0xFF 0xE000 0004

  WDFEED Watchdog feed sequence register. Writing 0xAA

  followed by 0x55 to this register reloads the

  Watchdog timer with the value contained in WDTC. WO NA 0xE000 0008

  WDTV Watchdog timer value register. This register

  reads out the current value of the Watchdog timer. RO 0xFF 0xE000 000C

  WDCLKSEL Watchdog clock source selection register. R/W 0 0xE000 0010

  读书的时候,老师总是要求学生学好英语,学理工科的孩子总是不喜欢,没办法,自己看吧.

  看门狗我们也没有必要把他研究得那么明白,讲这东西只是讲个道理,我也懒得把他解释得完全正确,如果中间讲的有问题,大家包涵,以便大家能够理解硬件电路,寄存器以及程序之间的关系.实际上,我们按照参考设计去做就可以了,在应用中,改动看门狗的情况应该不多.



关键词: ARM 看门狗

评论


相关推荐

技术专区

关闭