【发布时间】:2013-05-09 07:36:13
【问题描述】:
正在学习arm异常处理的基础知识,并提出了这个疑问: (我以中止异常为例) 让我们假设处理器在用户模式下运行。
当异常发生时,处理器会将当前的pc 保存到abort_mode LR 和CPSR 到中止模式SPSR 并且执行跳转到中止的向量地址,所以PC 现在将包含用于中止的向量地址。
所以我在这里得到的是在将流程转移到中止模式之前(让 pc 到中止向量)。
CPU 将执行以下任务:
“当前 pc 到 abort_mode LR 和 CPSR 到中止模式 SPSR 然后执行跳转到向量地址进行中止,”如上所述。
在哪种模式下,从哪里执行指令来执行上述任务?
【问题讨论】:
-
你的问题到底是什么?
-
@tangrs,请看看你现在是否得到我。
-
ARM 内部的 microcode 完成了这一切。 注意: ARM 中的向量表是
code,而不是指向code的指针。通常某种分支或ldr pc, =abort_handler在向量表中。数据中止有一个小孔,有两条指令可用。 FIQ在最后,不用跳了。
标签: arm