现在的位置: 首页 > 综合 > 正文

uboot阅读笔记之关闭看门狗、设置主机频率、关闭中断

2014年08月29日 ⁄ 综合 ⁄ 共 1226字 ⁄ 字号 评论关闭

日期:2008.9.25
目的:熟悉cpu初始化过程细节
题目:关闭看门狗、设置主机频率、关闭中断。
明细:
turn off the watchdog

#if defined(CONFIG_S3C2400)
# define pWTCON  0x15300000
# define INTMSK  0x14400008 
# define CLKDIVN 0x14800014 
#elif defined(CONFIG_S3C2410)
# define pWTCON  0x53000000
# define INTMSK  0x4A000008 
# define INTSUBMSK 0x4A00001C
# define CLKDIVN 0x4C000014 
#endif
@ 宏定义以S3C2410的SOC为例:
@ pWTCON定义为:看门狗计数器控制寄存器.
@ INTMSK定义为:中断控制寄存器.
@ INTSUBMSK定义为:子中断控制寄存器.
@ CLKDIVN定义为:时钟分频控制寄存器.
 
#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
 ldr     r0, =pWTCON  @ 伪指令,(注:=号后边跟的是立即数),把看门狗计数器控制寄存器地址存于r0 
 mov     r1, #0x0     @ r1 写0,mov指令与ldr指令实现的功能相当,它们之间的区别是于寻址方式梢有差异
 str     r1, [r0]     @ 非使能看门狗计数器,pWTCON中的最后一比特写0表示不会输出复位信号

 
  mask all IRQs by setting all bits in the INTMR - default
  
 mov r1, #0xffffffff  @ r1写全1 
 ldr r0, =INTMSK      @ 中断控制器的基址存于r1 
 str r1, [r0]         @ 注:因为INTMSK是立即数,故不能写成"str r1, INTMSK",关闭所有中断源.(1表示非使能)
# if defined(CONFIG_S3C2410)
 ldr r1, =0x3ff
 ldr r0, =INTSUBMSK
 str r1, [r0]
@ 分析同上.另外,子中断有11个中断源,INTSUBMSK写成0x3ff(0011 1111 1111).bit10对应的中断源为INT_ADC,此处写为0为使能状态,个人认为应该最好写为0x7ff.*/

# endif

 @ FCLK:HCLK:PCLK = 1:2:4  
 @ default FCLK is 120 MHz ! 
 ldr r0, =CLKDIVN
 mov r1, #3
 str r1, [r0]
@ 分析同上.时钟分频控制寄存器bit1(HDIVN)写1表示HCLK=FCLK/2;写0表示HCLK=FCLK.bit0(PDIVN)写1表示PCLK=HCLK/2;写0表示PCLK=HCLK.

#endif @ CONFIG_S3C2400 || CONFIG_S3C2410

抱歉!评论已关闭.