当前位置:
首页 >
[ARM异常]-ARMV8-aarch64 异常(中断)是如何跳转到向量表的
发布时间:2025/3/21
74
豆豆
生活随笔
收集整理的这篇文章主要介绍了
[ARM异常]-ARMV8-aarch64 异常(中断)是如何跳转到向量表的
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈
先看一张框图,在中断产生之后,PC将跳转到VBAR + 中断offset处,例如图中蓝色部分
那么有三个基地址VBAR_EL1、VBAR_EL3、VBAR_EL1(secure),到底是使用哪一个呢?
由Routing when both EL3 and EL2 are implemented 表来决定,中断routing到了EL1则使用VBAR_EL1,routing到了EL3则使用VBAR_EL3,routing到了secure EL1则使用VBAR_EL1(secure)
选好了基地址后,再选偏移? 我们看到向量表中有四行,那么选哪一行呢?
由Vector offsets from vector table base address表来决定的
- 如果发生异常并不会导致exception level切换,并且使用的栈指针是SP_EL0,那么使用第一组异常向量表。
- 如果发生异常并不会导致exception level切换,并且使用的栈指针是SP_EL1/2/3,那么使用第二组异常向量表。
- 如果发生异常会导致exception level切换,并且比目的exception level低一级的exception
level运行在AARCH64模式,那么使用第三组异常向量表。 - 如果发生异常会导致exception level切换,并且比目的exception level低一级的exception
level运行在AARCH32模式,那么使用第四组异常向量表。
选好中断向量表中的某一行之后,那么具体选哪一个偏移呢?
会根据中断的类型来决定,如果是irq和fiq会根据当前PE的状态和中断的配置属性,来决定是IRQ或FIQ
有关中断的Mask,由下面一张表决定(Physical interrupt target and masking when both EL3 and EL2 are implemented)
总结
以上是生活随笔为你收集整理的[ARM异常]-ARMV8-aarch64 异常(中断)是如何跳转到向量表的的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python:将json数据写入到exc
- 下一篇: [hypervisor]-ARMV8的h