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

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

3天内不再提示

ARMv7-A工作模式介绍

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-09-11 16:31 次阅读

TF-A 一开始是为 ARMv8 准备的,ARMv8 最突出的特点就是支持 64 位指令,但是为了兼容原来的 ARMv7,ARMv8提供了两种指令集:AAarch64 和 AArch32,根据字面意思就是 64 位和 32 位,其中 AArch32 和 ARMv7基本一样(会多一些其他操作指令)。

安全不能仅仅依靠软件来实现,也是需要硬件支持的,比如 ARM处理器就有不同的运行等级,运行在低等级(非安全模式)的应用就不能访问高等级(安全模式)的资源,以此来保证敏感资源的安全性。

ARMv7-A 工作模式

以前的 ARMv7 处理器有 7 中运行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef 和 System。新的ARMv7-A 架构加入了 TrustZone安全扩展,所以就新加了一种运行模式:Monitor,新的处理器架构还支持虚拟化扩展,因此又加入了另一个运行模式:Hyp,所以 Cortex-A7 处理器有 9种处理模式,如表所示:

图片图片

不同的处理器模式下,CPU 对于硬件的访问权限不同,叫做 PrivilegeLevel(特权等级),一共有两个特权级别:Privilege(特权级)和 non-privilege(非特权级)。其中只有User 模式处于non-privilege,也就是非特权级,剩下的 8 个模式都是 privilege(特权级)。

系统启动以后应用软件都是运行在 User模式,也就是非特权级,这个时候处理器对于敏感资源的访问是受限的,如果要访问这些敏感资源就需要切换到对应的工作模式下。

ARMv7-A 对 Privilege Level 进行了命名:PL0 和 PL1,后来也出现了 PL2,用于虚拟扩展。ARMv7-A 新增的Monitor 模式就是针对安全扩展的,为了支持 TEE 而引入的。

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

    关注

    68

    文章

    19281

    浏览量

    229783
  • 嵌入式
    +关注

    关注

    5082

    文章

    19118

    浏览量

    305051
  • Linux
    +关注

    关注

    87

    文章

    11303

    浏览量

    209436
  • 模型
    +关注

    关注

    1

    文章

    3241

    浏览量

    48832
收藏 人收藏

    评论

    相关推荐

    armv7 generic timer使用笔记

    armv7-A架构中每个CPU核心都包含自己的私有定时器,所有cpu的定时器共享一个System counter, System counter负责产生计数,传递到每个核心的私有定时器
    的头像 发表于 09-27 15:10 2641次阅读
    <b class='flag-5'>armv7</b> generic timer使用笔记

    ARMv7-A架构的实现中SIMD和VFP的扩展实现是可选的吗?如何了解某控制器是否支持这些实现?

    ,如果更换其他ARMv7-A实现的内核(如Cortex A8),如何确定该实现是否支持?第一次提问,如果表述不清楚请见谅!谢谢!
    发表于 07-01 16:33

    ARMv8-A AArch32主要特性

    Cortex-A32产品介绍ARMv8-A AArch32主要特性ARMv7-M与AArch32的不同之处软件从ARMv7-M移植到
    发表于 02-19 06:20

    浅析ARMv7-A体系架构下的MMU的基本原理

    。MMU 主要功能之一是虚拟地址到物理地址的转换,这个需要软件和硬件配合完成,软件需要针对不同的硬件进行策略。这里主要分析 ARMv7-A 体系架构下的 MMU 的基本原理。VMSA 是针对
    发表于 05-24 16:54

    如何在Armv7-A系列芯片上根据错误调用栈来debug呢

    本周解决了两个在 Armv7-A 系列芯片上出现的错误,包括一个由于软浮点配置导致的未定义指令错误以及一个由于数据未对齐导致的 data abort 错误,通过解决这两个问题,学会了如何在 A 系列
    发表于 06-13 17:42

    Armv8-A构架中Armv8.6-A引进的最新功能介绍

    :细化的trap从Armv7-A开始引入虚拟化以来,arm持续改进虚拟化的支持。一个虚拟化关键的支持是trap虚拟机执行的一些操作。目的是为了虚拟化这些操作或是让hypervisor充当Guest
    发表于 07-29 15:29

    介绍Armv8.6-A引进的一些新功能的概况

    运算的指令。更多有关arm BF16支持的信息可以在这个神经网络的帖子找到。虚拟化和系统管理相关的增强虚拟化:细化的trap从Armv7-A开始引入虚拟化以来,arm持续改进虚拟化的支持。一个虚拟化关键
    发表于 08-08 14:16

    Armv8-AArmv9-A的内存属性和属性介绍

    1. 本指南介绍Armv8-AArmv9-A的内存属性和属性。它首先解释内存的属性来自何处,如何分配到内存区域,然后介绍现有的不同属性,并解释内存顺序的基本特性。这一信息对开发低级别
    发表于 08-02 09:03

    ARM Cortex-A5浮点单元技术参考手册

    Cortex-A5 FPU是ARMv7浮点架构的VFPv4-D16实现。它提供了低成本的高性能浮点计算。 FPU支持ARM®体系结构参考手册、ARMv7-AARMv7-R版本中描述的
    发表于 08-02 08:05

    ARM体系结构参考手册ARMv7-AARMv7-R版本

    提前(AOT)编译的特定支持。 ·决定处理器如何运行的模式和状态,包括当前的执行特权和安全性。 ·例外模式。 ·内存模型,定义内存排序和内存管理: -ARMv7-A架构配置文件定义虚拟内存系统架构
    发表于 08-12 07:46

    ARM Cortex-A系列ARMv8-A程序员指南

    。 有关ARMv7-A架构的一般介绍,请参阅ARM®Cortex®-A系列程序员指南。 本指南还可以帮助您熟悉本卷中讨论的一些概念。 然而,ARMv8-A架构配置文件向后兼容早期版本,
    发表于 08-22 07:22

    如何将软件应用程序从ARMv5迁移到ARMv7-A/R

    5。 本应用笔记还假设您具有ARMv5的软件开发经验。 假设主目标平台是围绕ARMv7-A处理器构建的。 由于ARMv7-AARMv7-R有许多重叠的区域,本文档的一部分也适用于
    发表于 08-29 06:51

    ARMv7ARMv7的体系结构参考手册免费下载

    ARM® Architecture Reference Manual ARMv7-A and ARMv7-R edition
    发表于 09-28 08:00 27次下载
    <b class='flag-5'>ARMv7</b>和<b class='flag-5'>ARMv7</b>的体系结构参考手册免费下载

    ARMv8工作模式有哪些

    ARMv8 工作模式 ARMv8 没有 Privilege level 的概念,取而代之的是 Exception level(异常级别),简称为EL,用于描述特权级别,一共有 4 个级
    的头像 发表于 09-11 16:34 1487次阅读
    <b class='flag-5'>ARMv</b>8<b class='flag-5'>工作</b><b class='flag-5'>模式</b>有哪些

    ARMv7-A处理器模式与特权等级

    对于现代操作系统,通常情况下用户的应用程序运行在用户态,操作系统内核运行在内核态。用户态的应用对于系统硬件资源的访问是受限的,内核态则能够访问所有的系统硬件资源。操作系统的用户态和内核态是根据处理器的特权等级和运行模式进行硬件隔离的,这也极大的提高了操作系统的安全性。
    的头像 发表于 10-21 16:19 1054次阅读
    <b class='flag-5'>ARMv7-A</b>处理器<b class='flag-5'>模式</b>与特权等级