【问题标题】:Arm Exception handling mechanicsArm 异常处理机制
【发布时间】:2013-05-09 07:36:13
【问题描述】:

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

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

所以我在这里得到的是在将流程转移到中止模式之前(让 pc 到中止向量)。 CPU 将执行以下任务: “当前 pc 到 abort_mode LRCPSR 到中止模式 SPSR 然后执行跳转到向量地址进行中止,”如上所述。 在哪种模式下,从哪里执行指令来执行上述任务?

【问题讨论】:

  • 你的问题到底是什么?
  • @tangrs,请看看你现在是否得到我。
  • ARM 内部的 microcode 完成了这一切。 注意: ARM 中的向量表是code,而不是指向code 的指针。通常某种分支或ldr pc, =abort_handler 在向量表中。数据中止有一个小,有两条指令可用。 FIQ在最后,不用跳了。

标签: arm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多