【ARMv8 异常模型入门及渐进 1 -- 处理器运行模式及EL3/EL2/EL1学习】

这篇具有很好参考价值的文章主要介绍了【ARMv8 异常模型入门及渐进 1 -- 处理器运行模式及EL3/EL2/EL1学习】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

下篇文章:ARMv8 异常模型入门及渐进 2 - 通用寄存器介绍

1. ARMv8 异常模型简介

在ARM v7架构中的ARM核用PL的方式定义执行等级。在ARMv8中ARM核的执行等级划分如下图所示。
armv8处理器,linux用户态程序运行在哪个模式,# ARM System Exception,armv8,armv9,EL3,EL2,EL1,Secure world,normal world

表 1-1

ARM v8中一个ARM core 运行时可能具有两种状态:分别为

  • secure world
  • normal world。

两种状态下都有其对应的EL0, EL1

EL3是独立的,属于secure world,EL2是ARM core的虚拟化模式,目前大部分芯片公司都将该level放在normal world中。linux kernel运行在normal world的 EL1, linux的 user space 运行在normal world的 EL0.

TEE OS 运行在secure world的 EL1,
TA 运行在secure world的 EL0

而ARM core 的secure world与normal world状态是通过 EL3来实现相互切换的。
EL3只完成secure world与normal world的切换,从EL3出来之后要么进入到 TEE OS的kernel space, 也即是secure world的 EL1,要么进入到 normal world的 EL1(linux kernel space)。

EL2目前使用的较少,所以可以忽略掉

在ARMv8中,运行 level 的转换只从是从低级别往高级别迁移,而且运行level的迁移都是通过出发异常来实现的,而每次异常只会产生一个运行level的迁移, 也即是EL0只能迁移到EL1不能直接从EL0迁移到EL3EL0对应 userspace, EL1对应 kernel space, EL3对应 ARMv7 中的 moniotr(也即是运行权限)。

1.1.1 ARMv7 Trust Zone

ARMv7的后期引入了ARM TrustZone技术,所以在ARMv7中core的执行状态也分为两种。
armv8处理器,linux用户态程序运行在哪个模式,# ARM System Exception,armv8,armv9,EL3,EL2,EL1,Secure world,normal world
Normal World:

  • PL0 (UserSpace空间)
  • PL1(kernel OS, 比如linux OS)
  • PL2(Hyp mode)

SecureWorld

  • PL0 (UserSpace 比如TA应用)
  • PL1 (Trusted OS,比如QSEE,OP-TEE)
  • 无 PL2,Secure Moniter也是运行在PL1阶段的

1.1.2 ARMv7 Processor modes

在ARMv7中定义了不同的特权级别。分别是PL0, PL1, PL2(参考表1-2)。而每种特权级别依赖处理器模式Processor modes, 在ARMv7中定义了九种不同的处理器模式:

  • User 模式特权级别最低,属于PL0;
  • SVC 模式是进入Reset模式或者调用SVC指令,而SVC指令在ARMv7就是所谓的系统调用指令,比如当调用open 函数时,会触发系统调用,最终会通过SVC指令陷入内核的;
  • Monitor 模式,只有在Secure world才可以使用,monitor是用来切换normal world和secure world;
  • System 模式,一般是操作系统运作的模式;
  • Hyp 模式,运行在PL2,而且只有normal world才存在。

下篇文章:ARMv8 异常模型系列 2 - 通用寄存器介绍

推荐阅读:
https://blog.csdn.net/longwang155069/article/details/105010182
https://blog.csdn.net/longwang155069/article/details/105146014文章来源地址https://www.toymoban.com/news/detail-606268.html

