ARM S3C44B0X 之 看门狗定时器


ARM S3C44B0X 之 看门狗定时器
来源:[url]http://www.diybl.com/course/6_system/linux/Linuxjs/20090305/158292.html[/url]

   当受到故障,如噪声或系统错误的干扰时,s3c44b0x看门狗定时器能够产生复位信号,使CPU复位,它也可以用作一个普通的16位定时器使用,计算完产生中断信号。如果用作复位信号,可以产生一个长达128MCLK时钟周期的复位信号。
    S3C44B0X 内部的watchdog结构如下图所示:
diyblPic500)this.width=500;" border=0>
    在S3C44B0X内部由3个16位的特殊功能寄存器控制看门狗定时器:
    WTCON Reg: 功能控制器
    WTDATA Reg:数据存储器
    WTCNT Reg: 计数存储器
    16位的WTCON寄存器在S3C44B0X复位时的地址为:0x01D3_0000,可读/写,初始值为0x8021,各位的功能如下:
【15~8】设置预分频器值,初始值0x80
【7~6】 保留位,但是在正常模式下必须设置为00,初始值00
【5】    0=关闭看门狗,1=打开看门狗,初始值1
【4~3】 设置除法因子,00=1/16, 01=1/32, 10=1/64, 11=1/128,初始值00
【2】  中断使能位,0=打开中断,1=关闭中断,初始值0,用于定时器功能,初始值0
【1】保留位,但是在正常模式下必须设置位0,初始值0
【0】复位使能位,0=关闭复位功能,1=打开复位功能,用于复位功能,初始值1
      16位的WTDATA寄存器复位地址为:0x01D3_0004,可读/写,初始值为0x8000
      16位的WTCNT寄存器复位地址为:0x01D3_0008,可读/写,初始值为0x8000
      在打开看门狗后,WTDATA数据不能自动装入WTCNT,因此在打开前需要手段装入。
      定时器的频率(产生中断或者复位信号的周期)计算公式如下:
      f=MCLK/(Prescaler +1 )/除法因子
      时钟周期为:t=1/f,即t(ns)计数一次
在Bootloader阶段禁用看门狗,程序如下:
WTCON EQU 0x01d30000
  ...
ldr r0, =WTCON
ldr r0, =0
str r0, [r0]
...

你可能感兴趣的:(职场,休闲)