2

正在经历 arm 异常处理的基础知识,并提出了这个疑问:(我以 abort 异常为例)让我们假设处理器正在用户模式下运行。

当发生异常时,处理器会将当前保存pc到 abort_modeLRCPSR中止模式SPSR,并且执行跳转到中止的向量地址,因此PC现在将包含中止的向量地址

所以我在这里得到的是在将流程转移到中止模式之前(让 pc 到中止向量)。CPU 将执行以下任务:“Current pcto abort_mode LRand CPSRto abort mode SPSRand then execution jumps to vector address for the abort”,如上所述。在哪种模式下以及从何处执行指令来执行上述任务?

4

1 回答 1

3

当发生中止异常时,您引用的文本是正确的。其他例外使用不同的模式。

将 PC 复制到异常模式 LR 并将 CPSR 复制到 SPSR 并将 PC 设置为异常向量是处理器在处理异常时自动为您执行的操作。不需要任何说明。它还切换到该异常模式使用的 SP。

接下来是异常处理程序。并且完全在软件中。

于 2013-05-09T08:27:48.583 回答