原标题:【精品博文】ARMv8的A32的异常等级

ARMv8,定义了异常等级,来进行权限控制。分别是EL0,EL1,EL2,EL3。

对于AArch32,ARMv8定义了9种PE模式,来确执行权限,不使用EL。对于AArch64,不支持PE模式:

l monitor模式: 只能在secure的EL3执行

l hyp模式: 只能在non-secure的EL2执行

l system,supervisor,abort,undefined,IRQ,FIQ模式: 依赖于secure模式

l user模式: 只能在EL0执行

system,supervisor,abort,undefined,IRQ,FIQ,user模式,和之前的ARMv7的特权模式兼容。只是不同的特权模式,运行在不同的EL。

对于secure状态

l monitor模式只能执行在EL3,并且EL3的运行模式是AArch32

l system,supervisor,abort,undefined,IRQ,FIQ模式:

Ø EL3是AArch64,执行在EL1

Ø EL3是AArch32,执行在EL3

如果EL3是AArch64

l 不支持monitor模式,因为A64不支持PE模式

l 如果EL1是AArch32,system,supervisor,abort,undefined,IRQ,FIQ模式运行在secure EL1

如下图所示:

如果EL3是AArch32

l 支持monitor模式,并且只能在secure EL3执行

l AArch32,system,supervisor,abort,undefined,IRQ,FIQ模式运行在secure EL3

l secure EL1,不支持

也就是下图所描述的:

当EL3是AArch32,那么就没有secure EL1,monitor,system,supervisor,abort,undefined,IRQ,FIQ模式都是运行在EL3。user模式,运行在secure EL0。

也就是当EL3是AArch32,只有EL3和EL0两个EL。

对于non-secure状态

system,supervisor,abort,undefined,IRQ,FIQ模式都是运行在EL1,user模式运行在EL0。

而hyp模式,运行在EL2,比system,supervisor,abort,undefined,IRQ,FIQ,user模式有更高的执行权限。

在non-secure状态下,只有EL2,EL1,EL0三个EL:

l EL0: 运行user模式

l EL1: 运行system,supervisor,abort,undefined,IRQ,FIQ模式

l EL2: 运行hyp模式

AArch32的PE模式和EL的对应关系,如下表所示:

AArch32使用PL,来确定VA转PA的权限控制。而PL和PE模式的映射关系,如下表所示:

也就是:

l 在non-secure下,每个PL映射到对应的EL上,如PL1映射到EL1

l 在seucre下:

Ø PL0映射到EL0

Ø PL1的映射,取决于EL3的执行状态:

⊃2; EL3是AArch64:Secure PL1映射到secure EL1,monitor模式不支持

⊃2; EL3是AArch32:secure PL1映射到secure EL3,monitor模式支持

对于AArch32的PE的9种模式,在CPSR寄存器的mode[4:0]位域中,进行定义:

责任编辑:

arm el2与el3_【精品博文】ARMv8的A32的异常等级相关推荐

  1. 【粉丝福利,限时免费】【千里之行,始于脚下】我在CSDN上的精品博文汇总,收藏起来慢慢看

    文章目录 1 写在前面 2 精品博文汇总 3 更多分享 1 写在前面 就在上周,我在CSDN的原创博文数量正式突破 100+,顺利拿下 CSDN博客专家的称号,前前后后耗时有4-5年吧,不过中间有两年 ...

  2. arm el2与el3_armv8 memory translation

    AArch32,arm的32bit架构: AArch64,arm的64bit架构: ARMv8.2-LPA,是armv8.2中的新feature,扩大了IPA和PA的支持范围,从48bit扩展到52b ...

  3. ARM V8A体系结构-第五章 ARMv8指令集简介

    概述 ARMv8体系结构中引入的最重要的变化之一是添加了64位指令集.该指令集补充了现有的32位指令集体系结构.此新增提供了对64位宽整数寄存器和数据操作的访问,以及使用64位大小的内存指针的能力.新 ...

  4. arm架构的linux芯片方案,ARM推64位处理器架构ARMV8及芯片[多图]

    北京时间10月31日消息,ARM宣布推出ARMv8 64位架构指令集之际,Applied Micro Circuits Corporation(AMCC)就推出了面向服务器市场的处理器X-Gene. ...

  5. arm el2与el3_armv8架构与指令集.整理.初稿.pdf

    目 录 第 1 章 ARMV8 简介 3 1.1 基础认识 3 1.2 相关专业名词解释 3 第 2 章 EXECUTION STATE 4 2.1 提供两种EXECUTION STATE 4 2.2 ...

  6. 【arm cpu架构体系】【armV8】【armv7】【A系列的CPU】

    为了给大家介绍一个更直观的感受,请看下面这张图 如图所示,绿色的部分都是v7-A的架构,蓝色的是v8-A架构,基本上绿色都是可以支持到32和64位的,除了A32,只支持到32位.在右边的每个部分,比如 ...

  7. ARM Cortex-A系列编程指南之ARMv8 A -- 第二章 ARMv8 A架构和处理器

    从1985年开始ARM架构经历了如下阶段: ARMv4及早期版本 早期的使用ARM32bit指令集 ARMv4T ARM32bit指令集的基础上,追加了Thumb16bit指令集. 这是第一个被广泛授 ...

  8. linux arm寄存器,【寄存器】在armv8/armv7中ARM system control registers的区别

    以SCTLR寄存器来阐述在armv7.armv8-arch64.armv8-arch64的使用方式 (其实大多数的系统寄存器,都是这种处理方式) SCTLR是system control regist ...

  9. arm el2与el3_ARMv8的学习笔记

    0. 状态 执行态:        AARCH64, AARCH32 最高异常等级只能工作在Aarch64, 其他EL可以工作在Aarch64或者Aarch32.  SCR_EL3.RW,  HCR_ ...

最新文章

  1. 无监督特定类别的网格重建(U-CMR) | ECCV
  2. vue 心跳监控_【笔记】vue中websocket心跳机制
  3. 转: javascript技术栈
  4. 禁止用户通过shell登录
  5. JavaScript Try Catch:异常处理说明
  6. table表格表头不懂,内容y轴滚动
  7. 用c/c++实现linux下检测网络接口状态【ZT】
  8. 删除数组中重复的元素
  9. PyQT简单入门--hello world
  10. LightGBM算法解析
  11. PostgreSQL 的 target_list分析(三)
  12. (转)工业机器人用什么语言编程的?
  13. 英国退出欧盟,欧盟还是欧盟吗?
  14. PICTURE writeup By K龙
  15. 2010年下半年卷烟品牌目录
  16. web前端编程实战实例:制作静态京东首页
  17. 【智能安全车载中控系统】(一)概览
  18. Android传感器的使用(1)——摇一摇切换图片
  19. 推荐一个开源的LMS系统ILIAS
  20. Java String字符串长度不足指定位数补0

热门文章

  1. typora怎么导出html,Typora 导入、导出 Word、rtf、odt、wiki 等文件
  2. HarmonyOS和MIUI的区别
  3. android qq 铃声大小设置,手机QQ自定义铃声怎么设置?手机QQ自定义铃声设置教程...
  4. 亏本瓷砖建材店用社群做活动业绩200多万火遍全城
  5. ORACLE number类型转换
  6. 产品经理学习笔记20210214
  7. 【附源码】计算机毕业设计java中药城药材销售管理系统设计与实现
  8. Redis集群安装介绍
  9. skinsharp 函数文档
  10. 谈谈目前网络工程师的待遇问题