ARM架构(四)——异常中断和中断控制器(GIC)③

1 Arm的异常向量表

1.1 一些术语

  1. 异常等级(Exception Levels):ARMv9保留了ARMv8中的四个异常等级(EL0至EL3),每个等级提供不同级别的特权和对系统资源的访问权限。其中,EL0通常是用户模式,EL1是操作系统内核模式,EL2用于虚拟化技术中的宿主机操作系统,而EL3是最高等级,通常用于安全相关的功能 。
  2. 执行状态(Execution States):ARMv9支持两种执行状态,AArch64和AArch32。处理器可以在异常等级之间切换时改变执行状态,但只能从AArch32切换到AArch64,反之则不行。这意味着64位层可以承载32位层,但32位层不能承载64位层 。
  3. 安全状态(Security States):ARMv9支持两种安全状态,安全状态(Secure State)和非安全状态(Non-secure State)。在安全状态下,处理器可以执行受信任的代码,并访问所有物理地址空间,包括安全和非安全的。而非安全状态下的处理器只能访问非安全物理地址空间和资源 。
  4. 异常处理:当异常发生时,处理器会保存当前状态,包括程序计数器(PC)和程序状态寄存器(PSTATE),然后跳转到对应的异常处理程序。异常处理程序在处理完毕后,会通过特定的指令(如ERET)返回到异常发生前的状态 。
  5. 异常向量表:ARMv9使用异常向量表来确定异常处理程序的入口地址。每个异常等级都有自己的向量表,包含要执行的指令。当异常发生时,处理器会从这个表中获取跳转地址 。
  6. 异常类型:ARMv9体系结构中的异常可以分为同步异常和异步异常。同步异常是由当前执行的指令引起的,而异步异常则是由外部事件触发的 。
  7. 特权:ARMv9体系结构中的特权级别决定了软件能够访问哪些处理器资源。特权与异常等级紧密相关,高异常等级具有更高的特权 。
  8. 异常等级切换:在ARMv9中,异常等级的切换只能在发生异常或从异常返回时进行。当发生异常时,异常等级可以增加或保持不变;而从异常返回时,异常等级可以降低或保持不变 。<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值