背景:为什么会有执行状态的切换

在一个大系统中,我们所说这它是64位的,还是32位的,往往说的是kernel内核。事实上,在这么的一个大系统中,有着多级镜像,并非全都是64位的,也并非全都是32位的。如下一张图,便展示了MTK SOC系统中常用的一个执行状态

执行状态的切换规则

ARMV8/ARMV9的执行状态有两种:aarch64和aarch32
它们的切换规则是:

  • aarch32到aarch64的切换,必需是触发异常,产生的low exception level 到 high exception level的切换。
  • aarch64到aarch32的切换,必需是异常返回,产生的high exception level 到 low exception level的切换。
  • 在 exception level不变的情况下,产生的异常和异常返回,都不能改变excution state.

再简而言之,总结起来其实就是:

  • high exception level如果是aarch64,那么low exception level 可以是aarch64或aarch32
  • high exception level如果是aarch32,那么low exception level 只能是aarch32

寄存器介绍

SCR_EL3

如果实现了EL3,那么PE复位后将直接是aarch64.
SCR_EL3.RW 将决定着lower exception level的执行状态

HCR_EL2

如果实现了EL2,且EL2的执行状态是aarch64.
HCR_EL2.RW 将决定着EL1的执行状态

PSTATE和SPSR_ELx

如果EL1是aarch64,那么SPSR_EL1.M[4] 将决定着EL0的执行状态

代码导读

ARMV8/ARMV9的执行状态的切换相关推荐

  1. armv8/armv9的简介-学习这一篇就够了

    引流关键词: optee.ATF.TF-A.Trustzone.optee3.14.MMU.VMSA.cache.TLB.arm.armv8.armv9.TEE.安全.内存管理.页表- 快速链接: .

  2. [armv9]-ARMV8/ARMV9安全架构介绍(ARMv9 CCA)

    文章目录 1.术语 2.Architecture overview 2.1.ARMV7的软件模型 2.2.ARMV8-arch32的软件模型 2.3.ARMV8-arch32的软件模型 2.4.ARM ...

  3. ARMV8/ARMV9指令集概述(翻译)

    快速链接: .

  4. armv8/armv9页表属性(page descriptor)的详细介绍

    快速链接: .

  5. 深度学习armv8/armv9 cache的原理

    快速链接: .

  6. [ARM异常]-armv8/armv9同步异常的介绍

    快速链接: .

  7. [ARM异常]-armv8/armv9异步异常类型、路由、屏蔽

    快速链接: .

  8. ARMv8/ARMv9指令集概述

    目录 下载地址 1. 首先 : 点赞.关注.评论 支持一下行不 ? 2.其次,属于装13 系列, 其实真没啥价值,拉几,不用看, 更不要有期待. 预览开始: 下载地址 ( 注意 : 下载之前,您是否完 ...

  9. armv8/armv9/aarch64/arm64/A64/架构/IP你不知道的那些事

    快速链接: .

最新文章

  1. 解压和生成 system.imgdata.img ( ext4格式)
  2. 重磅 | 周志华最新论文:首个基于决策树集成的自动编码器,表现优于DNN
  3. java digester_Digester
  4. iOS属性之assign,copy,retain的区别以及weak和strong的区别
  5. 逆向最大匹配分词算法C#
  6. 【转】ABAP的坑5
  7. solidworks入门实例画图_分享用SolidWorks绘制的鸡蛋托盘,学会借助于曲面生成波浪线草图...
  8. IE11修复-Win7安装IE11无法打开怎么办
  9. eNSP下的vlan划分实验
  10. Discuz 模板目录
  11. 前馈神经网络——神经元
  12. LeetCode--初级算法--数组篇--第十题--有效的数独
  13. CPU核心、进程、线程
  14. 主从模式的数据库搭建(主从复制)
  15. mindspore 1.3.0版本GPU环境下源码编译的正式工作——完整的编译过程
  16. 科学家称五年内将3D打印人类心脏
  17. 蓝海创意云丨这六款软件,帮助制片高效规划拍摄计划
  18. python手机屏幕控制_用Python控制墨水屏
  19. 785nm 600mW 稳波长窄线宽光纤输出半导体激光器模块 YM600NU-785-105FC-PC产品资料
  20. 非静压模型SWASH学习(4)——溃坝流模拟算例(Dam break over wet bed)

热门文章

  1. matlab程序崩溃怎么解决,跪求matlab达人帮我看看程序,我实在是要崩溃了......
  2. word受权限保护无法打开_双击文档无法打开到底是啥毛病?简单一招解决
  3. java des加密解密_JAVA和c# 之间数据通讯时通过DES进行加密解密
  4. C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...
  5. 成功解决AttributeError: ‘NoneType‘ object has no attribute ‘shape‘
  6. 成功解决PermissionError: [Errno 13] Permission denied: ‘F:\\File\\data\\123.csv‘
  7. ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现
  8. CV之detectron2:detectron2安装过程记录
  9. 成功解决tensorflow\contrib\learn\python\learn\datasets\base._internal_retry.locals.wrap.locals.wrapp
  10. pynlpir.LicenseError: Your license appears to have expired. Try running pynlpir update.