ARM体系架构—ARMv7-A处理器模式及寄存器

发布者:温暖微笑最新更新时间:2021-10-21 来源: eefocus关键字:ARM体系架构  寄存器 手机看文章 扫描二维码
随时随地手机看文章

一、ARMv7-A处理器模式

在这里插入图片描述

ARMv7架构支持安全扩展,如果使能了安全扩展,ARMv7-A架构分为安全模式(Secure State)和非安全模式(Non-secure State)两个世界。

在非安全模式下,存在三种运行特权PL0,PL1和PL2(privilege level)。


If the Virtualization Extensions are implemented there is a privilege model different to that of previous architectures. In Non-secure state there can be three privilege levels, PL0, PL1 and PL2.

在这里插入图片描述

image.png

二、ARMv7-A通用寄存器

ARMv7-A架构提供了16个32位通用寄存器(R0-R15)和一个程序状态寄存器CPSR(Current Program Status Register),在异常模式下,可以访问SPSR(Saved Program Status Register),在异常模式下,SPSR用于保存当前CPSR寄存器值。其中R0-R14可以用于普通数据存储,R15是程序计数器PC(program counter)。

在这里插入图片描述

以上寄存器可能因运行模式不同而对应不同的物理存储位置,上图中蓝色区域即如此,它们使用不同的物理存储,通常只有在进程以特定模式执行时才可访问。


R0-R7在任何模式下都对应相同的物理存储,称之为未分组寄存器;

R8-R14根据模式不同对应不同的物理存储,称之为分组寄存器;

R13(SP)在User和Sys模式下对应相同的物理存储,FIQ,IRQ,ABT,SVC,UND,MON,HYP模式分别对应不同的物理存储。R13在ARM架构中用于SP堆栈指针(stack pointer)。MON模式用于管理安全与非安全模式,HYP模式用于管理虚拟操作系统(GuestOS)。

R14(LR)在User,Sys和HYP模式下对应相同的物理存储,FIQ,IRQ,ABT,SVC,UND,MON模式分别对应不同的物理存储。R14在ARM架构中用于LR链接寄存器,在每种模式下,R14用于保存子程序返回地址。执行BL指令时,R14用于备份R15寄存器的值。

R15(PC)保存当前程序执行的地址。在所有模式下,R15(PC)共享相同的物理存储。在ARM状态下,[1:0]为0,[31:2]用于保存PC。在Thumb状态下,[0]为0,[31:1]用于保存PC。

CPSR是程序状态寄存器,保存条件标志位,中断禁止位,当前处理器模式等控制和状态位。每种异常模式下还存在SPSR,保存进入异常模式前的CPSR寄存器值,用于异常处理完成后恢复CPSR的状态。User和Sys不属于异常模式,没有CPSR寄存器,在User模式下,受限的CPSR寄存器称谓APSR( Application Program Status Register)。ARMv7-A中CPSR寄存器的信息如下图所示。

CPSR bits

各Field代表含义如下:

image.png

三、ARMv7-A协处理器CP15寄存器

ARMv7-A架构保护系统控制协处理器CP15,主要用于处理存储系统相关的功能。CP15只能在特权模式下访问。CP15提供了16个32位主寄存器,命名为c0-c15。c0-c15寄存器可能对应多个不同的物理寄存器。

image.png

image.png

协处理器CP15寄存器访问包括读和写操作。


读操作即将CP15内的寄存器CRn的值读到通用寄存器Rt中,使用指令语法MRC, Op1, Rt, CRn, CRm, Op2;

写操作即将通用寄存器Rt的值写入CP15内的寄存器CRn中,使用指令语法MCR, Op1, Rt, CRn, CRm, Op2;

在这里插入图片描述

MRC:将CP15寄存器值读到ARM通用寄存器;

MCR:将ARM通用寄存器值写到CP15寄存器;

Op1 :协处理行为操作码;

Rt :ARM通用寄存器,不能是R15(PC);

CRn:协处理器CP15寄存器c0-c15;

CRm:附加目标寄存器,不需要附加信息,则设置为c0;

Op2 :区分同一编号不同的物理寄存器,例如分别访问c0中的MIDR和MPIDR,Op2值分别为0和1。默认情况下设置为0;

示例:

将CP15寄存器c0的MIDR寄存器读到R1中。


MRC p15, 0, R1, c0, c0, 0


四、系统控制寄存器CP15.SCTLR

