@1.构建异常向量表
b reset
b undefine
b software_interrupt
b prefetch_abort
b data_abort
b .
b irq
b fiq
@2.异常源---->>标签
fiq:
irq:
data_abort:
prefetch_abort:
software_interrupt:
undefine:
@1>压栈保存现场
stmfd sp!,{r0-r12,lr}
@2>分别对r0,r1寄存器赋值
mov r0,#0x3
mov r1,#0x4
@3>恢复现场
ldmfd sp!,{r0-r12,pc}^
@^:代表将SPSR <mode>寄存器中的值,恢复给CPSR
reset:
@2.svc模式下执行内容
@3.系统一上电处于svc模式
@4.从svc模式切换到user模式
msr cpsr,#0xd0
@5.user模式实现如下内容
@1>初始化栈指针
ldr sp,=0x40008000
@2>分别对r0,r1寄存器赋值
mov r0,#0x1
mov r1,#0x2
@3>执行软中断指令--->四大步三小步
swi 2
swi指令验证异常处理流程
最新推荐文章于 2024-10-02 19:03:15 发布