【发布时间】:2014-04-25 06:01:47
【问题描述】:
谁能解释一下,当我们有嵌套中断时,系统模式究竟是如何工作的?
根据 ARM 网站
ARMv4 和更高版本的体系结构包括一种称为系统模式的特权模式,以解决这个问题。系统模式与用户模式共享相同的寄存器,它可以运行需要特权访问的任务,并且异常不再覆盖链接寄存器。
那么系统模式如何利用用户模式的寄存器呢?
最多可以处理什么层次的嵌套中断?
【问题讨论】:
-
这似乎是the referred page。请注意,它是在谈论 exceptions 而不是中断。 中断是一个执行,然而,FIQ、数据中止、程序中止 、未定义的异常等都是独立的模式。您可以将这些模式的状态,特别是
lr和spsr,保存到系统堆栈,然后进入系统模式。此时,所有异常的所有代码都使用相同的堆栈。这很有价值,因为sp不仅可以用作堆栈;即,进程上下文。
标签: kernel arm interrupt-handling