Cortex M4 使用不同的堆栈指针入栈和出栈

问题描述 投票:0回答:1

有可能在 cortex-m4 中实现这一点吗?我的意思是仅在该时间间隔内使用 PSP,而在出现中断时使用所有其余 MSP?

image

目标只是在不同的内存位置进行堆叠和出栈!

stack cortex-m interrupted-exception stack-pointer stacking-context
1个回答
0
投票

在异常进入时,上下文被保存到当时处理器当前正在使用的堆栈中。如果您在主上下文中运行,那么这可能是 MSP 或 PSP,具体取决于 CONTROL 特殊寄存器的 SPSEL 位。

在异常处理期间,仅使用 MSP。

当从嵌套中断返回到外部中断时,上下文将从 MSP 恢复。

当从异常返回到主上下文时,您可以通过设置写入程序计数器的特殊返回地址的位[2]来选择从哪个堆栈上下文恢复。

有关完整详细信息,请参阅ARMv7-M 架构参考手册的 B1.5 节。

© www.soinside.com 2019 - 2024. All rights reserved.