uboot-step 4 关闭看门狗和中断
什么是看门狗
在嵌入式系统中,不可避免的会碰到系统运行时出错的问题,有时候为了使系统能够自动的进行复位,就引入了看门狗的概念,实际上它就是一个计数器,到了一定的值后就会复位cpu,在程序中我们需要在计数器增加到这个值之前对这个计数器做一个复位清零的工作,俗称喂狗,使程序继续运行
为什么关闭看门狗
在系统初始化的时候,由于我们并没有进行喂狗的工作,为了防止看门狗一直复位cpu,因此我们需要先将其关闭
如何关闭看门狗
通过查询芯片手册,我们很容易的可以找到看门狗(watchdog)的控制方法,如下图:
watchdog.png
#define pWTCON 0x7e004000
disable_watchdog:
ldr r0, =pWTCON
mov r1, #0x0
str r1, [r0]
mov pc, lr
关闭中断
当系统初始化未完成的时候,开启中断也没有什么用,因为我们并没有中断处理程序,因此我们需要关闭中断,防止中断影响系统的初始化
中断的关闭是通过向中断使能清零寄存器写1来完成的,具体如下图:
vic.png
vicclose.png
disable_interrupt:
mvn r1,#0x0
ldr r0,=0x71200014
str r1,[r0]
ldr r0,=0x71300014
str r1,[r0]
mov pc, lr
August 1, 2016