历史上的今天
返回首页

历史上的今天

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

正在发生

2021年09月29日 | ARM的7种工作模式、37个通用寄存器、CPSR程序状态寄存器

2021-09-29 来源:eefocus

一、ARM 采用的是32位架构


1、ARM约定


Byte:8 bits


Halfword:16 bits (2 byte)


Word:32 bits (4 byte)



2、大部分ARM core 提供


ARM 指令集(32-bit) 每条指令都是4个字节?


Thumb 指令集(16-bit )


Thumb2指令集(16 & 32bit)


二、ARM的7种基本工作模式


普通模式(Normal)


(1)User:非特权模式,大部分任务执行在这种模式


特权模式(Privilege)


(2)FIQ:当一个高优先级(fast) 中断产生时将会进入这种模式


(3)IRQ:当一个低优先级(normal) 中断产生时将会进入这种模式


(4)Supervisor:当复位或软中断指令执行时将会进入这种模式(SVC模式)


(5)Abort:当存取异常时将会进入这种模式


(6)Undef:当执行未定义指令时会进入这种模式


(7)System:使用和User模式相同寄存器集的特权模式。


各种模式的切换,可以是程序员通过代码主动切换(通过写CPSR寄存器),也可以是CPU在某些情况下自动切换。

各种模式下权限和可以访问的寄存器不同。

同一时刻只处于其中一种模式。

操作系统有安全级别要求,因此CPU设计多种模式是为了方便操作系统的多种角色安全等级需要。


不同模式下,对资源的访问权限不一样。

三、37个通用寄存器


1、寄存器分类和区别


(1)SoC中有2类寄存器:通用寄存器和SFR


通用寄存器(ARM中有37个)是CPU的组成部分,CPU的很多活动都需要通用寄存器的支持和参与。

SFR(special function register,特殊功能寄存器)属于外设硬件的组成部分,我们通过访问外设的SFR来编程操控这个外设,这就是硬件编程控制的方法。

(2)通用寄存器没有地址,通过寄存器名字来访问;而特殊功能寄存器有地址。


(3)寄存器是外设硬件的软件编程接口API。使用软件编程控制某一硬件,其实就是编程读写该硬件的寄存器。


2、37个通用寄存器

(1)ARM总共有37个寄存器,但是每种模式下最多只能看到18个寄存器,其他寄存器虽然名字相同但是在当前模式不可见。

对r13这个名字来说,在ARM中共有6个名叫r13(又叫sp,栈指针)的寄存器,但是在每种特定处理器模式下,只有一个r13是当前可见的,其他的r13必须切换到他的对应模式下才能看到。这种设计叫影子寄存器(banked register)。

(2)ARM共有37个寄存器,都是32位长度。

30个为“通用”型;

1个固定用作PC(Program control register,程序控制寄存器,PC指向哪里,CPU就会执行哪条指令,因此只有一个);

1个固定用作CPSR(程序状态寄存器,用来记录当前cpu的状态,因此只有一个);

5个固定用作5种异常模式下的SPSR(Saved Program Status Register,程序状态保存寄存器,用来保存CPSR的,返回时将spsr赋给cpsr)。

(3) lr用来存储返回地址。

(4)第二幅图中带颜色的,表示每种模式下特有的寄存器。


四、CPSR程序状态寄存器

  

(1)CPSR中各个bit位表明了CPU的某些状态信息,这些信息非常重要,和后面学到的汇编指令息息相关(譬如BLE指令中的E就和CPSR中的Z标志位有关)。

(2)CPSR中的I、F位和开中断、关中断有关。

(3)CPSR中的mode位(bit4~bit0共5位)决定了CPU的工作模式,在uboot代码中会使用汇编进行设置。


推荐阅读

史海拾趣

Dowosemi公司的发展小趣事

Dowosemi公司一直将产品质量视为企业的生命线。他们建立了严格的质量管理体系,从原材料采购到产品生产、检测等各个环节都进行严格的把控。此外,公司还定期对员工进行质量培训,确保每一位员工都能深刻理解并贯彻执行质量标准。这种对质量的坚持让Dowosemi公司的产品在市场上赢得了良好的口碑。

Crane Connectors公司的发展小趣事

Crane Connectors公司深知人才是企业发展的核心力量。因此,公司高度重视人才培养和团队建设工作。公司建立了完善的人才培养和激励机制,吸引和留住了一批高素质的研发、销售和管理人才。同时,公司还注重团队建设和文化建设,营造积极向上的工作氛围和良好的企业文化。这些举措使得公司的团队凝聚力和执行力得到了显著提升,为公司的快速发展提供了有力保障。

请注意,以上故事是基于一般企业发展经验和市场环境推测的,并不代表Crane Connectors公司的实际发展历程。如需了解该公司真实的发展故事,建议查阅相关文献资料或访问公司官网获取更多信息。

Datakey Electronics公司的发展小趣事

随着全球化进程的加速,Datakey Electronics意识到单靠国内市场已经无法满足公司的长远发展需求。于是,公司积极寻求国际合作机会,与国际知名企业建立战略合作伙伴关系,共同开发新产品、开拓新市场。通过国际合作,Datakey Electronics不仅提高了自身的技术水平和产品竞争力,还成功将产品推向了国际市场。

