Cortex M3处理器有两个堆栈指针:PSP、MSP。 在一些复杂的应用中,用户程序使用PSP指向用户程序栈。异常处理程序使用指向主堆栈的 MSP。
问题是: 用户程序运行时发生中断。在进入中断处理程序之前,R0-R3、R12、LR、PC 和 xPSR 寄存器将被压入堆栈。但是哪个堆栈用于存储这些寄存器?
最佳答案
根据我对 ARM 文档(Cortex-M3 设备通用用户指南)的阅读,异常进入时的寄存器堆栈发生在当前 堆栈上,然后处理器进入处理程序模式。如果您仔细想想,这是普通情况下最方便的行为。
关于arm - 从 Cortex M3 处理器的用户程序进入中断处理程序时使用哪个堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45461739/