⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.s

📁 开发板外设接口实验(1~7)
💻 S
字号:
;/*
; *	startup.s  --   startup file for swi
; *	
; *	Author: 	li ming <admin@lumit.org>
; *	Date:		2004-8-26
; *	Copyleft:	http://www.lumit.org
; */

	AREA asm_code, CODE

; *********************************************************************	

	IMPORT __main
		 
ENTRY
|__init|
; **********************************************************************
; * Set up the stack pointer to point 
; **********************************************************************
	;set up irq stack
	mov 	r0, #0xd2               ; make irq mode with all irqs disabled
	msr 	cpsr_cxsf, r0
	MOV sp, #0x70000
	
	;set up svc stack
	mov	r0, #0xd3                ; make svc mode with all irqs disabled
	msr	cpsr_cxsf, r0		 
	MOV sp, #0x80000
	
	MOV	r0, #0x53									; make svc mode with irq enabled
	MSR	cpsr_c, r0
	
; **********************************************************************
; * Jump to the address of the C entry point.
; **********************************************************************
	b	__main
	
	IMPORT  do_irq
	EXPORT  irq_handler
irq_handler
	SUB	lr, lr, #4            
	STMFD	sp!, {r0-r12, lr}        ; push r0-r12 register file and lr( pc return address )
 
	MRS 	r4, spsr        
	STMFD 	sp!, {r4}                ; push current spsr_cxsf_irq ( =cpsr_svc )

	BL	do_irq			 								; goto C handler
	
	LDMFD 	sp!, {r4}                ; get cpsr_svc from stack
	MSR     spsr_cxsf, r4		 				; prepare spsr_cxsf to return svc mode	

	LDMFD	sp!, {r0-r12, pc}^       ; recover r0-r12 and pc from stack, cpsr also

; **********************************************************************
; * END OF startup.s
; **********************************************************************
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -