1. 看门狗-作用
在嵌入式领域,有些系统需要长期运行在无人看守的环境。在运行过程中,难免不出现系统死机的情况,这时就需要系统自身带有一种自动重启的功能。 watchdog一般是一个硬件模块,其作用就是在系统死机时,帮助系统实现自动重启。
2. 看门狗-工作方式
Watchdog在硬件上实现了计时功能,启动计时后,用户(软件)必须在计时结束前重新开始计时,俗称“喂狗”,如果到超时的时候还没有重新开始计时,那么它就认为系统是死机了,就自动重启系统。
3. 看门狗-原理图
在s3c2440芯片手册中有:
PCLK先通过一个预分频,把一个频率分成很多个频率。用累加器设置用户需要的频率,然后用用一个减法计数器。
一路可以用中断打断,一路如果计数完就发送reste信号。
如果关闭看门狗呢。
在地址0x53000000有一个WTCON寄存器,这个寄存器中可以设置看门狗
4.代码编写
-
reset:
-
bl set_svc
-
bl disable_watchdog
-
-
#define pWTCON 0x53000000 先定义一个宏,pWTCON代表了寄存器的地址
-
disable_watchdog:
-
ldr r0, =pWTCON 伪指令将pWTCON中的内容取出来
-
mov r1, #0x0 设置r1为0x00
-
str r1, [r0] 将r1,存储到r0所包含的地址中去
阅读(737) | 评论(0) | 转发(0) |