close
当前位置: 物联网在线 > 技术文库 >

讨论的是ARM体系的CPU的7种工作模式

ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。本文主要讨论的是ARM体系的CPU的7种工作模式。


  一、存储器格式(字对齐)


  Arm体系结构将存储器看做是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存储的字数据,一次排列。作为32位的微处理器,arm体系结构所支持的最大寻址空间为4GB。


  存储器格式


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


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


  指令长度


  Arm微处理器的指令长度是32位的,也可以为16位(thumb状态下)。Arm微处理器中支持字节(8位),半字(16位),字(32位)三种数据类型,其中,字需要4字节对齐,半字需要2字节对齐。


  注:所谓的指令长度是一条完整的指令的长度,而不是单纯的mov这3个字母长度。


浅谈ARM体系CPU的7种工作模式


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


  1、ARM状态:处理器执行32位的字对齐的ARM指令;


  2、Thumb状态:处理器执行16位的、半字对齐的Thumb指令。


  在程序运行的过程中,可以在两种状态之间进行相应的转换。处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。


  CPU上电处于ARM状态。


  三、ARM体系的CPU有以下7种工作模式


  1、用户模式(Usr):用于正常执行程序;


  2、快速中断模式(FIQ):用于高速数据传输;


  3、外部中断模式(IRQ):用于通常的中断处理;

  4、管理模式(svc):操作系统使用的保护模式;


  5、数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储以及存储保护。


  6、系统模式(sys):运行具有特权的操作系统任务;


  7、未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件。


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


  特权模式


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


  异常模式


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


  (1)用户模式


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


  (2)系统模式


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


  (3)一般中断模式


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


  (4)快速中断模式


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


  (5)管理模式


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


  (6)终止模式


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


  (7)未定义模式


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


(责任编辑:ioter)

用户喜欢...

SAM L10 /L11ARM®Cortex®-M23 MCU

微芯片技术SAM L10 / L11 ARM皮质-M23 MCU是超低功率,32位MCU用的TrustZone,加密,和增强的正温度系数(PTC)。所述SAM L10 / L11的MCU来与32MHz的ARM皮质-M23芯与单周期硬件乘法器,硬件除法,嵌套矢量中...


基于高性能32位Arm®Cortex®-M4 RISC处理器 ATSAM4E8

Microchip Technology ATSAM4E8基于臂的闪存微控制器(MCU)基于高性能32位ArmCortex-M4 RISC处理器,并包含一个浮点单元(FPU)。ATSAM4E8 MCU的最高速度为120MHz,具有高达1024 KB的闪存,2 KB的高速缓存和高达...


ARM在AI中受到攻击

用于加速客户端机器学习任务的近十多种处理器内核正在竞争SoC中的一些点,其中一些已经被设计用于智能手机。他们的目标是比处理器IP巨人Arm更快地获得市场优势,预计将很快宣布它自己的...


以前的英特尔Exec能否成功采用旧的ARM SoC?

由英特尔总裁ReneJames领导的创业公司安培计算公司(Ampere Computing)推出了基于ARM的服务器SoC,承诺加速超大规模云计算创新。 蕾妮詹姆斯 詹姆斯的新公司将瞄准由英特尔主导的快速增长的数据...


ARM还是x86?用于LPWAN网关的Qseven模块

来自法国物联网和嵌入式系统工程专家EXPEMB的FlexGate低功耗广域网(LPWAN)网关基于congatec公司的Qseven计算机模块。这使供应商可以自由选择任何ARM或x86低功耗处理器的客户需求。 连接的分布式...


ARM工作模式

ARM工作模式根据功能不同,可分为7类: User Mode:用户模式。操作系统的Task一般以这种模式执行。User Mode是ARM唯一的非特权模式,这表示如果CPU处于这种模式下,很多指令将不能够执行,因此...


[原创] On Semi RSL10多协议无线系统级芯片(SoC)开发方案

On Semi公司的RSL10是超低功耗的多协议无线系统级芯片(SoC),采用ARMR CortexRM3处理器(48MHz)和LPDSP32 DSP核(音频CODEC),支持蓝牙...


恩智浦助力孩之宝与Harmonix推出的动感混音游戏DROPMIX近场通信体验

恩智浦半导体作为近场通信(NFC)技术的发明者,非常荣幸地宣布其与全球游戏和娱乐公司孩之宝公司(纳斯达克代...


通俗讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系!

首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件...


[原创] NXP LPCXpresso54628低功耗ARM MCU开发方案

NXP公司的LPCXpresso54628是基于ARM Cortex-M4核的低功耗MCU,具有丰富外设,非常低功耗和增强的调试特性.ARM Cortex-M4 CPU采用3级...