这是我使用过的代码 仅供参考
#include <csl.h>
#include <csl_pll.h>
#include <csl_chip.h>
#include <stdio.h>
#define ioport_csl_sel 1
void CLK_init()
{
ioport unsigned int *clkmd;
ioport unsigned int *sysr;
clkmd = (unsigned int *)0x1c00;
sysr = (unsigned int *)0x07fd;
*clkmd = 0x2613; //144MHz
*sysr = 0x0006; //CLKDIV = 0-7 ->CLKOUT = CPU clock/(2*CLKDIV)
//CLKOUT = 144/12 = 12MHz
}
PLL_Config myConfig = {
0, /*IAI:PLL将使用与进入Idle状态之前相同的设置进行锁定*/
1, /*IOB:时钟发生器切换到旁路模式,重新开始PLL锁相过程*/
24, /*锁定模式下的PLL倍频值*/ //12M * 24
1 /*旁路下的分频值*/ //2分频
};
void main(void)
{
#if ioport_csl_sel
/*初始化CSL库*/
CSL_init();
/*设置系统的运行速度为144MHz*/
PLL_config(&myConfig);
CHIP_RSET(SYSR,4); //CLKOUT = CPU clock/(2*CLKDIV) CLKOUT = 144/8 = 18MHz
while(1);
#else
CLK_init();
while(1);
#endif
}
|