s3c2440之cpu提速

刚看完韦东山老师的教学视频,写个随笔巩固一下下。

2440芯片上不止有cpu,还有 AHB高速总线(LCD,中断,USB,内存 控制器等),APB低速外设总线(I2C,I2S,GPIO等)。存在3个时钟,FCLK,HCLK(AHB),PCLK(APB).

2440有一个12m的晶振(时钟源),是通过锁相环PLL硬件实现倍频。2440芯片有两个PLL:MPLL、UPLL,时钟源经过MPLL, MPLL和UPLL (供给USB)通过 M、P、S 这3个参数确定FCLK输出频率。MPLL通过HDIVN和PDIVN分频之后确定HCLK和PCLK的频率,通过通过设置MPLL、HDIVN、PDIVN 给CPU提速。

 

2440CPU 启动过程。

1.上电之后,复位芯片等待电源稳定,会处于低电平一段时间,电源稳定之后才输出高电平。

2.根据OM[3:2]的值,此时的FCLK为12MHZ(时钟源的频率)

3.复位芯片输出高电平之后,会锁存OM[3:2]的值。

4.设置PLL的值,此时PLL开始工作,并等待PLL输出稳定之后(LOCK TIME寄存器)

5.FCLK输出新时钟。

 

涉及寄存器

 

 设置CLKDIVN寄存器设置HDIVN和PDIVN。

 设置MPLL寄存器

 

 

 具体如何设置MDIV PDIV SDIV,下图提供了相关参考:

 

 具体代码如下:

 1 //设置LOCKTIME
 2 ldr r0, =0x4C000000
 3 ldr r1, =0xFFFFFFFF
 4 str r1, [r0]
 5     
 6 //设置MPLL FCLK:HCLK:PCLK = 400100:50(1:4:8)
 7 ldr r0, =0x4C000014
 8 ldr r1, =0x5 //CLKDIV = Ox5 (0b101)
 9 str r1, [r0]
10 
11 //设置cpu为异步模式
12 mrc p15, 0, r0, c1, c0, 0 
13 orr r0, r0, #0xc0000000
14 mcr p15, 0, r0, c1, c0, 0
15 
16 /*设置时钟以最高频率运行 400MHZ*/
17 //MPLL= (92 << 12) | (1 << 4) | (1 << 0)
18 ldr r0, =0x4C000004
19 ldr r1, =(92 << 12) | (1 << 4) | (1 << 0)
20 str r1, [r0]

 

转载于:https://www.cnblogs.com/mcran/p/10975832.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值