LM3S8962 ASM问题求助

2019-03-24 16:14发布

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 进行写操作就会出错,请问是什么原因? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
shilaike
2019-03-25 03:41
看了一下,貌似LZ没有对LR进行写操作,只是压站和出站的操作。
的CM3看,链接寄存器会自动入栈,自动出站。如果要操作的话,LZ应该将CPU工作模式改了。。。
    不知道上面的理解对不对。。。。。查查LR人使用手册。。。。

一周热门 更多>

相关问题

    相关文章