arm 中断时,是将中断前上下文信息压入中断堆栈(内核堆栈)还是当前代码堆栈中
时间: 2023-12-08 08:43:37 浏览: 98
在 ARM 架构中,中断时的上下文信息通常是压入中断堆栈(也称为内核堆栈)而不是当前代码堆栈。
当发生中断时,ARM处理器会自动切换到中断处理程序,并将中断相关的寄存器值保存在中断堆栈中。这些寄存器包括程序计数器(PC)、程序状态寄存器(PSR)、链接寄存器(LR)和其他相关的寄存器。
中断堆栈是一个专门用于保存中断上下文信息的堆栈区域,它由操作系统内核管理。该堆栈通常位于内核空间,并且具有固定的大小。中断处理程序可以在该堆栈上进行操作,保存和恢复中断上下文。
相比之下,当前代码堆栈是指当前执行代码所使用的堆栈,通常用于函数调用和局部变量的存储。它与中断无关,不会用于保存中断上下文信息。
总结起来,在 ARM 架构中,中断时会将中断前的上下文信息压入中断堆栈(内核堆栈),而不是当前代码堆栈。这样可以确保中断处理程序能够正确地保存和恢复中断上下文信息,以保持系统的稳定性和正确性。
阅读全文