📄 startup.s
字号:
;/*
;**********************************************************************************************************
;*
;* S3C2410 ARM920T BOARD
;*
;* (c) Copyright 2003-2015, KANGSHUO
;* All Rights Reserved
;*
;* S3C2410 Initialization Program for 1.0
;*
;* File Name : UARTTEST
;* By Write : KANGSHUO(LEA)
;* First Write : 2004-09-14
;* Last Write : 2004-09-15
;* where Write : Room B201 Shenzhen International Tech-innovation Academy, Kejinan 10 Road,
;* High-Tech Industrial Park,Shenzhen,China.
;* Function : TEST S3C2410 BOARD UART0
;*
;*
;*
;**********************************************************************************************************
;*/
;/*
;**********************************************************************************************************
;* IMPORTANT ITEMS
;* 1. CPU frequence is 66M Hz
;* 2. 立即数的规范
;* 3.
;*
;**********************************************************************************************************
;*/
;/*
;**********************************************************************************************************
;* ERROR AND SOLUTION IN DEBUGING
;* 1. ERROR:
;* SOLUTION:
;**********************************************************************************************************
;*/
;/*
;**********************************************************************************************************
;* TO DO LIST
;* 2003.07.16
;* 1. CPU的基本初始化
;* a) 中断屏蔽
;* b) 看门狗设置,初始化是要将其屏蔽掉,初始化完之后再将其打开
;* c) 设置CPU时钟速度
;* d) 初始化内存
;* ......
;* 2. 跳至板级初始化,完成更高级的初始化工作
;* 3.
;* 4.
;**********************************************************************************************************
;*/
INCLUDE INTDEF.S
INCLUDE 2410ADDR.S
CODE32
IMPORT INT_IRQ
AREA STARTUP,CODE,READONLY
;/*
;**********************************************************************************************************
;* ENTRY
;*
;* 功能描述:初始化程序入口点
;*
;*
;**********************************************************************************************************
;*/
ENTRY
START
B INT_Reset
LDR PC, Undefined_Addr
LDR PC, SWI_Addr
LDR PC, Prefetch_Addr
LDR PC, Abort_Addr
NOP
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr
Undefined_Addr DCD Undefined_Handler ;// 0x04
SWI_Addr DCD SWI_Handler ;// 0x08
Prefetch_Addr DCD Prefetch_Handler ;// 0x0c
Abort_Addr DCD Abort_Handler ;// 0x10
DCD 0 ;// Reserved vector 0x14
IRQ_Addr DCD INT_IRQ ;// 0x18
FIQ_Addr DCD FIQ_Handler ;// 0x1c
;/*
;**********************************************************************************************************
;* IMPORT ITEM
;* 描述:1. ARM上电启动后进入管理模式
;* 2. ARM复位后进入管理模式
;* 3.
;**********************************************************************************************************
;*/
EXPORT Undefined_Handler
Undefined_Handler
B Undefined_Handler
EXPORT SWI_Handler
SWI_Handler
B SWI_Handler
EXPORT Prefetch_Handler
Prefetch_Handler
B Prefetch_Handler
EXPORT Abort_Handler
Abort_Handler
B Abort_Handler
EXPORT FIQ_Handler
FIQ_Handler
B FIQ_Handler
;/*
;**********************************************************************************************************
;* INT_Reset
;*
;* Description: 初始化CPU相关的寄存器
;*
;* Arguments :
;*
;* Returns :
;*
;**********************************************************************************************************
;*/
EXPORT INT_Reset
INT_Reset
;// 模式转换为系统模式,
MRS R0,CPSR
BIC R0,R0,#MODE_MASK
ORR R0,R0,#MODE_SYS
ORR R0,R0,#INTLOCK
MSR CPSR_cxsf,R0
;// 硬件屏蔽中断
LDR R0,=INTMSK
LDR R1,= 0xFFFFFFFF
STR R1,[R0,#0]
LDR R0,=INTSUBMSK
LDR R1,=0X7FF
STR R1,[R0]
;// 屏蔽看门狗 ****注意立即数规范****
LDR R0, =WTCON
LDR R1, = 0x0
STR R1, [R0]
;// PLL稳定输出时间
ldr r0,= LOCKTIME
ldr r1,= 0xffffff
str r1,[r0]
;// 设置CPU工作频率 Fin = 10MHz, Fout = 90MHz
LDR R0,=MPLLCON
LDR R1,=0X70022
STR R1,[R0]
;// 设置时钟对所有的片内外设有效
LDR r0,=CLKCON
LDR r1,= 0x7FFF0
STR r1,[r0]
;//关闭MMU
;LDR R0, = r_SYSCFG
;MOV r1,#0x8
;//MOV R1,#0x0E
;STR R1,[R0]
;mask the mmu and cache
MOV R0,#0
MCR p15,0,R0,c1,c0,0
;//设置内存控制寄存器,配置内存参数,初始化内存
LDR R0,=BWSCON
LDR R1,=0X22111110
STR R1,[R0]
LDR R0,=BANKCON0
LDR R1,=0X700
STR R1,[R0]
LDR R0,=BANKCON6
LDR R1,=0X18005
STR R1,[R0]
LDR R0,=BANKCON7
LDR R1,=0x18005
STR R1,[R0]
LDR R0,=REFRESH
LDR R1,=0X8E0459
STR R1,[R0]
LDR R0,=BANKSIZE
LDR R1,=0X32
STR R1,[R0]
LDR R0,=MRSRB6
LDR R1,=0X30
STR R1,[R0]
LDR R0,=MRSRB7
LDR R1,=0X30
STR R1,[R0]
;//int 初始化,选择int中断使能USB Device中断
LDR R0,=INTMOD
LDR R1,=0X0
STR R1,[R0]
LDR R0,=PRIORITY
LDR R1,=0X0
STR R1,[R0]
LDR R0,=INTMSK
LDR R1,=0XFDFFFFFF
STR R1,[R0]
LDR R0,=INTSUBMSK
LDR R1,=0X5FC
STR R1,[R0]
;/*
;**********************************************************************************************************
;* INT_Intialize
;* Function : 进行更高极的初始化工作
;*
;* Returns : NO
;*
;**********************************************************************************************************
;*/
IMPORT INT_Intialize
B INT_Intialize
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -