首页 > 代码库 > 时钟初始化

时钟初始化

1.时钟体系的了解

技术分享

所用晶振:12M

PLL的个数:APLL、MPLL、EPLL

产生的时钟及其用途:

时钟应用场合应用举例所属PLL
ACLK处理器arm11APLL
HCLKAHB总线LCD、DMA...MPLL
PCLKAPB总线GPIO、UartMPLL
SCLKUSB总线USBEPLL

2.时钟初始化流程

技术分享

注:SYCLK用于arm核

技术分享

 

3.分频系数

技术分享

DIVARM设为0,DIVHCLK2设为1,DIVHCLK设为1,DIVPCLK设为3。

4.设置SYSCLK(APLL、MPLL)

 技术分享

技术分享

5.汇编代码

#define CLK_DIV0 0x7e00f020#define OTHERS 0x7e00f900#define APLL_CON 0x7e00f00c#define MPLL_CON 0x7e00f010#define CLK_SRC 0x7e00f01c#define DIV_VAL ((0x0<<0)|(0x1<<9)|(0x1<<8)|(0x3<<12))#define PLL_VAL ((1<<31)|(266<<16)|(3<<8)|(1<<0))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,#0x03    str r1,[r0]        mov pc,lr

 

 

 

 

 

时钟初始化