;定义出所有处理器模式的值,为后面切换处理器做准备
CPU_USER_MODE EQU (0x10)
CPU_FIQ_MODE EQU (0x11)
CPU_IRQ_MODE EQU (0x12)
CPU_SVC_MODE EQU (0x13)
CPU_ABT_MODE EQU (0x17)
CPU_UND_MODE EQU (0x1B)
CPU_SYS_MODE EQU (0x1F)
;接下来设置一下堆栈的栈底和堆栈的大小
;系统模式
STACK_SYS_ADDR EQU (0x33FF8000)
STACK_SYS_SIZE EQU (1024)
;
STACK_ABT_ADDR EQU (STACK_SYS_ADDR - STACK_SYS_SIZE)
STACK_ABT_SIZE EQU (1024)
;未定义模式
STACK_UND_ADDR EQU (STACK_ABT_ADDR - STACK_ABT_SIZE)
STACK_UND_SIZE EQU (1024)
;快中断模式
STACK_FIQ_ADDR EQU (STACK_UND_ADDR - STACK_UND_SIZE)
STACK_FIQ_SIZE EQU (1024)
;中断模式
STACK_IRQ_ADDR EQU (STACK_FIQ_ADDR - STACK_FIQ_SIZE)
STACK_IRQ_SIZE EQU (1024 * 20) ;默认20k给中断
;管理员模式
STACK_SVC_ADDR EQU (STACK_IRQ_ADDR - STACK_IRQ_SIZE)
STACK_SVC_SIZE EQU (1024 * 20)
EXPORT STACK_init
AREA Stack, CODE, READONLY ;定义启动代码区域
版权声明:本文为Gaodes原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。