Clk.c
包含外部方法:
void Clk_Init(int freq);
void Clk_Display(void);
void Clk0_Enable(int clock_sel);
void Clk0_Disable(void);
void Clk1_Enable(int clock_sel);
void Clk1_Disable(void);
包含内部方法:
void ChangeMPllValue(int mdiv,int pdiv,int sdiv);
void ChangeClockDivider(int hdivn_val,int pdivn_val);
void ChangeUPllValue(int mdiv,int pdiv,int sdiv);
重点函数说明:
l 时钟初始化函数(Clk_Init)
S3C2440有两条锁相环,一条用于核心时钟的倍频,一条用于USB接口的时钟倍频。时钟初试化函数包含对这2条时钟线和分频器的设置。
具体步骤如:
1.设置MPLLCON寄存器改变倍频系数初始化时钟,使时钟工作在400MHz。
2.设定CLKDIV寄存器的分频系数使FCLK(核心时钟):HCLK(总线时钟):PCLK(外围时钟)的比例为1:2:4。
3.设定UPLLCON寄存器和CLKDIV寄存器的系数设置UCLK(USB时钟)为
4.开启对所有模块的时钟信号供应。
l 时钟开启关闭函数(Clk_Enable和Clk_Disable)
具体步骤如:
1.通过设置MISCCR寄存器打开和关闭MPLL或UPLL。
2.设置GPHCON对GPIOH18进行控制,可以打开或关闭时钟对外部的输出。
l 时钟信息显示函数(Clk_Display)
1.可以显示当前FCLK、HCLK、PCLK、UCLK的时钟频率。
2.可以看到PCLK对各个外围模块的时钟提供是否打开。
系统初始化之后,利用Clk_Display显示的时钟信息如图4-1:
图4-1 调用时钟信息显示函数的结果
从图中,我们可以看到目前系统的核心频率工作在400MHz,FCLK:HCLK:PCLK为1:4:8。PCLK对各个子模块的时钟供应都已打开。