0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARMv8工作模式有哪些

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-09-11 16:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ARMv8 工作模式

ARMv8 没有 Privilege level 的概念,取而代之的是 Exception level(异常级别),简称为EL,用于描述特权级别,一共有 4 个级别:EL0、EL1、EL2 和 EL3,数字越大,级别越高,权限越大!这四个 EL 级别对应的应用场合如下:

EL0:一般的应用程序 EL1:操作系统,比如 Linux EL2:虚拟化(Hypervisor),虚拟机管理器 EL3:最底层的安全固件,如 ARM Trusted Firmware(ATF/TF-A)

ARMv8 提供了两种安全状态:Secure 和 Non-secure,也就是安全和非安全,Non-secure 也就是正常世界(NormalWorld)。我们可以在 Non-secure 运行通用操作系统,比如 Linux,在 Secure 运行可信操作系统,比如OP-TEE,这两个操作系统可以同时运行,这个需要处理器支持 ARM 的 TrustZone 功能。在 Normal world 和 Secure world下,ARMv8 个 EL 等级对应的内容如图所示:

图片

在 ARMv8 的 AArch32 模式下,处理器模式如图所示:

图片

在 AArch32 模式下,EL0~LE3 对应 ARMv7 的不同工作模式:

EL0:对应 ARMv7 的 User 工作模式

EL1:对应 ARMv7 的 SVC、ABT、IRQ、IRQ、UND 和 SYS 这 6 中工作模式

EL2:对应 ARMv7 的 Hyp 工作模式

EL3:对应 ARMv7 的 Mon 工作模式

可以看出,只有 EL3 是用于安全监视器的,所以 TF-A 主要工作在 EL3 下,在看 TF-A源码的时候会看到大量的“EL3”字样的文件或代码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20149

    浏览量

    328871
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217981
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128635
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84766
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ARM重新定义ARMv8新架构,ARMv8新架构特性解说

    本文从ARMv8-A产生的背景开始,对它进行一个简单的介绍,使大家从整体上,对ARMv8一个简单的了解。
    的头像 发表于 10-08 17:02 1.2w次阅读
    ARM重新定义<b class='flag-5'>ARMv8</b>新架构,<b class='flag-5'>ARMv8</b>新架构特性解说

    ARMv8架构资料分享

      随着开发工作逐渐迁移到 ARMv8 的 64 位平台,因此必要尽快熟悉 ARMv8 架构。ARMv8 与先前较为熟悉的
    发表于 03-21 14:50

    ARMv8架构概述

    Armv8 OverviewARMv7与Armv8的升级示意如下:Aarch64指令集Aarch64的32个通用寄存器引用和描述如下,与Aarch32寄存器相比如下,在ARM 32位系统中,函数参数
    发表于 05-13 10:31

    ARMv8 Vector table问题该如何更好地去理解呢

    目前正在学习ARMv8 Arch Ref Manual.D1.10.2 Exception vectors有点疑惑:Table D1-6 定义了一个Vector Table应该具有的items我们
    发表于 08-17 15:54

    NEON在armv8(arch64)下如何去使用呢

    我在armv8下(arch64)下使用neon中遇到一些疑问,希望得到大家解答1、在armv8下是编译的时候使用了O3优化,相关计算就会自动使用neon吗2、同样一段计算函数,计算速度是不是NEON
    发表于 09-08 11:34

    Armv7和Armv8系统中跟踪的高级视图详解

    本指南主要介绍Armv7系统和Armv8系统中跟踪的高级视图,最高可达Armv8.4版本。 该指南涵盖: •跟踪是什么以及如何使用 •跟踪体系结构是如何定义的,以及它如何映射到不同的跟踪组件实现 •在Arm系统中可以看到哪些跟踪
    发表于 08-02 06:11

    如何使用CSAT调试Armv8平台

    本教程概述了如何使用CoreSight Access Tool执行低级调试(CSAT)与Armv8目标。低级调试允许您: •操作单个寄存器,包括不能正常访问的调试寄存器 应用程序级调试器。 •执行
    发表于 08-02 10:27

    ARM推新品:ARMv8首次支援64位元指令集

    处理器授权大厂ARM于上周(10/27)公布最新处理器规格ARMv8架构,一举将其产品线推入64位元市场。ARMv8ARMv7架构为基础,并内含64位元指令集,预估可将32/64位元应用优势极大化。
    发表于 11-01 09:32 1707次阅读

    TRACE32支持ARMv8架构

      ARMv8架构是首个包括64位执行模式的ARM架构,允许处理器将64位执行模式与32位执行模式相结合。开发该版本ARM指令系统的关键技术之一是将ARM处理器工艺的高能效优势融入64
    发表于 09-12 19:01 11次下载

    从软件开发的角度概述ARMv8处理器架构中的虚拟化操作

    ARMv8处理器CPU 基于ARMv8的系统中的虚拟化工具在这些系统中起着特殊的作用,它由几个组件组成,虽然ARMv7具特殊的CPU模式
    发表于 10-13 20:00 1180次阅读
    从软件开发的角度概述<b class='flag-5'>ARMv8</b>处理器架构中的虚拟化操作

    ARMv8处理器体系结构中的虚拟化功能

    基于ARMv8的系统中的虚拟化设施在这些系统中扮演着特殊角色,并且由几个组件组成。尽管ARMv7具特殊的CPU模式来运行虚拟机监控程序作为扩展,但在
    发表于 05-13 10:48 2471次阅读
    <b class='flag-5'>ARMv8</b>处理器体系结构中的虚拟化功能

    Armv8架构及虚拟化介绍

    ARMv8基本概念 (1)执行状态(execution state):处理器运行时的环境,包括寄存器的位宽、支持的指令集、异常模型、内存管理及编程模型等。ARMv8体系结构定义了两个执行状态: AArch64:64位的执行状态 提供31个64位的通用寄存
    的头像 发表于 04-16 10:45 8184次阅读

    ARMv7-A工作模式介绍

    TF-A 一开始是为 ARMv8 准备的,ARMv8 最突出的特点就是支持 64 位指令,但是为了兼容原来的 ARMv7,ARMv8提供了两种指令集:AAarch64 和 AArch3
    的头像 发表于 09-11 16:31 1674次阅读
    <b class='flag-5'>ARMv</b>7-A<b class='flag-5'>工作</b><b class='flag-5'>模式</b>介绍

    armv8 u-boot的启动介绍

    ,接着验签启动BL2,BL2根据具体设计启动BL31或者BL33,BL32只在有BL31时才可能会存在并被验签加载启动。 armv8分为Secure World和Non-Secure World
    的头像 发表于 12-07 11:09 4038次阅读
    <b class='flag-5'>armv8</b> u-boot的启动介绍

    u-boot armv8链接脚本

    u-boot armv8链接脚本 在进行源码分析之前,首先看看u-boot的链接脚本,通过链接脚本可以从整体了解一个u-boot的组成,并且可以在启动分析中知道某些逻辑是在完成什么工作。 在
    的头像 发表于 12-07 11:19 1331次阅读