STM32
直播中

李丽华

7年用户 1436经验值
私信 关注
[问答]

请问进入PendSV后LR的值是什么?

进入 PendSV 后
LR的值是 0xFFFF FFE9
这个值是什么意思?
在哪里可以找到相关的资料。
谢谢

回帖(1)

刘超

2024-5-6 16:53:29
PendSV(Pending Service Call)是ARM Cortex-M处理器的一种异常处理程序,用于处理软件触发的中断。当进入PendSV异常处理程序时,处理器会将一些寄存器的值推入到异常堆栈中,其中就包括LR(链接寄存器)。

LR(Link Register)是一个寄存器,用于存储函数调用的返回地址。当进入PendSV后,LR的值通常是0xFFFF_FFE9。这个值表示PendSV异常处理程序的返回地址,即异常处理程序执行完毕后,处理器应该返回到的地址。

这个值0xFFFF_FFE9是一个特殊的地址,它位于系统堆栈的顶部。当处理器从PendSV异常处理程序返回时,它会从这个地址读取返回地址,然后跳转到该地址继续执行。这样做的目的是为了确保在处理PendSV异常时,不会影响其他中断处理程序的正常执行。

关于PendSV和LR寄存器的详细信息,您可以查阅以下资料:

1. ARM Cortex-M处理器的参考手册(Reference Manual),其中详细介绍了Cortex-M处理器的架构和异常处理机制。
2. 您使用的特定微控制器的数据手册(Datasheet),其中可能包含了关于PendSV和LR寄存器的特定实现细节。

希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分