到了这里,关于【ARMv8 异常模型入门及渐进 1 -- 处理器运行模式及EL3/EL2/EL1学习】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARMv8-AArch64 的异常处理模型详解之异常向量表vector tables

    目录 一,AArch64 异常向量表  二,栈指针以及SP寄存器的选择 三,从异常返回   异常向量表 (vector tables) 是一组存放于普通内存( normal memory) 空间的,用于处理不同类型异常的指令(exception handler)。 当异常发生时,处理器需要跳转到对应的异常处理器(exception handler)

    2024年02月22日
    浏览(39)
  • ARMv8-AArch64 的异常处理模型详解之异常等级、执行状态以及安全状态

    在了解AArch64异常等级模型之前,有必要先理解特权的概念。现代软件被开发成不同的模块,每个模块对系统和处理器资源有不同的访问级别。比如操作系统内核和用户应用程序的划分。操作系统内核需要高级别的权限来访问系统资源,然而应用程序应当被限制其配置系统的能

    2024年02月03日
    浏览(29)
  • Spring MVC异常处理【单个控制异常处理器、全局异常处理器、自定义异常处理器】

    目录 一、单个控制器异常处理 1.1 控制器方法 1.2 编写出错页面 1.3 测试结果 二、全局异常处理 2.1 一个有异常的控制器类 2.2 全局异常处理器类 2.3 测试结果  三、自定义异常处理器 3.1 自定义异常处理器 3.2 测试结果 往期专栏文章相关导读  1. Maven系列专栏文章 2. Mybatis系列

    2024年02月16日
    浏览(29)
  • 浅析ARMv8体系结构:异常处理机制

    异常处理指的是处理器在运行过程中发生了外部事件,导致处理器需要中断当前执行流程转而去处理异常事件的一种机制。在Intel处理器的术语中,中断与异常被分开来描述,但在ARMv8体系结构中,异常和中断统一被称为异常处理。 在ARMv8体系结构中,广义上的异常可以分成同

    2024年02月09日
    浏览(33)
  • SSM整合(三) | 异常处理器 - 项目异常的处理方案

    异常处理器快速入门 程序开发过程中不可避免的会遇到异常现象 出现异常现象的常见位置与常见原因如下 : 框架内部抛出的异常:因使用不规范导致 数据层抛出的异常:因外部服务器故障导致(例如:服务器访问超时) 业务层抛出的异常:因业务逻辑书写错误导致(例如

    2024年02月02日
    浏览(34)
  • Spring异常处理器

     问题:   程序允许不免的在各层都可能会产生异常,我们该如何处理这些异常? 如果只是在方法里面单独使用 try… catch… 语句去一个一个的进行捕捉处理的话,那毫无疑问是不现实的,因为异常数量是非常庞大的并且对于异常的出现种类是不可预料的,于是我们可以使用

    2024年02月13日
    浏览(32)
  • 全局异常处理器

    前言:由于 Controller 调用 Services ,最后调用 Mapper 来操作数据库,若 Mapper 操作数据库出问题了,此时页面报错会按照调用的原路径层层上报,最后未经处理的异常会上报至框架,最后服务器会向前端返回一个 JSON 的报错数据,而前端接收的是对 Result 封装过的 data 对象中的

    2024年02月11日
    浏览(39)
  • SpringMVC之异常处理器

    SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolver。 HandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver(默认的)和 SimpleMappingExceptionResolver(自定义的)。 这里配置了两个异常,出现其中一个异常后跳转到error页面。 以上就是异

    2024年02月10日
    浏览(31)
  • 13、SpringMVC之异常处理器

    创建名为spring_mvc_exception的新module,过程参考9.1节和9.5节 SpringMVC 提供了一个处理控制器方法执行异常的接口:HandlerExceptionResolver HandlerExceptionResolver 接口的实现类有:DefaultHandlerExceptionResolver 和 SimpleMappingExceptionResolver 实际工作中,有时使用 SimpleMappingExceptionResolver 异常解析器

    2024年02月05日
    浏览(30)
  • Spring MVC 异常处理器

    如果不加以异常处理,错误信息肯定会抛在浏览器页面上,这样很不友好,所以必须进行异常处理。 系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图: 编写controller 在index.jsp里面定义超链接

    2024年01月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包