arm el2与el3_【精品博文】ARMv8的A32的异常等级
原标题:【精品博文】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的异常等级相关推荐
- 【粉丝福利,限时免费】【千里之行,始于脚下】我在CSDN上的精品博文汇总,收藏起来慢慢看
文章目录 1 写在前面 2 精品博文汇总 3 更多分享 1 写在前面 就在上周,我在CSDN的原创博文数量正式突破 100+,顺利拿下 CSDN博客专家的称号,前前后后耗时有4-5年吧,不过中间有两年 ...
- arm el2与el3_armv8 memory translation
AArch32,arm的32bit架构: AArch64,arm的64bit架构: ARMv8.2-LPA,是armv8.2中的新feature,扩大了IPA和PA的支持范围,从48bit扩展到52b ...
- ARM V8A体系结构-第五章 ARMv8指令集简介
概述 ARMv8体系结构中引入的最重要的变化之一是添加了64位指令集.该指令集补充了现有的32位指令集体系结构.此新增提供了对64位宽整数寄存器和数据操作的访问,以及使用64位大小的内存指针的能力.新 ...
- arm架构的linux芯片方案,ARM推64位处理器架构ARMV8及芯片[多图]
北京时间10月31日消息,ARM宣布推出ARMv8 64位架构指令集之际,Applied Micro Circuits Corporation(AMCC)就推出了面向服务器市场的处理器X-Gene. ...
- 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 ...
- 【arm cpu架构体系】【armV8】【armv7】【A系列的CPU】
为了给大家介绍一个更直观的感受,请看下面这张图 如图所示,绿色的部分都是v7-A的架构,蓝色的是v8-A架构,基本上绿色都是可以支持到32和64位的,除了A32,只支持到32位.在右边的每个部分,比如 ...
- ARM Cortex-A系列编程指南之ARMv8 A -- 第二章 ARMv8 A架构和处理器
从1985年开始ARM架构经历了如下阶段: ARMv4及早期版本 早期的使用ARM32bit指令集 ARMv4T ARM32bit指令集的基础上,追加了Thumb16bit指令集. 这是第一个被广泛授 ...
- linux arm寄存器,【寄存器】在armv8/armv7中ARM system control registers的区别
以SCTLR寄存器来阐述在armv7.armv8-arch64.armv8-arch64的使用方式 (其实大多数的系统寄存器,都是这种处理方式) SCTLR是system control regist ...
- arm el2与el3_ARMv8的学习笔记
0. 状态 执行态: AARCH64, AARCH32 最高异常等级只能工作在Aarch64, 其他EL可以工作在Aarch64或者Aarch32. SCR_EL3.RW, HCR_ ...
最新文章
- 无监督特定类别的网格重建(U-CMR) | ECCV
- vue 心跳监控_【笔记】vue中websocket心跳机制
- 转: javascript技术栈
- 禁止用户通过shell登录
- JavaScript Try Catch:异常处理说明
- table表格表头不懂,内容y轴滚动
- 用c/c++实现linux下检测网络接口状态【ZT】
- 删除数组中重复的元素
- PyQT简单入门--hello world
- LightGBM算法解析
- PostgreSQL 的 target_list分析(三)
- (转)工业机器人用什么语言编程的?
- 英国退出欧盟,欧盟还是欧盟吗?
- PICTURE writeup By K龙
- 2010年下半年卷烟品牌目录
- web前端编程实战实例:制作静态京东首页
- 【智能安全车载中控系统】(一)概览
- Android传感器的使用(1)——摇一摇切换图片
- 推荐一个开源的LMS系统ILIAS
- Java String字符串长度不足指定位数补0