s5pv210--clocks的设置----汇编代码

来源:互联网 发布:linux如何修改时间 编辑:程序博客网 时间:2024/05/16 17:49

今天写了点代码,不过还没想到怎么测试,先贴出来了,大家给个意见,

写了这个代码,在真正感觉到自己是个菜鸟,这个代码也是按照前面几个帖子的步骤写的:



    AREA CLOCK, CODE
    ENTRY
start
    ; 关闭看门狗
    ldr    r0, =0xE2700000            
    mov    r1, #0
    str    r1, [r0]
    
    ;第一步:  打开一个PLL,如:APLL_CON[31] = 1
    ldr r0 , = 0xE0100100        ;APLL_CON0
    ldr r1 , = 0xE0100108        ;MPLL_CON0
    ldr r2 , = 0x1<<31
    str r2 , [r0]
    str r2 , [r1]
    
    ;第二步:  等待lock的上锁时间,APLL_LOCK[0-15] = 0xFFFF
    ldr r0 , = 0xE0100000        ;APLL_LOCK
    ldr r1 , = 0xE0100008        ;MPLL_LOCK
    ldr r3 , = 0x0000ffff
    str r3 , [r0]
    str r3 , [r1]
    
    ;第三步:  选择PLL的输出时钟代替参考的输入时钟,在PLL输出时钟稳定的时,如APLL_SEL = 1、CLK_SRC0 = 0x10001111
    ldr r0 , = 0xE0100200                 ;CLK_SRC0
    ldr r1 , = 0x10001111
    str r1, [r0]

    ;第四步:  设置PLL的输出频率,即PMS,这几位的值,如:APLL_CON0的M=0x7d,P=0x3,S=0x1
    ldr r0 , = 0xE0100100        ;APLL_CON0
    ldr r1 , = 0xE0100108              ;MPLL_CON
    ldr r3 , =    0x7d <<16 | 3  <<8      | 0x1
    ldr r4 , =  0x29b<<16 | 0xc<<8   | 0x1
    str r3 , [r0]
    str r4 , [r1]
    
    ;第五步:  用除法器改变系统的输出频率,即设置寄存器如:CLK_DIV0 =0x14131440
    ldr r0 , = 0xE0100300                 ;CLK_DIV0
    ldr r1 , = 0x14131440
    str r1, [r0]
    
    END


这个代码编译器用的是  armasm就是ads的编译器


这个代码有毛病,,,

需要把第一步放到第四步后边,就可以了,,,嘿嘿


原创粉丝点击