历史上的今天

今天是:2024年09月29日(星期日)

正在发生

2021年09月29日 | ARM体系架构—ARMv7-A处理器模式及寄存器

发布者:温暖微笑 来源: 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的处理器模式与寄存器,结构杂谈

推荐阅读

2018年9月29日,“为爱而洗”澳柯玛磁悬浮洗碗机苏宁首发会在青岛苏宁总店圆满举行。澳柯玛智能家居正式发布磁悬浮洗碗机,成为第一个在行业内发布磁悬浮洗碗技术的企业。新品长宽尺寸880cmx480cm,合起来是8848,与珠峰高度一致,这不仅彰显了澳柯玛对于产品的高标准高要求,也预示着一个洗碗机新时代的到来。  有数据显示,中国家庭每天花在洗碗上的时...
要求:1、设置三种音阶:低音、中音、高音控制按键;2、设计1、2、3、4、5、6、7音(哆来咪法搜拉稀);3、能弹奏一首简单的儿歌。一、Protues仿真图:二、程序源码:因为注释非常的全,这里就不再进行讲解了。/*******************************************************************************=======================================================...
  1、机器人操作机构   通过有限元分析、模态分析及仿真设计等现代设计方法的运用,实现机器人操作机构的优化设计。探索新的高强度轻质材料,进一步提高负载/自重比。此外采用先进的及交流伺服,使机器人操作机几乎成为免维护系统。   机构向着、可重构方向发展。例如,关节模块中的伺服电机、、检测系统三位一体化;由关节模块、连杆模块用重组...
Advanced Energy LGA110D 的直流/直流电源转换效率优于同级产品,而且其功率密度也较同类产品高 30%这款全新的负载点直流/直流电源转换器的额定电流和功率密度都极高,加上拥有高度灵活的控制功能,因此极为适用于设计复杂而又需要输出高电流的应用方案北京,中国 - Media OutReach - 二零二一年九月二十九日 - Advanced Energy 一直致力于...

史海拾趣

问答坊 | AI 解惑

如何精确计算一个放大电路的精度?

能解决此问题者,我跳楼大给分 最近导师叫我设计一个电路,要求算出精度 电路如下: 已知:1.图中全部使用0402金属膜电阻精度1%,噪音4nV/sqrt(Hz),每1k欧         2.图中电容为0402封装的损耗角正切为0.000002,精度 ...…

查看全部问答∨

PCB板中温湿度测试

来源:PCB资源网 作者:PCB资源网 发布时间:2008-06-21 一、PCB板中温湿度测试 综合试验箱由制冷系统、加热系统、控制系统、湿度系统、空气循环系统和传感器系统等组成,系统方框图如图7-2所示,所述系统分属电气和机械制冷两大方面。下面简单介 ...…

查看全部问答∨

申请样片,做智能电网的

申请样片,做智能电网的…

查看全部问答∨

请问两个信号间加的小电容有什么用?

如题,想不出来为什么在音频+  音频-的中间加一个0.1U的电容,请高手解答,多谢…

查看全部问答∨

sql ce 读取数据出现异常

各位大虾:    我的是数据库名字为test.sdf里面有一个user表,但是在SqlCeDataReader dr = cmd.ExecuteReader();时出现异常    程序如下:    string constr="Data Source="+Path.GetDirectoryName(Assembly. ...…

查看全部问答∨

请教有关Silverlight for Embedded硬件加速的问题

已经编译成功了wince 6 R3的silverlight演示,但是演示的帧率一直保持在1到3帧,想尽了办法都不行,。 我做过的设置如下: 1,添加了SYSGEN_XAML_RUNTIME 2,添加了SYSGEN_DDRAW 3,添加了环境变量sysgen_samplexamlperf 4,添加了环境变量bsp ...…

查看全部问答∨

如何有效减少slices呢?

在设计时发现逻辑的slice占用为106%,如何有效减少呢?…

查看全部问答∨

PCB技术在高速设计中的特性阻抗问题

    http://www.hampoo.com     在高速设计中,可控阻抗板和线路的特性阻抗问题困扰着许多中国工程师。本文通过简单而且直观的方法介绍了特性阻抗的基本性质、计算和测量方法。    在高速设计中,可控 ...…

查看全部问答∨

求助哪位大侠有vxworks 6.8 关于网络协议的说明的pdf文件

最近想了解一下vxworks6.8对网络协议的支持,如wr_net_stack_vxworks_6_programmers_guide_6.8.pdf等文件,如果哪位大侠有麻烦给发一份(windytop@126.com),万分感谢!…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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