从Cortex M3处理器的用户程序进入中断处理程序时使用哪个堆栈?

时间:2017-08-02 13:07:14

标签: arm stack embedded microcontroller cortex-m3

Cortex M3处理器有两个堆栈指针:PSP,MSP。 在一些复杂的应用程序中,用户程序使用PSP指向用户程序堆栈。异常处理程序使用MSP指向主堆栈。

问题是: 用户程序运行时发生中断。在进入中断处理程序之前,R0-R3,R12,LR,PC和xPSR寄存器将被压入堆栈。但是哪个堆栈用于存储这些寄存器?

1 个答案:

答案 0 :(得分:4)

根据我阅读的ARM文档(Cortex-M3设备通用用户指南),在当前堆栈上发生异常进入时的寄存器堆叠,然后处理器进入处理程序模式。如果你考虑一下,这是普通情况下最方便的行为。