系统控制寄存器SCTLR(System Control Register )用于控制内存,系统功能以及提供状态信息。

System Control Register bits

image.png

示例:

初始化CP15:SCTLR,使能Cache,指令Cache及分支预测功能。

在这里插入图片描述

关键字:ARM体系架构  寄存器 引用地址:ARM体系架构—ARMv7-A处理器模式及寄存器

上一篇:Linux ARMv7架构通用中断流程(1)
下一篇:ARM_Core的处理器模式与寄存器,结构杂谈

推荐阅读最新更新时间:2024-11-13 10:17

KEIL C51代码优化详细分析:局部参数放寄存器变量,数据覆盖技术
阅读了《单片机与嵌入式系统应用》2005年第10期杂志《经验交流》栏目的一篇文章《Keil C51对同一端口的连续读取方法》(原文)后,笔者认为该文并未就此问题进行深入准确的分析 文章中提到的两种解决方法并不直接和简单。笔者认为这并非是Keil C51中不能处理对一个端口进行连续读写的问题,而是对Kei1 C51的使用不够熟悉和设计不够细致的问题,因此特撰写本文。 本文中对原文提到的问题,提出了三种不同于原文的解决方法。每种方法都比原文中提到的方法更直接和简单,设计也更规范。(无意批评,请原文作者见谅) 1 问题回顾和分析 原文中提到:在实际工作中遇到对同一端口反复连续读取,Keil C51编译并未达到预期的结果。原文作者
[单片机]
STM32 下的库函数和寄存器操作比较
以 led闪烁中的flashLed函数例子: 库函数操作简单,但是效率不如寄存器操作的高; 寄存器操作很复杂,因为要熟悉上百个寄存器,但是程序效率很高 /**下面是通过直接操作库函数的方式实现IO控制**/ while(1) { GPIO_ResetBits(GPIOB,GPIO_Pin_9); //LED0对应引脚GPIOF.9拉低,亮 等同LED0=0; GPIO_SetBits(GPIOB,GPIO_Pin_10); //LED1对应引脚GPIOF.10拉高,灭 等同LED1=1; delay_ms(500); //延时300ms GPIO_SetBits(GPIOB,GPIO_Pin_9);
[单片机]
移位寄存器的结构和工作原理
图片1 移位寄存器能将所储存的数据逐位向左或向右移动,以达到计算机运行过程中所需的功能,请看图 启动时,先在清零端加清零脉冲,使触发器输出置0。然后,第一个数据D0加到触发器1的串行输入端,在第一个CLK脉冲的上升沿Q0=Q0,Q1=Q2。Q3=Q0。其后,第二个数据D1加到串行输入端,在第二个CLK脉冲到达时,Q0=Q1,Q1=Q0,Q2=Q3=0。以此类推,当第四个CLK来到之后,各输出端分别是Q0=Q3,Q1=Q2,Q2=Q1,Q3=Q0。输出数据可用串行的形式取出,也可用并行开式取出。
[单片机]
移位<font color='red'>寄存器</font>的结构和工作原理
一种高性能32位移位寄存器单元的设计
1 引言 随着CPU设计位数与性能的不断提高,对CPU 执行单元中专用硬件移位寄存器的要求也越来越高。CPU移位寄存器的性能直接影响到所设计CPU 对移位类指令的处理能力和执行速度。传统结构的CPU中,移位寄存器的设计一般采用矩阵结构和树状结构。当CPU的位数达到32位,速度达到100M以上时,要在一个指令周期内对32位的数据进行32 位内任意移位,以前的设计方法已经很难达到要求。曾经有过对32位桶形移位寄存器的行为级描述,但其只适用于RISC指令集,并且作为CPU中的专用硬件为了达到功耗、速度和面积上的最佳,通常硬件电路采用全定制设计。 本文给出了一种可用于32位以上CPU执行单元的移位寄存器电路,并针对CISC指令集IN
[单片机]
一种高性能32位移位<font color='red'>寄存器</font>单元的设计
关于ARM时钟体系的寄存器配置
一:时钟来源体系 时钟配置决定了一个芯片的时钟来源,CPU的工作频率,内存控制器的时钟频率等等,从结果来看,寄存器控制出了三个时钟路线,FCLK、HCLK和PCLK;FCLK——供给CPU使用,HCLK—— AHB总线供给内存控制器,中断控制器等使用;PCLK—— APB 总线供给uart,I2C等使用;三个时钟的频率依次由高到底;三个时钟频率的比例可分为如下: 由图可看出,时钟频率的比例由HDIVN与PDIVN寄存器控制,这两个寄存器属于CLKDIVN 中的;那么FCLK的来源又是哪呢? 由时钟产生模块图表可以看出CLKCNTL寄存器的控制来源于MPLL,所以FCLK的时钟来源于MPLL,那么MPLL是由谁控制的呢?
[单片机]
关于ARM时钟体系的<font color='red'>寄存器</font>配置
STM8S105 GPIO寄存器方法
GPIO寄存器配置位及模式
[单片机]
STM8S105 GPIO<font color='red'>寄存器</font>方法
STM32寄存器操作方式学习-时钟配置
一、当STM32刚上电启动时,它是从频率为8 MHz 的内部振荡器运行的,假如程序设置外部高速时钟(HSE)为系统时钟源时,在外部高速时钟准备好之前对HSI相关寄存器的操作是无效的,相关位的值将保持在默认值。因此,要想关闭HSI以节能,必须在外部高速时钟准备好之后对HSI相关寄存器操作。 二、当STM32启动时,它是从频率为8 MHz 的内部振荡器运行的,因此内部FLASH 的访问时间不是一个问题。然而,一旦PLL启用并作为时钟源,对于运行在最高性能的Cortex CPU来说,FLASH的速度跟不上CPU。为了允许Cortex CPU 运行在72 MHz具有零等待状态,FLASH 存储器具有由两个64 位缓存器组成的预取缓冲器。这
[单片机]
MSP430看门狗定时器的寄存器定义
/************************************************************ * 看门狗定时器的寄存器定义 ************************************************************/ #define WDTCTL_ 0x0120 sfrw WDTCTL = WDTCTL_; #define WDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/ #define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/ #define WD
[单片机]

推荐帖子

New head job opportunity for you
HerearesomenewjobopportunitiesforyoufromEMCChina,ifit\'sfitforyou.Plztouchme,thanksforyoursupport!Christina(028)86701200QQ:1106525264PrincipalSoftwareQAEngineer-USD/ChengduResponsibilitiesObtainingtes
wisdompower Linux与安卓
MSP430F5529单片机的DAC8552
DAC8552是TI公司推出的16位双路电压输出数模转换器,本次来介绍一下这个芯片在MSP430单片机上如何使用。1.芯片的电路图介绍在这里插入图片描述一共才八个引脚,比较简单,具体介绍我就不说了,如果小伙伴们有疑问或者更具体的资料可以去官网直接去查datasheet,一共就二十来页,一会儿就看完了。2.程序介绍先来说一下dac8552库函数怎么写voidDAC8552_Init(){P1DIR|=BIT3+BIT4+BIT5;//配置MSP430的引脚
火辣西米秀 微控制器 MCU
HOSTLINK协议解析
HOSTLINK协议解析欧姆龙的PLC通信协议HOSTLINK解析,英文资料。方便各位喜欢PLC周边开发的各位^_^如何上传附件呀?今天发现上传文件不成功想发在这。^_^HOSTLINK协议解析
tiandi8734 嵌入式系统
程序
大神,430f5529的pwm波为何不能两路同时输出?求指教程序很确定的告诉你,能两路同时输出可以同时输出多路,你分别要什么样的PWM输出?
龙龙4321 微控制器 MCU
哈工大 数字电子技术基础 数字电路王立欣教授主讲 52讲 视频教程
链接:http://pan.baidu.com/share/link?...4&uk=1882058826密码:0gsp哈工大数字电子技术基础数字电路王立欣教授主讲52讲视频教程谢谢分享谢谢分享谢过先。谢谢分享王立欣老师的教程好东西谢谢分享。。感谢版主的无私,本人珍藏了!!!!现行谢过了。能重新发下么,失效了失效了失效了 可以分享一下吗?楼主的失效了失效了谢谢分享
楞伽山人 模拟电子
关于C2000芯片的FLASH锁死----以及解决办法
FLASH锁死了这是为什么,有没有办法解锁。为什么会有类似下面这几种报错:Readstatusvalue0x0001fromsymbolPRG_status(24x系列)ADCCalibrationnotcomplete,checkifdeviceisunlockedandrecalibrate.(2833x系列)答:FLASH锁死是由于在FLASH中的密码部分写入了密码。如果在烧写的的过程中,受到干扰就有机会导致FLASH锁死,如果试了下面的方
hlx3012 微控制器 MCU
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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