當受到故障,如噪聲或系統錯誤的干擾時,s3c44b0x看門狗定時器能夠產生復位信號,使CPU復位,它也可以用作一個普通的16位定時器使用,計算完產生中斷信號。如果用作復位信號,可以產生一個長達128MCLK時鐘周期的復位信號。
S3C44B0X 內部的watchdog結構如下圖所示:
500)this.width=500;" border=0>
在S3C44B0X內部由3個16位的特殊功能寄存器控制看門狗定時器:
WTCON Reg: 功能控制器
WTDATA Reg:數據存儲器
WTCNT Reg: 計數存儲器
16位的WTCON寄存器在S3C44B0X復位時的地址為:0x01D3_0000,可讀/寫,初始值為0x8021,各位的功能如下:【15~8】設置預分頻器值,初始值0x80 本文引用地址:http://www.104case.com/article/201611/318971.htm【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]
...
評論