【问题标题】:Are the VBAR_EL registers saved over context switch in ARM?VBAR_EL 寄存器是否通过 ARM 中的上下文切换保存?
【发布时间】:2018-11-24 16:13:25
【问题描述】:

有人告诉我,VBAR_EL0/1 寄存器没有在上下文切换上备份。我还注意到 VBAR_EL0/1 寄存器没有列出here,但除此之外我没有找到太多关于它的信息。这是否意味着所有 32 位进程的异常表必须位于同一位置?另外,在 32 位和 64 位处理器模式之间切换时,这是如何工作的?

我正在使用为 Armv8 交叉编译的 Linux 4.1。

【问题讨论】:

    标签: linux arm cpu-registers armv8


    【解决方案1】:

    关于上下文切换的第一个问题,我没有找到任何现有的参考资料,但我个人的经验是,除非您手动更新 VBAR_EL0/1 寄存器,否则所有进程共享相同的异常向量表。 如果成功更新寄存器,那么所有进程都会根据新寄存器的值找到异常处理程序。

    第二个问题:

    在 32 位和 64 位处理器模式之间切换时如何工作?

    根据ARM Architecture Reference Manual

    VBAR_EL1[31:0] 在架构上映射到 AArch32 系统寄存器 VBAR。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 2018-01-14
      • 1970-01-01
      相关资源
      最近更新 更多