LM3S8962,
ASM问题求助
为什么以下代码可以正常运行:
OSIntCtxSw
PUSH {R4, R5}
LDR R4, =NVIC_INT_CTRL ; trigger the PendSV exception
LDR R5, =NVIC_PENDSVSET
STR R5, [R4]
POP {R4, R5}
BX LR
NOP
但如果改为以下就出错:
OSIntCtxSw
PUSH {LR}
PUSH {R4, R5}
LDR R4, =NVIC_INT_CTRL ; trigger the PendSV exception
LDR R5, =NVIC_PENDSVSET
STR R5, [R4]
POP {R4, R5}
POP {LR} // 只要对LR 进行写操作就会出错
BX LR
NOP
只要对LR 进行写操作就会出错,请问是什么原因? |