📄 init.s
字号:
;/*************************************************************************/
;/* */
;/* FILE NAME VERSION */
;/* */
;/* init.s SNDS100 Board version 1.0 */
;/* */
;/* COMPONENT */
;/* */
;/* */
;/* DESCRIPTION */
;/* */
;/* This file contains the target processor dependent initialization */
;/* routines (boot code) and data. */
;/* */
;/* AUTHOR */
;/* */
;/* */
;/* DATA STRUCTURES */
;/* */
;/* */
;/* FUNCTIONS */
;/* */
;/* */
;/* DEPENDENCIES */
;/* */
;/* snds.a System constants */
;/* */
;/* HISTORY */
;/* */
;/* */
;/*************************************************************************/
GET snds.inc
AREA Init, CODE, READONLY
; --- Define entry point
EXPORT __main ; defined to ensure that C runtime system
; is not linked in
__main
ENTRY
; --- Lock out interrupt
MRS R0, CPSR
BIC R0, R0, #MODE_MASK
ORR R0, R0, #SUP_MODE
ORR R0, R0, #LOCKOUT
MSR CPSR_cxsf, R0
LDR PC, =Reset_Handler
AREA Main, CODE, READONLY
;==========================================================
; The Reset Entry Point
;==========================================================
Reset_Handler ;/* Reset Entry Point */
LDR r1, =IntMask
LDR r0, =0xFFFFFFFF
STR r0, [r1]
;=====================================
; Initialise STACK
;=====================================
INITIALIZE_STACK
MRS r0, cpsr
BIC r0, r0, #LOCKOUT | MODE_MASK
ORR r2, r0, #USR_MODE
ORR r1, r0, #LOCKOUT | FIQ_MODE
MSR cpsr_cf, r1
MSR spsr_cf, r2
LDR sp, =FIQ_STACK
ORR r1, r0, #LOCKOUT | IRQ_MODE
MSR cpsr_cf, r1
MSR spsr_cf, r2
LDR sp, =IRQ_STACK
ORR r1, r0, #LOCKOUT | ABT_MODE
MSR cpsr_cf, r1
MSR spsr_cf, r2
LDR sp, =ABT_STACK
ORR r1, r0, #LOCKOUT | UDF_MODE
MSR cpsr_cf, r1
MSR spsr_cf, r2
LDR sp, =UDF_STACK
ORR r1, r0, #LOCKOUT | SUP_MODE
MSR cpsr_cf, r1
MSR spsr_cf, r2
LDR sp, =SUP_STACK ; Change CPSR to SVC mode
;===========================
; Now we enter the C Program
;===========================
IMPORT main
BL main
AREA ROMDATA, DATA, READONLY
;/***************************************************/
AREA SYS_STACK, NOINIT
;/***************************************************/
% USR_STACK_SIZE
USR_STACK
% UDF_STACK_SIZE
UDF_STACK
% ABT_STACK_SIZE
ABT_STACK
% IRQ_STACK_SIZE
IRQ_STACK
% FIQ_STACK_SIZE
FIQ_STACK
% SUP_STACK_SIZE
SUP_STACK
;/***************************************************/
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -