📄 init.s
字号:
;************************************************************************************************
;Chinese Academy of Sciences, Institute of Automation
;File Name: Init.s
;Description: Timer interrupt test. Model Init must link to SDRAM address 0x0.
;Author: Li JuGuang
;Date: 2003-4-3
;SDRAM Configuration: Use ljg.txt,SDRAM remap to address 0x0~0x100,0000(16MB)
;************************************************************************************************
GET mem.s
GET casia1.s
IMPORT Main
IMPORT IRQHandler
CODE32
AREA Init,CODE,READONLY
ENTRY
B Reset_Handler
B .
B .
B .
B .
NOP
B IRQ_Handler
B .
Reset_Handler
;*******************************************************
;Disable all interrupt
;*******************************************************
MRS R0,CPSR
BIC R0,R0,#MODE_MASK
ORR R0,R0,#SUP_MODE
ORR R0,R0,#IBit
ORR R0,R0,#FBit
MSR CPSR_cf,R0
;******************************************************
;Initialise system stack for different processor modes
;******************************************************
MRS r0, cpsr
BIC r0, r0, #LOCKOUT | MODE_MASK
ORR r2, r0, #USR_MODE
ORR r1, r0, #LOCKOUT | FIQ_MODE
MSR cpsr_c, r1 ;/* change to FIQ MODE */
MSR spsr_c, r2 ;/* set the SPSR under FIQ */
LDR sp, =FIQ_STACK ;/* set SP (R13) under FIQ */
ORR r1, r0, #LOCKOUT | IRQ_MODE
MSR cpsr_c, r1 ;/* change to IRQ MODE */
MSR spsr_c, r2 ;/* set the SPSR under IRQ */
LDR sp, =IRQ_STACK ;/* set SP (R13) under IRQ */
ORR r1, r0, #LOCKOUT | ABT_MODE
MSR cpsr_c, r1 ;/* change to ABORT MODE */
MSR spsr_c, r2 ;/* set the SPSR under ABORT */
LDR sp, =ABT_STACK ;/* set SP (R13) under ABORT */
ORR r1, r0, #LOCKOUT | UDF_MODE
MSR cpsr_c, r1 ;/* change to Undefine MODE */
MSR spsr_c, r2 ;/* set the SPSR under Undefine */
LDR sp, =UDF_STACK ;/* set SP (R13) under Undefine */
ORR r1, r0, #LOCKOUT | SUP_MODE
MSR cpsr_c, r1 ;/* change to Superuser MODE */
MSR spsr_c, r2 ;/* set the SPSR under super */
LDR sp, =SUP_STACK
MRS r0, cpsr ;/*用户模式的SP最后设置,进入用户模式后不能通过改变CPSR的模式位回到其他模式*/
BIC r0, r0, #LOCKOUT | MODE_MASK
ORR r1, r0, #USR_MODE
MSR CPSR_cf,R0
LDR SP, =USR_STACK
**********************************************************
B Main
**********************************************************
IRQ_Handler
STMFD SP!,{R0-R6,LR}
BL IRQHandler
LDMFD SP!,{R0-R6,LR}
SUBS PC,LR,#4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -