ARM的七种工作模式

发布者:会飞的笨鱼最新更新时间:2022-04-02 来源: eefocus关键字:ARM  工作模式 手机看文章 扫描二维码
随时随地手机看文章

一、ARM处理器7种工作模式(特权模式 特权模式异常模式)

  1. 用户模式(USR):正常程序执行模式,不能直接切换到其他模式

  2. 系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权

  3. 快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式

  4. 中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式

  5. 管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发)

  6. 中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处

  7. 未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式

  8. 表3-1 ARM处理器工作模式

    处理器工作模式

    特权模式

    异常模式

    说明

    用户(user)模式



    用户程序运行模式

    系统(system)模式

    该组模式下可以任意访问系统资源


    运行特权级的操作系统任务

    一般中断(IRQ)模式

    通常由系统异常状态切换进该组模式

    普通中断模式

    快速中断(FIQ)模式

    快速中断模式

    管理(supervisor)模式

    提供操作系统使用的一种保护模式,swi命令状态

    中止(abort)模式

    虚拟内存管理和内存数据访问保护

    未定义指令终止(undefined)模式

    支持通过软件仿真硬件的协处理

    CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网卡上有数据到达,产生中断信号,CPU自动切换到一般中断模式下处理网卡数据(普通应用程序没有权限直接访问硬件),处理完网卡数据,返回到用户模式下继续执行用户程序。

    特权模式

    除用户模式外,其它模式均为特权模式(Privileged Modes)。ARM  内部寄存器  和一些  片内外设  在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。

    异常模式

    特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入。比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入中止异常模式,执行未定义指令时进入未定义指令中止异常模式。其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式

    7种工作模式介绍

    (1)用户模式:

    用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。

    (2)系统模式:

    系统模式是特权模式,不受用户模式的限制。用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。

     说明:用户模式与系统模式两者使用相同的寄存器,都没有SPSR(Saved Program Statement Register,已保存程序状态寄存器),但系统模式比用户模式有更高的权限,可以访问所有系统资源。

    (3)一般中断模式:

    一般中断模式也叫普通中断模式,用于处理一般的中断请求,通常在硬件产生中断信号之后自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源。

    (4)快速中断模式:

    快速中断模式是相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中。

    (5)管理模式(Supervisor,SVC) :

    管理模式是CPU上电后默认模式,因此在该模式下主要用来做系统的初始化,软中断处理也在该模式下。当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式。

    说明:系统复位或开机、软中断时进入到SVC模式下。

    (6)终止模式:

    中止模式用于支持虚拟内存或存储器保护,当用户程序访问非法地址,没有权限读取的内存地址时,会进入该模式,linux下编程时经常出现的segment fault通常都是在该模式下抛出返回的。

    (7)未定义模式:

    未定义模式用于支持硬件协处理器的软件仿真,CPU在指令的译码阶段不能识别该指令操作时,会进入未定义模式。

     

    说明:

    1、用户模式外,其它6种模式称为特权模式。所谓特权模式,即具有如下权利:

    a.MRS(把状态寄存器的内容放到通用寄存器);

    b.MSR(把通用寄存器的内容放到状态寄存器中)。

    由于状态寄存器中的内容不能够改变,因此要先把内容复制到通用寄存器中,然后修改通用寄存器中的内容,再把通用寄存器中的内容复制给状态寄存器中,即可完成“修改状态寄存器”的任务。

    2、剩下的六种模式中除去系统模式外,统称为异常模式。

    除用户模式外,其余6种工作模式都属于特权模式
    特权模式中除了系统模式以外的其余5种模式称为异常模式
    大多数程序运行于用户模式
    进入特权模式是为了处理中断、异常、或者访问被保护的系统资源

 

    硬件权限级别:系统模式 > 异常模式 > 用户模式

 

    快中断与慢中断区别:快中断处理时禁止中断

二、异常的优先级

            

三、存储器格式

  1. 大端格式:高字节在低地址,低字节在高地址

  2. 小端格式:高字节在高地址,低字节在低地址

四、ARM体系的CPU有两种工作状态

  1. ARM状态

  2. THumb状态

五、Linux操作系统与ARM工作模式

首先,ARM开发板在刚上电或复位后都会首先进入SVC即管理模式,此时、程序计数器R15-PC值会被赋为0x0000 0000;bootloader就是在此模式下,位于0x0000 0000的NOR FLASH或SRAM中装载的,因此、开机或重启后bootloader会被首先执行。

接着,bootloader引导Linux内核,此时、Linux内核一样运行在ARM的SVC即管理模式下;当内核启动完毕、准备进入用户态init进程时,内核将ARM的当前程序状态CPSR寄存器M[4:0]设置为10000、进而用户态程序只能运行在ARM的用户模式。

由于ARM用户模式下对资源的访问受限,因此、可以达到保护Linux操作系统内核的目的。

需要强调的是:Linux内核态是从ARM的SVC即管理模式下启动的,但在某些情况下、如:硬件中断、程序异常(被动)等情况下进入ARM的其他特权模式,这时仍然可以进入内核态(因为就是可以操作内核了);同样,Linux用户态是从ARM用户模式启动的,但当进入ARM系统模式时、仍然可以操作Linux用户态程序(进入用户态,如init进程的启动过程)。

即:Linux内核从ARM的SVC模式下启动,但内核态不仅仅指ARM的SVC模式(还包括可以访问内核空间的所有ARM模式);Linux用户程序从ARM的用户模式启动,但用户态不仅仅指ARM的用户模式


关键字:ARM  工作模式 引用地址:ARM的七种工作模式

上一篇:[ARM裸机程序][2]TQ2440、ADS1.2、JLINK建立集成开发环境
下一篇:[ARM裸机程序][4]ARM寄存器详解

推荐阅读最新更新时间:2024-11-10 14:47

第1天-ARM汇编指令MOV/MVN
MOV : 传送 (Move) MOV{条件}{S} , dest = op_1 MOV 从另一个寄存器、被移位的寄存器、或一个立即值装载一个值到目的寄存器。你可以指定相同的寄存器来实现 NOP 指令的效果,你还可以专门移位一个寄存器: MOV R0, R0 ; R0 = R0... NOP 指令 MOV R0, R0, LSL#3 ; R0 = R0 * 8 如果 R15 是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到 R15: MOV PC, R14 ; 退出到调用者 MOVS PC, R14 ;
[单片机]
ARM-Linux配置DHCP自动获取IP地址
备注: 内核版本:2.6.30.9 busybox版本:1.15.2 PC Linux和开发板Linux的工作用户:root 1.配置内核: Networking support --- Networking options --- * Packet socket * Unix domain sockets TCP/IP networking IP: kernel level autoconfiguration IP: DHCP support Network packet filtering framework (Netfilter) --- 2.配置busybox: Networking Utilities
[单片机]
Arm Tech Symposia 年度技术大会现已开放报名
作为 Arm® 最重要、规模最盛大的技术活动之一,Arm Tech Symposia 年度技术大会即将于 11 月 27 日、29 日及 12 月 1 日分别在深圳、北京、上海三城隆重举行。今年的技术大会回归线下,以“Arm 正在构建计算的未来”为主题,诚邀业内厂商、生态伙伴与开发者亲临现场,相互交流与学习,携手构建基于 Arm 技术的未来。 Arm Tech Symposia 将在三城带来超过 80 场主题演讲、技术分享与生态对话,并呈现丰富多样的现场演示。大会上午将由Arm高级副总裁及热门行业合作伙伴高管针对科技创新、产业发展带来主题演讲,共同畅谈产业趋势、技术洞察及前沿发展。 在 11 月 27 日的深圳场和 11
[嵌入式]
浅析arm汇编中指令使用学习
macro restore_user_regs ldr r1, ldr lr, ! @ !用来控制基址变址寻址的最终新地址是否进行回写操作, @ 执行ldr之后sp被回写成sp+#S_PC基址变址寻址的新地址 msr spsr,r1 @ 把cpsr的值保存到spsr中 ldmdb sp,{r0 - lr}^ @ lr= ,r13= ,r12= ,......,r0= @ 因为没对pc赋值,所以^的表示将数据恢复到User模式的 寄存器组中 mov r0,r0 add sp,sp,#S_FRAME_SIZE - S_PC movs pc,lr .endm 其
[单片机]
基于S3C2440和ARM的液晶显示器背光源节电调光方法介绍
引言 节能环保技术是当前世界所关注的焦点,在液晶显示模组中,背光源的功耗最高可占总功耗的50%以上。尤其在10in 以下显示产品如手机、PDA、MP3 等便携式设备中,基本采用电池供电,功耗问题尤为突出。为有效降低液晶显示器背光源的亮度,以达到节电目的,本文在ARM 开发平台上实现了一种基于直方图变换的背光源调光方法,实验证明,本文提出的方法在失真度为5%的情况下可实现背光节电约35%. 1 背光源调光方案 以TFT 液晶面板结构为例,包括背光、偏光片、液晶阵列、彩色滤光片等部分,人眼所感知的显示图像为上述各部分的综合效果。假设背光亮度归一化后设为b(为 区间实数),0 对应于背光关闭情况,1 对应于背光发光亮度最大情况。若光
[单片机]
基于S3C2440和<font color='red'>ARM</font>的液晶显示器背光源节电调光方法介绍
高通ARM服务器芯片高规格 或有机会抢占服务器市场
不少厂商尝试以ARM架构处理器打入资料中心市场,如果从设计能力、财力和研发稳定度等层面来看,高通(Qualcomm)或许有机会成功,而秘密武器就是日前在Hot Chips大会上发表的Falkor核心。 根据The Next Platform报导,代号为Amberwing的Centriq 2400芯片是高通开发的第五代客制ARM处理器,内建符合ARMv8规格的Falkor核心,也是继Cavium的ThunderX2芯片之后,另一个具有市场竞争力的ARM服务器芯片。 与其他ARM服务器芯片最大的不同在于高通拿掉了所有支援32位元的电路,只支援64位元的工作负载,目的是为了能在Amberwing芯片上塞入更多核心,加上过去15年
[半导体设计/制造]
从IP厂商视角看可穿戴
【引言】 目前市场上90%以上(300~500种)的可穿戴设备是基于ARMIP技术设计的,面向智能手环、智能手表、智能眼镜等不同的穿戴式应用,ARM都有对应的产品和解决方案。 【正文】 自去年开始,穿戴式行业开始了蓬勃的发展,各种各样充满新意的穿戴式设备不断被推向市场。目前市场上90%以上(300~500种)的可穿戴设备是基于ARMIP技术设计的,其中包括GearFit、Fitbit、Misfit等智能手环/腕带,三星、索尼、Pebble、阿迪达斯、土曼等智能手表,还有目前市面上主流的AndroidWear智能手表包括Moto360,以及GoPro随身摄像机、OakleyAirwave雪镜、Kopin的佩戴式电
[物联网]
从IP厂商视角看可穿戴
arm GIC介绍之一
GIC是ARM架构中及其重要的部分,本文只在公开ARM对应资料基础上,以MTK开发板为基础整理。个人理解之后记录,巩固和加深认识,仅此而已,如果有错误,欢迎指出。 1. GIC的概述 看过SOC架构的同学知道,CPU接受外部的中断处理请求,并进行处理,其实是一个被动接受的过程,这样好处是既能 保证主任务的执行效率,又能及时获知外部的请求,从而处理重要的设备请求操作。 如图: GIC的全称为general interrupt controller,主要作用可以归结为: 接受硬件中断信号,并进行简单处理,通过一定的设置策略,分给对应的CPU进行处理。 这样的图比较简单,可以看下在ARM完整的SOC结构中,其位置是什么样
[单片机]
<font color='red'>arm</font> GIC介绍之一

推荐帖子

乐鑫ESP8266 将如何与云服务器通信?
标准HTTP协议可用于连接到更新服务器。例如,当您的自定义服务器正在运行时,当ESP8266设备启动套接字并发送HTTP请求时:GET/your-bin-file-path.binHTTP/1.1主机:yourdomain.com连接:keep-alive缓存控制:max-age=0接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8用户代理:Mozi
火辣西米秀 国产芯片交流
Simplicity Studio支持跨平台了
SiliconLabs公司的SimplicityStudio也终于支持跨平台了。目前可以在Windows/Linux/Mac三种主流平台上运行了。在debian7上的运行效果,还在检查更新。http://cn.silabs.com/products/mcu/Pages/simplicity-studio.aspxSimplicityStudio支持跨平台了没用过这个环境Silicon的也没用过,就用过cp210xoutman了ljj3166发表
dcexpert 单片机
433MHz是我们的专属免费频段?
在我们国家免费,在其他国家不免费么?433MHz是我们的专属免费频段?回楼上的,百度了下:ISM频段即工业,科学和医用频段。一般来说世界各国均保留了一些无线频段,以用于工业,科学研究,和微波医疗方面的应用。应用这些频段无需许可证,只需要遵守一定的发射功率(一般低于1W),并且不要对其它频段造成干扰即可。ISM频段在各国的规定并不统一。如在美国有三个频段902-928MHz、2400-2484.5MHz及5725-5850MHz,而在欧洲900MHz的频段则有部份用于GSM通信。而2.
fish001 RF/无线
此板现在有官方QQ群吗?
现在碰到个问题,怎么核芯板上焊接的是512M的SDRAM?是我查错了吗?不知道是不是有官方学习群,如果没有,我可以建立一个群友学习群此板现在有官方QQ群吗?搞明白了,把b当B了,64M的。。。。。。。。,但还是想问有没有学习群?本次活动的全部支持都在论坛里进行,这样方便后来者查寻问题,也方便我们今后整理出一个FAQ,如果用QQ群就难以达到效果了。。。但出现问题时的实时性就要差了一点了。。。。。。。。,就像我刚才碰到那么2的问题,自己还和寻思寻思,但有群友的话,一句话就茅塞顿开了。。。。
ethunter 嵌入式系统
单片机的延时问题
voiddelay(intx){inti,j;for(i=0;ix;i++)//计数X次,延长X*Y时间。for(j=1,j=60;j++);//计数60次延迟Y时间?}单片机是12M的晶振,请教下,它的延时问题。单片机的延时问题网上搜索一下,有延时计算软件我想知道它的每次运算能延时多久。不是只想要他的结果。回复沙发conghaisheng的帖子12*X*Y/Fsoc就是粗略的答案啦!Fsoc是为12M,说
lzcqust 单片机
瑞萨e2studio如何去除汉化
#背景安装e2studio时选择了中文语言,但使用之后发现汉化不完全,而且某些地方汉化词不达意。想把汉化去掉,但是网络并没有多少资料,而且过时了,不生效。经过我一番摸索,终于找到了法门。#卸载汉化过程##卸载插件入口从菜单栏**Help**-->**Aboute2studio**进入。##进入安装细节在弹出的界面点击**InstallationDetails**##搜索中文插件搜索ch开头的插件,找到三个,全部卸载。##卸载完成重启
CoderX9527 DigiKey得捷技术专区
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved