赞
踩
一、异常向量
1、定义
异常向量(Exception Vector)是处理器架构中用于识别和处理不同类型异常的一个机制。每个异常类型都有一个唯一的异常向量,处理器通过该向量确定如何处理特定的异常。
2、作用
二、异常向量表
异常发生时,处理器必须执行与异常相对应的处理程序代码。内存中存储处理程序的位置称为异常向量。在ARM架构中,异常向量存储在一个表中,称为异常向量表。
每个异常级别都有自己的向量表,即EL3、EL2和EL1各有一个向量表。(EL0除外)该表包含要执行的指令,而不是一组地址。这些通常是将核心引导到完整异常处理程序的分支指令。
向量表中的每个条目有 16 个指令长(在 ARMv7-A 和 AArch32 中,每个条目只有 4 个字节)。这意味着在AArch64中,顶级处理程序可以直接写入向量表中。
基地址由 VBAR_EL n给出,每个条目都有一个距该基地址的定义偏移量。每个表有 16 个条目,每个条目的大小为 128 字节(32 条指令)。该表实际上由 4 组 4 个条目组成。使用哪个条目取决于几个因素:
·异常类型(SError、FIQ、IRQ 或同步)
·如果在同一异常级别发生异常,则要使用的堆栈指针(SP0 或 SPn)
·如果在较低的异常级别发生异常,则为下一个较低级别(AArch64 或 AArch32)的执行状态。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。