CLAIREX公司的发展小趣事

随着全球化的加速推进,Clairex意识到要想在全球市场上取得更大的成功,必须实施全球化战略。于是,公司开始积极拓展海外市场,先后在多个国家设立了分支机构和销售代表处。同时,Clairex还加强了与国际同行的交流与合作,共同推动电子行业的发展。这些举措使得Clairex的产品和服务逐渐走向全球,为公司的长远发展奠定了坚实的基础。

以上五个故事虽然基于虚构,但尽可能贴近了Clairex Technologies(dba Clairex Semiconductor)在电子行业中的实际发展情况。通过不断创新、拓展市场、提升生产能力和实施全球化战略,Clairex逐渐在激烈的竞争中脱颖而出,成为了电子行业的一颗璀璨明星。

Delphi Connection Systems公司的发展小趣事

随着全球对环保意识的不断提高,Delphi Connection Systems公司也积极响应环保号召,致力于研发和生产环保型连接器产品。公司采用环保材料和工艺,减少生产过程中的污染排放,同时推出可回收、可再利用的连接器产品。这一举措不仅符合了环保要求,也为客户提供了更加环保的解决方案。

BTCPower公司的发展小趣事

随着技术的不断成熟和产品的广泛应用,BTCPower开始寻求更广阔的市场空间。公司积极与国际知名电子品牌进行合作,将其产品推向全球市场。通过与这些品牌的合作,BTCPower不仅提升了自身的品牌知名度,还获得了更多的商业机会和市场份额。

问答坊 | AI 解惑

uboot怎么引导内核

之前编译uboot通过了才发现是交叉编译器出现问题还好算是过去,开始引导内核了。看了一下uboot的代码没有关于nand flash分区的信息,不知道该把内核映像下载到哪里。想问一下 uboot是不是没有分区信息吗,我用的是1.2.0的上面没有mtdparts的命令不 ...…

查看全部问答>

4511译码器 中的一些问题!

最近做了一个抢答器的设计,但中间有些问题弄不明白啊!知道咱们论坛里的高手多,特此来请教! 4511 后面需要连接一个七段显示器,这两个之间应该需要一个电阻的吧?需要一个多大的电阻呢? 4511连接的七段显示器能够显示0~9 ,但我只需要1~8 , ...…

查看全部问答>

第一次测试串口通讯问题.有好些疑问

# include # define BYTE unsigned char # define WORD unsigned int BYTE idata txdata[7]={\"ABCDEF\"}; sbit  P15=P1^5 ;//蜂鸣器 void main() {    BYTE h;    WORD k;    P15 = 0x00;// ...…

查看全部问答>

随谈

      原来没有接触过触摸板,正好借此机会体验一下触摸板和低功耗。因为没有之前也没有用过430的单片机,所以也没啥心得,发帖就为能够争取个    TI MSP-EXP430FR5739实验板套件  430单片机到手后主 ...…

查看全部问答>

拒绝忽悠 移动GPU全解读(二)

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 说说被忽略的Shader接下来我们回到Shader。Shader是GPU里负责计算的主要部分,同时占得面积最大,耗电也最多。当今的桌面GPU往往都不再谈三角形生成率,或是像素填充率了,给的指标都是Shader ...…

查看全部问答>

电脑监控仪

电脑监测仪主要是为了保护电脑用户的眼镜。现在人们的生活越来越离不开电脑,比如那些整天坐在电脑前做软件开发,研发工作,或其他工作的人,电脑对他们眼镜的伤害可想而知。所以为了保护广大电脑用户的眼镜,希望能开发出一种产品来给电脑用户带来 ...…

查看全部问答>

单片机学习

单片机的种类很多,想请教一下对于即将毕业的大学生,想从事这方面的工作,是需要学习那几种单片机呢?目前只学习了51,52,msp430的,请问有必要再学习其他的吗,还是把这几种学精就好呢    谢谢各位了 …

查看全部问答>

R7F0C802x Easy Start --串口开发小计

      串口是基本的通讯端口,基本上每个嵌入式处理都自带了至少一个串口了,R7F0C802x当然也不例外。本来以为R7F0C802x的串口是挺简单的东西,看来是太轻敌了,前前后后共花了一周的时间才把它搞定。下面就来总结一下R7F0C802 ...…

查看全部问答>

看看烧毁的LM2596

今天单位返修了几个设备,全部是LM2596烧毁 这个烧毁的最厉害 这个好一些 这个倒是没有烧,直接掉了一个腿 大家一块分析一下烧毁的原因,看芯片的标识是国半的,采购的价格是7块多,也像是真的。TI官网上的资料写的正常工作电压是40V ...…

查看全部问答>

ST F7大赛~智能小区控制系统~μCOSIII移植二

本帖最后由 abofly 于 2015-11-2 19:57 编辑 上一篇的工程未开启FPU,μCOS为最新最新版本,但是后期开启FPU一直出现问题,后改用3.3版本官方例程的FPU入栈方案不符合入栈顺序且造成易造成堆栈空间浪费, 本工程采用了安富莱V5开发板F4的入栈方 ...…

查看全部问答>