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

📄 stack_init.s

📁 ucos_ii在mini2440上的移植KEIL编译环境
💻 S
字号:
;************************************
;定义7中处理模式下的栈起始地址和大小
;SDRAM地址范围:0x30000000~0x33FFFFFF
;栈基址地址从0x33FFFFFF开始往后倒退
;***********************************
	AREA STACK, CODE, READONLY
	ENTRY
	CODE32
	GET 2440addr.inc
	EXPORT InitStack


C_STACK_BASE		EQU		0X33FF0000
C_USR_STACK_BASE	EQU		C_STACK_BASE
C_USR_STACK_SIZE	EQU		(10*1024)
C_SYS_STACK_BASE	EQU		C_USR_STACK_BASE - C_USR_STACK_SIZE
C_SYS_STACK_SIZE	EQU		(10*1024)
C_SVC_STACK_BASE	EQU		C_SYS_STACK_BASE - C_SYS_STACK_SIZE
C_SVC_STACK_SIZE	EQU		(10*1024)
C_IRQ_STACK_BASE	EQU		C_SVC_STACK_BASE - C_SVC_STACK_SIZE
C_IRQ_STACK_SIZE	EQU		(10*1024)
C_FIQ_STACK_BASE	EQU		C_IRQ_STACK_BASE - C_IRQ_STACK_SIZE
C_FIQ_STACK_SIZE	EQU		(1024)
C_ABT_STACK_BASE	EQU		C_FIQ_STACK_BASE - C_FIQ_STACK_SIZE
C_ABT_STACK_SIZE	EQU		(128)
C_UND_STACK_BASE	EQU		C_ABT_STACK_BASE - C_ABT_STACK_SIZE
C_UND_STACK_SIZE	EQU		(128)


;****************************************************************
;配置各种模式下的堆栈
;****************************************************************	

InitStack
	MRS R7, CPSR;备份处理器模式	

	MRS R0, CPSR
	AND R0, R0, #0XFFFFFFE0

	;配置SVC模式的堆栈
	ORR R1, R0, #0X13
	MSR	CPSR_c, R1
	LDR SP, =C_SVC_STACK_BASE

	;配置IRQ模式的堆栈
	ORR R1, R0, #0X12
	MSR	CPSR_c, R1
	LDR SP, =C_IRQ_STACK_BASE

	;配置FIQ模式的堆栈
	ORR R1, R0, #0X11
	MSR	CPSR_c, R1
	LDR SP, =C_FIQ_STACK_BASE

	;配置UND模式的堆栈
	ORR R1, R0, #0X1B
	MSR	CPSR_c, R1
	LDR SP, =C_UND_STACK_BASE

	;配置ABT模式的堆栈
	ORR R1, R0, #0X17
	MSR	CPSR_c, R1
	LDR SP, =C_ABT_STACK_BASE

	;配置SYS模式的堆栈
	ORR R1, R0, #0X1F
	MSR	CPSR_c, R1
	LDR SP, =C_SYS_STACK_BASE

	MSR CPSR_c, R7

	BX LR
;	MOV PC, LR

	END

⌨️ 快捷键说明

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