ARMV8-aarch32的异常向量表介绍

文摘   2024-09-27 07:49   上海  


文章目录

    • 1、基地址VBAR

    • 2、异常向量表 offset


1、基地址VBAR

如果EL3使用aarch32,则使用secure monitor mode模式的异常向量表。基地址是MVBAR
如果secure EL1使用aarch32,则使用Secure privileged mode的向量表,基地址是VBAR 或 0xFFFF0000(SCTLR.V == 0,则使用VBAR,否则0xFFFF0000)
如果non-secure EL1使用aarch32,则使用privileged mode的向量表,基地址是VBAR 或 0xFFFF0000(SCTLR.V == 0,则使用VBAR,否则0xFFFF0000)

2、异常向量表 offset

在ARMv8架构的AArch32状态下,异常向量表用于处理各种异常事件,如中断、陷阱和故障。以下是AArch32异常向量表的简介:

  1. 异常向量表位置:异常向量表通常位于内存的低地址(如0x00000000),并包含多个向量,每个向量对应不同类型的异常。

  2. 向量类型

  • 复位向量:系统复位时执行的代码。

  • 未定义指令向量:当处理器遇到未定义指令时跳转到该向量。

  • 软件中断(SWI)向量:用于系统调用等功能。

  • 预取异常向量:在指令预取过程中发生错误时的处理。

  • 数据异常向量:处理数据访问异常(如地址错误)。

  • 处理流程:当异常发生时,处理器会自动跳转到相应的异常向量地址执行相应的异常处理程序。执行完毕后,通常通过特定指令返回到中断前的执行状态。

  • 灵活性:异常向量表的具体实现可以根据系统需求进行修改,允许在不同的环境中灵活配置。



  • ARM研习社
    嵌入式软件、C语言、ARM、Linux、内核、驱动、操作系统
     最新文章