mini2440 时钟频率的配置

来源:互联网 发布:mac 看电视的软件 编辑:程序博客网 时间:2024/05/16 01:23

S3C2440的频率设置通过设置三个寄存器就可以完成,LOCKTIME取默认值0x00ffffff,CLKDIVN配置FCLK:HCLK:PCLK三者的比例,详细参考数据手册,对于MPLLCON寄存器,[19:12]为MDIV,[9:4]为PDIV,[1:0]为SDIV。有如下计算公式:MPLL(FCLK) = (m * Fin)/(p * 2^s)  其中: m = MDIV + 8, p = PDIV + 2 。

 

注意:手册中提到当HDIVN = 1时,CPU bus mode需要从原来的“fast bus mode”改为“asynchronous bus mode”,所以用到__asm{}这个汇编块,因为在mmu_init()中已经对其进行过初始化,在使用时调用过mmu_init()后无需加这个模块了。如果没有调用mmu_init(),就必须加这个操作了。

 

把改函数添加到timer0 interrupt中就可以实验beep每隔一秒响一次。

 

void clock_init()

{

rLOCKTIME = 0x00ffffff;

rCLKDIVN = 0x03;

 

//以下在mmu_init()函数中已经对其初设置这里无需设置

 

rMPLLCON = 0x5c0040;

}