在ARMv7中定义了不同的特权级别。分别是PL0, PL1, PL2。而每种特权级别依赖处理器模式Processor modes

在ARMv7中定义了九种不同的处理器模式

User:就是所谓的用户模式,所处的级别最低,不能访问系统的所有资源。特权级别属于PL0

FIQ:Fast IRQ,快速中断模式,特权级别属于PL1

IRQ:中断模式,特权级别属于PL1

Supervisor:SVC模式或者进入reset模式,特权级别属于PL1

Monitor:Secture Monitor模式,只有在Secure world存在,特权级别属于PL1

Abort:Data Abort或者指令Abort模式,属于一种异常模式,特权级别属于PL1

Hyp:虚拟化模式,只存在于normal world。特权级别属于PL2

Undefined:未定义指令异常模式,特权级别属于PL1

System:系统级别模式,可以访问系统的所有资源,特权级别属于PL1

通过如下的图再来确认下,特权级别和处理器模式的关系。

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

再看一张更清晰的能表明处理器模式和特权级别关系的图

从这张图上可以清晰的看清楚各个特权级别,以及处理器模式所处在特权级别的位置。

ARMv7 Processor modes相关推荐

  1. ARM系列之ARM Trustzone 技术浅析(二)——— ARMv7-A Processor modes registers 的安全扩展

    ARM系列之ARM Trustzone 技术浅析(二) Processor modes Registers ARM 引入 Trustzone 技术,最重要的改动就是 CPU 架构的调整.ARM tru ...

  2. arm linux s文件夹,armv7对应的CACHE操作相关文件解析

    最近在使用TI的DRA726芯片.A15端需要访问图像,而图像是在外设空间的,用DMA拷贝到CACHE空间. 这样就导致了DMA的CACHE一致性的问题,需要在DMA之后清除所使用图像空间的数据CAC ...

  3. Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】...

    原文地址:Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.c ...

  4. 编译配置(1)——ARMv7,ARMv8(AArch64) 浮点配置等相关知识

    -mfpu -mfloat-abi 这两个编译器配置选项一般只适用于ARMv7及以下arm架构,对于ARMv8架构,对应的编译器是不能识别这两个编译配置的 arm-linux-gcc -march=a ...

  5. ARM(IMX6U)ARM Cortex-A7中断系统(GPIO按键中断驱动蜂鸣器)

    参考:Linux之ARM Cortex-A7 中断系统详解 作者:一只青木呀 发布时间: 2020-09-16 16:07:22 网址:https://blog.csdn.net/weixin_453 ...

  6. Cortex-A7 MPCore 架构详细介绍(九种运行模式、内核寄存器组R0~R15,有特定的名字和功能)

    目录 0.ARM架构的历史简介 1.Cortex-A7 MPCore(即多核) 简介 2.Cortex-A 处理器九种运行模式 3.Cortex-A 寄存器组(内核寄存器) 3.1通用寄存器 3.1. ...

  7. 完全内核移植–kernel3.15.3

    目标平台 明远智睿 EK314 CPU I.MAX6Q 内核版本 3.15.3 编译器 arm-none-linux-gnueabi-gcc-4.8.3 1.下载纯净内核 2.配置Makefile 3 ...

  8. 非cpu0启动linux,SD卡无法启动Linux的问题及解决

    最近在Zynq板上启动linaro桌面系统时,发现一个奇怪的问题,系统在启动到最后,已经打印了如下信息:[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on ...

  9. 赛灵思运行linux,玩转赛灵思Zedboard开发板(6):如何在Zedboard上运行linux下的应用程序?...

    描述 电子发烧友网讯:ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 存储管理 + 外设)+ PL(programable Logic) 结构 ...

最新文章

  1. 视频动作定位的分层自关注网络:ICCV2019论文解析
  2. 给 Windows 驱动程序安装提速
  3. 通过先序和中序数组生成后续数组
  4. 三种SQLServer分页查询语句笔记
  5. linux 用户管理以及其他命令
  6. VLSM(可变长子网掩码)图表
  7. Linux学习总结(75)—— Linux history 命令实用技巧
  8. 一键环境安装包无法修改网站目录提示.user.ini权限问题解决方法
  9. (bfs)广度优先 实现图的遍历
  10. 【转】一个程序员分享8年的开发经验
  11. javacc 语法分析
  12. 倍福---Profinet主从通信
  13. python随机加减乘除_python实现随机加减法生成器
  14. 把N*N矩阵顺时针旋转90°输出(2018携程校招笔试题)
  15. 自己动手搭建家庭局域网(二),NAS存储+千兆网
  16. VUE报错rowserslist: caniuse-lite is outdated. Please run the following command: `npx browser
  17. 拼多多直播抽奖是什么?玩法介绍!
  18. 【shaw学习笔记day1】Python21天+人工智能预科学习日记
  19. MySQL执行过程(一条SQL从Java到数据库都经历了什么)
  20. android go预览版下载地址,Android 11 Go正式版-Android 11 Go安卓正式版预约 v1.0.0-友情手机站...

热门文章

  1. JSM jQuery插件开源
  2. java有函数吗_java有函数吗?
  3. 消防设施操作员考试真题、模拟练习题库(6)
  4. Matlab中的两种除法
  5. 多线程——生产者消费者模型
  6. Mac安装brew,国内推荐使用
  7. Keras安装+Pycharm配置Keras
  8. Matlab:创建字符串数组
  9. 超级实用——用word与谷歌翻译将英文PDF文档翻译成中文,免费无限制之美
  10. POI(excel)中WorkBook和Sheet应用实践总结