打印

s3c2440启动代码里面时钟配置的问题

[复制链接]
1700|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
2012CMD|  楼主 | 2013-5-4 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想将汇编操作改成C操作,其他的都差不多,可是时钟配置的这里看不懂,求大仙指点
    [ PLL_ON_START
        ; Added for confirm clock divide. for 2440.
        ; Setting value Fclk:Hclk:Pclk
1        ldr        r0,=CLKDIVN
2        ldr        r1,=CLKDIV_VAL                ; 0=1:1:1, 1=1:1:2, 2=1:2:2, 3=1:2:4, 4=1:4:4, 5=1:4:8, 6=1:3:3, 7=1:3:6.
3        str        r1,[r0]
        ;program has not been copied, so use these directly
4        [ CLKDIV_VAL>1                    ; means Fclk:Hclk is not 1:1.
5        mrc p15,0,r0,c1,c0,0
6        orr r0,r0,#0xc0000000      ;R1_nF:OR:R1_iA
7        mcr p15,0,r0,c1,c0,0
8        |
9        mrc p15,0,r0,c1,c0,0
10        bic r0,r0,#0xc0000000    ;R1_iA:OR:R1_nF
11        mcr p15,0,r0,c1,c0,0
12        ]

其中CLKDIV_VAL=7,按照书上说的mrc p15,0,r0,c1,c0,0功能为将协处理器c1中内容读入到ARM处理器r0,而mcr p15,0,r0,c1,c0,0功能为将ARM处理器r0中内容读入到协处理器c1,现在有两个问题
①如果用C语言改写,这个协处理器CP15地址怎么定义,貌似s3c2440数据手册也没说啊,
②上述第5-7和9-11为什么内容一样,不是说[  |   ]作用相当于if else endif吗,if else 怎么能够去干同样的事呢

相关帖子

沙发
2012CMD|  楼主 | 2013-5-4 14:16 | 只看该作者
@阿南
:D呼叫斑竹大人
不想用C中嵌套汇编,这个该怎么整

使用特权

评论回复
板凳
我是祝大叔| | 2013-5-5 00:04 | 只看该作者
新人一枚,刚开始学ARM,回答不上来。

使用特权

评论回复
地板
阿南| | 2013-5-5 08:06 | 只看该作者
C语言里面也有时钟配置的,找一下源代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

80

帖子

0

粉丝