Chinaunix首页 | 论坛 | 博客
  • 博客访问: 868345
  • 博文数量: 190
  • 博客积分: 7021
  • 博客等级: 少将
  • 技术积分: 1752
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-17 19:26
文章分类

全部博文(190)

文章存档

2014年(9)

2011年(32)

2010年(149)

我的朋友

分类: LINUX

2010-07-03 20:56:57

#define CLKDIVN 0X4C000000
#define CLK_CTL_BASE 0x4c000000
#define MDIV_405 0x7f<<12
#define PSDIV_405 0x21
/*FCLK:HCLK:PCLK = 1:4:8*/
ldr r0, =CLKDIVN
mov r1, #5
str r1, [r0]

mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
mcr p15, 0, r1, c1, c0, 0

mov r1, #CLK_CTL_BASE
mov r2, #MDIV_405
add r2, r2, #PADIV_405
str r2, [r1, #0x4]

对于与硬件相关的寄存器设置的时候,首先需要做的就是查阅芯片手册
    从这里我们就可以清晰的看出,当CLKDIVN寄存器的值为5的时候,/*FCLK:HCLK:PCLK = 1:4:8*/
还有就是MPLL寄存器的设置,在三星手册上面有一些典型的配置,这里也是采用了405M输出的配置
上面还涉及到一个ARM协处理器的配置的问题,我专门有一章是用来介绍协处理器的:
http://blog.chinaunix.net/u3/114831/showart_2248757.html,更详细的协处理器的资料可以去看s3c2410芯片手册上面的page:531开始的位置
为方便查阅我把手册发上来
文件:2410datasheet.pdf
大小:2257KB
下载:下载


对于时钟的设置除了上面的还有一般的配置,下面我再给我一般的配置,其实基本是相同的,只是为了方便查阅而已:

#define CLKDIVN 0X4C000000
#define CLK_CTL_BASE 0x4c000000
#define MDIV_200 0xa1<<12
#define PSDIV_200 0x31
/*FCLK:HCLK:PCLK = 1:2:4*/
ldr r0, =CLKDIVN
mov r1, #3
str r1, [r0]

mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
mcr p15, 0, r1, c1, c0, 0

mov r1, #CLK_CTL_BASE
mov r2, #MDIV_200
add r2, r2, #PADIV_200
str r2, [r1, #0x4]

发现了吧,其实只是改动了几个地方,可能细心的人会发现,对于MDIV和PSDIV的值,在我三星的手册上面没有找到,其实三星公司也只是给出了部分,我们可以通过下面的公司来进行计算:
更细节的要去看芯片手册:
文件:S3C2440.pdf
大小:2415KB
下载:下载
阅读(2083) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~