当体系运转遭到外部搅扰或许体系过错,程序有时会呈现跑飞,导致整个体系瘫痪。他会设置一段时刻,当超出这段 时刻,从程序中跳出进入中止处理程序。WatchDog本质上是一种定时器,那么一般定时器具有的特性它也应该具有,是的当它计时超不时也会引起事情的发生,仅仅这个事情除了可所以体系中止外,他也可所以一个体系重启信号(Reset Signal)。能够这么说,能发送体系重启信号的定时器咱们就叫它WatchDog。看门狗定时器中止是咱们不期望看到的,因而咱们要想方设法防止它发生。首要的办法就是在中止发生前,从头对看门狗定时器的寄存器进行赋值,使它的定时器从头开始记时,这种办法俗称喂狗。
S3C2440看门狗定时器的功用:
- 作为惯例时钟,而且能够发生中止
- 作为看门狗定时器运用,当时钟计数器减为零时,它将发生一个128个时钟周期(PLCK)的复位信号。
下面是看门狗定时器示意图:
看门狗模块包含一个8位预分频器,一个分频器,一个16bit计数器。它的8位预分频器把PCLK分频后,再被分频得到4种频率,16分频,32分频,64分频,128分频。WatchDog能够挑选作业于哪种频率下。S3C2440用3个寄存器对WatchDog进行操作:
- 看门狗定时器操控寄存器(WTCON)
- 看门狗定时器数据寄存器(WTDAT)
- 看门狗定时器计数寄存器(WTCNT)
看门狗定时器操控寄存器:
WATCHDOGTIMER CONTROL REGISTER
WTCON答应用户使能看门狗定时器,从不同四个源挑选时钟,使能中止,使能看门狗定时器输出。S3C2440看门狗定时器用于体系故障后复位。假如不期望复位,则使能定时器无效。
看门狗定时器数据寄存器:
WATCHDOG TIMER COUNT REGISTER
WTDAT用于确认超时期限。WTDAT的内容在开始的定时器操作时不能主动加载到定时器计数其间。但运用0x80将唆使第一次超时,在这种情况下,WTDAT的值将主动载入WTCNT。