?? init.s
字號(hào):
/********************************************************************
' 創(chuàng)建日期: 2006/04/18
' 文件名稱: init.S
' 文件作者: GENE.SHAO (E-Mail: sjiang1981@163.com)
'
' 文件功能: 基本的硬件初始化
' 文件描述: 該程序在Samsung的s3c2410處理器上測試通過,你可以重新發(fā)
布或修改該程序,如果對(duì)該程序有何疑問請(qǐng)通過Email聯(lián)系作者。
*********************************************************************/
#include "header.h"
.global _start
_start:
/* 中斷向量表*/
b reset @ 復(fù)位
ldr pc, undefined_instruction @ 未定義的指令
ldr pc, software_interrupt @ 軟件中斷
ldr pc, prefetch_abort @ 指令預(yù)取終止
ldr pc, data_abort @ 數(shù)據(jù)訪問終止
ldr pc, not_used @ 保留
ldr pc, irq @ 外部中斷請(qǐng)求
ldr pc, fiq @ 快速中斷請(qǐng)求
undefined_instruction:
software_interrupt:
prefetch_abort:
data_abort:
not_used:
irq:
fiq:
.balign 4
reset:
/*禁用看門狗 */
ldr r0,=WTCON
mov r1,#0x0
str r1,[r0]
/*屏蔽所有的中斷*/
ldr r0,=INTMSK
mvn r1,#0x0
str r1,[r0]
/*屏蔽所有的子中斷*/
ldr r0,=INTSUBMSK
ldr r1,=0x3ff
str r1,[r0]
/*初始化LED外部輸出口*/
ldr r0, =GPFCON @ 4個(gè)LED使用GPF4, GPF5, GPF6, GPF7四個(gè)IO端口
ldr r1, =0x55aa @ 將GPF4-GPF7設(shè)置為輸出口, 可參考s3c2410處理器手冊(cè)。
str r1, [r0]
ldr r0, =GPFUP
mov r1, #0xff
str r1, [r0]
/*設(shè)置時(shí)鐘周期 */
ldr r0,=LOCKTIME
mvn r1,#0xff000000
str r1,[r0]
ldr r0,=CLKDIVN @ FCLK:HCLK:PCLK = 1:2:4
mov r1,#0x3
str r1,[r0]
ldr r0,=MPLLCON
ldr r1,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV) @ CPU 時(shí)鐘設(shè)置為200MHz
str r1,[r0]
ldr r1,=MISCCR
ldr r0,[r1]
bic r0,r0,#SCK_NORMAL
str r0,[r1]
.align 2
.global call_main
call_main:
ldr sp,STACK_START @ 設(shè)置堆棧底地址
mov fp,#0
mov a1, #0
mov a2, #0 @ 設(shè)置main函數(shù)的參數(shù)
bl main @ 跳轉(zhuǎn)到main函數(shù)
STACK_START:
.word STACK_BASE
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -