6410/2440/210时钟初始化笔记

时钟初始化有如下四步骤

1配置locktime(默认模式,一般不用更改)

2配置fclk

3设置异步模式(6410设置others寄存器,210不需要设置)

4设置fclk

/////6410///////

#define CLK_DIV0 0x7e00f020            /*地址

#define OTHERS 0x7e00f900            /*地址
#define MPLL_CON 0x7e00f010       /*地址
#define APLL_CON 0x7e00f00c   
#define CLK_SRC 0x7e00f01c       /*根据配置MPLL_SEL,APLL_SEL来确定时钟源是直接是否直接使用晶振频率

#define DIV_VAL ((0x0<<0)|(0x1<<9)|(0x1<<8)|(0x3<<12))         /*参考uboot的,设置时钟源后面部分的分频系数*/
#define PLL_VAL ((1<<31)|(266<<16)|(3<<8)|(1<<0))                /*查表根据自己需要的时钟,配置MDIV,PDIV,SDIV位,设置好前面部分的时钟源*/

init_clock:
ldr r0, =CLK_DIV0
ldr r1, =DIV_VAL
str r1, [r0]

ldr r0, =OTHERS
ldr r1, [r0]
bic r1,r1,#0xc0
str r1, [r0]

ldr r0, =APLL_CON
ldr r1, =PLL_VAL
str r1, [r0]

ldr r0, =MPLL_CON
ldr r1, =PLL_VAL
str r1, [r0]

ldr r0, =CLK_SRC
mov r1, #0x3
str r1, [r0]

mov pc, lr

原文地址:https://www.cnblogs.com/1932238825qq/p/7113071.html