start.S启动的汇编代码
#define S3C2440_MPLL_200MHZ ( (0x5C<<12)|(0x01<<4)|(0x02) )
#define MEM_CTL_BASE 0x48000000
.text
.global _start
_start:
/*1关看门狗*/
mov r0,#0x53000000
mov r1,#0
str r1,[r0]
/*2设置时钟*/
ldr r0,=0x4C000014
mov r1,#0x03
str r1,[r0]
mrc p15,0,r1,c1,c0,0
orr r1,r1,#0xc0000000
mcr p15,0,r1,c1,c0,0
ldr r0,=0x4C000004
ldr r1,=S3C2440_MPLL_200MHZ
str r1,[r0]
/*3初始化SDRAM*/
mov r0,#MEM_CTL_BASE
adr r1,sdram_config
add r3,r0,#(13*4)
1:
ldr r2,[r1],#4
str r2,[r0],#4
cmp r3,r0
bne 1b
/*4重定位:把代码从0内存复制到它的链接地址去*/
mov r0,#0;
ldr r1,=0x33f80000
mov r2,#4096
1:
ldr r3,[r0],#4
str r3,[r1],#4
cmp r2,r0
bne 1b
/*清bss段*/
/*5执行main函数*/
ldr sp,=0x34000000