×
单片机 > 单片机程序设计 > 详情

2440裸板程序之时钟初始化

发布时间:2020-06-18 发布时间:
|

LED对应的引脚是GPF4、GPF5、GPF6。 

使用的编译器为arm-linux-gcc-4.5.1。 

包括四个文件head.S main.c main.lds Makefile。


实验目的:把CPU主频提高到400Mhz。(FCLK:400 HCLK:100 PCLK:50)


  


2440使用MPLL和UPLL将来自晶振或外部时钟倍频至合适的频率,UPLL输出时钟供USB使用,MPLL输出时钟经过分频供CPU和AHB、APB使用。ARM920T使用FCLK,Memory、LCD、CAM等使用HCLK,PCLK供给WDT、PWM、ADC等使用。 

ARM920T有三种工作方式,fastBus mode、synchronous、asynchronous。(异步总线和同步模式介绍 http://blog.csdn.net/qq_33160790/article/details/75668461)快总线时ARM920T运行在HCLK,当FCLK不等于HCLK时,必须切换至asynchronous模式。(通过设置协处理器CP15 http://blog.csdn.net/qq_33160790/article/details/75570898)


相关的寄存器:



只需要把http://blog.csdn.net/qq_33160790/article/details/78915744中的Head.S更新为以下即可。


@clock manegment

.equ MPLLCON  ,0x4C000004

.equ CLKDIVN  ,0x4C000014

@memory controller

.equ BWSCON   ,0x48000000

.equ BANKCON0 ,0x48000004

.equ BANKCON1 ,0x48000008

.equ BANKCON2 ,0x4800000C

.equ BANKCON3 ,0x48000010

.equ BANKCON4 ,0x48000014

.equ BANKCON5 ,0x48000018

.equ BANKCON6 ,0x4800001C

.equ BANKCON7 ,0x48000020

.equ REFRESH  ,0x48000024

.equ BANKSIZE ,0x48000028

.equ MRSRB6   ,0x4800002C

.equ MRSRB7   ,0x48000030

.text

.global _start

_start:

            ldr     r0, =0x53000000     @Close WATCHDOG

            mov     r1, #0x0                     

            str     r1, [r0]


            ldr     r0,=MPLLCON         @Clock Init 400:100:50

            ldr     r1,=(192<<12)|(4<<4)|(1<<0)

            str     r1,[r0]


            ldr     r0,=CLKDIVN

            ldr     r1,=(2<<1)|(1<<0)

            str     r1,[r0]


            mrc p15,0,r0,c1,c0,0

            orr r0,r0,#0xc0000000//R1_nF:OR:R1_iA

            mcr p15,0,r0,c1,c0,0


            ldr     r0,=BWSCON          @Init sdram

            ldr     r1,=0x22011110

            str     r1,[r0]


            ldr     r0,= BANKCON6

            ldr     r1,=0x00018005

            str     r1,[r0]


            ldr     r0,=REFRESH

            ldr     r1,=0x008c07a3

            str     r1,[r0]


            ldr     r0,=BANKSIZE

            ldr     r1,=0x000000b1

            str     r1,[r0]


            ldr     r0,=MRSRB6

            ldr     r1,=0x00000030

            str     r1,[r0]


            mov     r1,#0x400           @Relacate

            ldr     r2,=0x30000000

            mov     r3,#0x600

1:

            ldr     r4,[r1],#4

            str     r4,[r2],#4

            cmp     r1,r3

            bne     1b


            ldr     sp, =1024*4         @Call C

            ldr     lr,=loop


            @bl      main

            ldr     pc,=0x30000000    @main             @0x800

loop:

            b       loop


实验结果: 

led闪烁频率明显加快。



关键字:2440  裸板程序  时钟初始化 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义