ARMv7 Processor modes
在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相关推荐
- ARM系列之ARM Trustzone 技术浅析(二)——— ARMv7-A Processor modes registers 的安全扩展
ARM系列之ARM Trustzone 技术浅析(二) Processor modes Registers ARM 引入 Trustzone 技术,最重要的改动就是 CPU 架构的调整.ARM tru ...
- arm linux s文件夹,armv7对应的CACHE操作相关文件解析
最近在使用TI的DRA726芯片.A15端需要访问图像,而图像是在外设空间的,用DMA拷贝到CACHE空间. 这样就导致了DMA的CACHE一致性的问题,需要在DMA之后清除所使用图像空间的数据CAC ...
- Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】...
原文地址:Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.c ...
- 编译配置(1)——ARMv7,ARMv8(AArch64) 浮点配置等相关知识
-mfpu -mfloat-abi 这两个编译器配置选项一般只适用于ARMv7及以下arm架构,对于ARMv8架构,对应的编译器是不能识别这两个编译配置的 arm-linux-gcc -march=a ...
- ARM(IMX6U)ARM Cortex-A7中断系统(GPIO按键中断驱动蜂鸣器)
参考:Linux之ARM Cortex-A7 中断系统详解 作者:一只青木呀 发布时间: 2020-09-16 16:07:22 网址:https://blog.csdn.net/weixin_453 ...
- Cortex-A7 MPCore 架构详细介绍(九种运行模式、内核寄存器组R0~R15,有特定的名字和功能)
目录 0.ARM架构的历史简介 1.Cortex-A7 MPCore(即多核) 简介 2.Cortex-A 处理器九种运行模式 3.Cortex-A 寄存器组(内核寄存器) 3.1通用寄存器 3.1. ...
- 完全内核移植–kernel3.15.3
目标平台 明远智睿 EK314 CPU I.MAX6Q 内核版本 3.15.3 编译器 arm-none-linux-gnueabi-gcc-4.8.3 1.下载纯净内核 2.配置Makefile 3 ...
- 非cpu0启动linux,SD卡无法启动Linux的问题及解决
最近在Zynq板上启动linaro桌面系统时,发现一个奇怪的问题,系统在启动到最后,已经打印了如下信息:[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on ...
- 赛灵思运行linux,玩转赛灵思Zedboard开发板(6):如何在Zedboard上运行linux下的应用程序?...
描述 电子发烧友网讯:ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 存储管理 + 外设)+ PL(programable Logic) 结构 ...
最新文章
- 视频动作定位的分层自关注网络:ICCV2019论文解析
- 给 Windows 驱动程序安装提速
- 通过先序和中序数组生成后续数组
- 三种SQLServer分页查询语句笔记
- linux 用户管理以及其他命令
- VLSM(可变长子网掩码)图表
- Linux学习总结(75)—— Linux history 命令实用技巧
- 一键环境安装包无法修改网站目录提示.user.ini权限问题解决方法
- (bfs)广度优先 实现图的遍历
- 【转】一个程序员分享8年的开发经验
- javacc 语法分析
- 倍福---Profinet主从通信
- python随机加减乘除_python实现随机加减法生成器
- 把N*N矩阵顺时针旋转90°输出(2018携程校招笔试题)
- 自己动手搭建家庭局域网(二),NAS存储+千兆网
- VUE报错rowserslist: caniuse-lite is outdated. Please run the following command: `npx browser
- 拼多多直播抽奖是什么?玩法介绍!
- 【shaw学习笔记day1】Python21天+人工智能预科学习日记
- MySQL执行过程(一条SQL从Java到数据库都经历了什么)
- android go预览版下载地址,Android 11 Go正式版-Android 11 Go安卓正式版预约 v1.0.0-友情手机站...