• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

arm v8r中异常等级(r52 trm)

3.2 Armv8-R AArch32 架构概念
Cortex®-R52 处理器的编程模型主要由其所采用的架构来确定。本手册中并未重复提供该架构的编程说明。模型。本手册详细介绍了与 Cortex®-R52 处理器实现相关的特性和行为。
以下各节将介绍文档其余部分中所使用的主要架构概念和术语。如需了解更多信息,请参阅 Arm® 架构参考手册补充资料 Armv8,适用于 Armv8-R AArch32 架构配置。
理解本节中所定义的术语是阅读本手册其余部分的前提条件。
3.2.1 执行状态
Armv8-R 的 AArch32 架构仅有一种执行状态,即 AArch32。该执行状态定义了处理器的执行环境,包括:
• 支持的寄存器宽度。
• 支持的指令集。
• 以下方面的重要内容:
◦ 执行模型。
◦ PMSA。
◦ 程序员模型。
3.2.2 异常等级
Armv8-R异常模型定义异常等级EL0-EL2,这里
1.EL0有最低软件执行优先级,在EL0等级的执行被称作非特权执行
2.异常级别从 1 提升到 2 表示软件执行权限的提升。
3.EL2 提供了对处理器虚拟化的支持。
只有在发生异常时,或者在从异常中返回时,执行操作才能在 Armv8-R 的 AArch32 异常级别之间进行切换:
1.一旦触发异常,异常级别要么升高,要么保持不变。一旦触发异常,异常级别就无法再降低。
2.在从异常状态返回后,异常级别要么降低,要么保持不变。从异常中返回时,异常级别无法再增加。
在发生异常时,执行所切换到的或仍处于的异常级别被称为该异常的目标异常级别:
• 每种异常类型都有一个目标异常级别,该级别要么:
◦-固定于异常的性质。
◦-由系统寄存器中的配置位所定义。
• 任何异常都不能指向 EL0。

3.2.3 常见的异常级别使用模型
该架构并未明确说明在不同异常级别下软件会使用哪些内容,此类选择不在架构的涵盖范围内。不过,以下是一种针对异常级别的常见使用模型:
EL0 应用程序。
EL1 操作系统内核及其通常被描述为具有特权性质的功能。
EL2 虚拟机管理程序。

3.2.4 异常术语
本节定义了用于描述异常级别之间转换的术语。
3.2.4.1 异常处理术语
当处理器首次对异常情况作出响应时,就会产生异常。
此时处理器的状态即为该异常所采取的状态。而处理异常后处理器的状态则为该异常所指向的状态。
3.2.4.2 异常处理中的术语
要从异常中返回,处理器必须执行异常返回指令。当执行一条异常返回指令时,处理器的状态就是该指令所返回的异常状态。而该指令执行完毕后,处理器的状态则会恢复到异常返回时的状态。
3.2.4.3 快速中断
当启用快速中断功能时,一旦接收到中断信号,处理器会终止任何已开始但尚未完成的可重启内存操作。可重启的内存操作是指对正常内存执行的加载和存储指令。
为了最大程度减少中断延迟,Arm 建议您不要对设备内存执行多字节传输操作。
3.2.5 指令集状态
处理器的指令集状态决定了处理器执行的指令集。
在 AArch32 执行状态下支持的指令集包括:
A32 这是一种固定长度的指令集,使用 32 位指令编码。
在 Armv8 之前,它被称为 Arm 指令集。
T32 这是一种可变长度的指令集,同时使用 16 位和 32 位指令编码。在 Armv8 之前,它被称为 Thumb 指令集状态。
3.2.6 AArch32 执行模式
在 AArch32 状态下,处理器可以以多种模式之一进行执行。每种模式都与一个异常级别相关联。某些模式具有部分通用寄存器的私有、分组副本。异常会导致处理器切换到特定模式。
以下表格展示了 AArch32 处理器的模式以及每个模式的异常级别。

posted on 2025-06-19 22:03  SOC验证工程师  阅读(229)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3