历史上的今天
返回首页

历史上的今天

今天是:2025年04月04日(星期五)

2020年04月04日 | ARM处理器的2种工作状态和7种工作模式

2020-04-04 来源:eefocus

两种工作状态

1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。


2、Thumb状态,16位,执行半字对齐的16位指令。


3、用Bx Rn指令来进行两种状态的切换:


其中Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,这进入ARM状态。(原 因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此采用位0来表示ARM指令与Thumb指令的切换标志位。)


注:

1、ARM和Thumb两种状态之间的切换不影响处理器的工作模式和寄存器的内容。


2、ARM处理器在处理异常时,不管处理器处于什么状态,则都将切换到ARM状态。(**********)


另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令


S3C2440.S启动代码中根本就没用Thumb指令


ARM处理器共有7种工作模式

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

image.png?imageView2/2/w/550

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、剩下的六种模式中除去系统模式外,统称为异常模式。


http://blog.163.com/l_c_2005/blog/static/73746124201011239426180/


http://blog.csdn.net/mr_raptor/article/details/6556157

推荐阅读

史海拾趣

Antiference公司的发展小趣事

Antiference公司最初以生产电磁屏蔽材料起家,但随着电子设备的普及和电磁干扰问题的日益严重,公司意识到单纯的材料生产已无法满足市场需求。于是,Antiference投入巨资研发新型电磁干扰抑制技术,成功开发出了一款能够显著降低电磁干扰的芯片。这款芯片迅速在市场上获得了广泛认可,Antiference也因此成为了电磁干扰抑制领域的领军企业。

CML公司的发展小趣事

在完成了数十年的成功发展后,CML并未满足于现状。公司开始着手制定面向未来的战略规划,旨在继续保持在半导体行业的领先地位。CML加大了对新兴技术的研发投入,如人工智能、物联网等领域,积极探索新的应用场景和市场机会。同时,公司还加强了与国际同行的合作与交流,不断提升自身的技术水平和市场竞争力。通过这些努力,CML为未来的发展奠定了坚实的基础,展望着更加辉煌的未来。

以上是基于CML公司发展历程的五个可能故事。请注意,这些故事虽然基于事实进行构建,但并非真实的历史记录。如需了解更多关于CML公司的具体发展历程和故事,建议查阅相关文献或访问公司官方网站。

明波通信(BWAVE)公司的发展小趣事

在2002年,一群从海外归来的留学生和技术专家,怀揣着对通信技术的热情与梦想,在上海创立了明波通信技术股份有限公司。他们深知国内在通信领域的技术与海外相比还有较大差距,因此决心将自己在海外学到的先进知识和经验,应用到国内的市场和技术创新中。明波通信从创立之初就致力于数字电视芯片的研究与开发,并逐渐在行业中崭露头角。

三环(CCTC)公司的发展小趣事

三环(CCTC)公司自1970年成立以来,便致力于电子基础材料、电子元件和通信器件的研发与生产。在创立初期,公司面临着技术落后和资金短缺的困境,但通过不懈的努力和持续的研发投入,逐渐在电子行业中崭露头角。公司积极引进国外先进技术和设备,同时培养了一支高素质的研发团队,为后续的发展奠定了坚实的基础。

Celduc Relais公司的发展小趣事

随着公司实力的不断增强,Celduc Relais开始积极拓展国际市场。公司通过参加国际电子展会、建立海外销售渠道以及与当地合作伙伴建立战略合作关系等方式,逐步打开了欧洲、北美和亚洲等多个国家和地区的市场。这一过程中,公司不仅提升了品牌知名度,也积累了丰富的国际业务经验。

GE Industrial Solutions公司的发展小趣事
通过输入不同幅度的信号,测量输出信号的幅度,并计算输入输出之间的线性关系。

问答坊 | AI 解惑

关于VHDL语言的逻辑运算

a=red4*(1/2)用VHDL语言怎么表示?…

查看全部问答>

TQ2440 触摸屏

关于TQ2440触摸屏的应用设计。现在能够实现触摸屏界面的旋转,想添加一些其它的应用功能,请问能不能把显示界面缩小,即原来3.5寸屏的界面,显示为1.75寸的区域,这种功能能够实现吗?如果实现需要涉及那些方面?…

查看全部问答>

一个外行的weti

我用一个电源,交流转换成直流 上面写着:+5V 3A 我有一个电子设备充电要求是 +5V 2.2A 请问,这个电源我来给这个充电可以吗? (我认为可以,就是不敢肯定) …

查看全部问答>

wince,在flash中保存文件!

我在flash上烧写的镜像文件为 NK.BIN, 我在注册表中添加如下: ; Bind BINFS to the block driver [HKEY_LOCAL_MACHINE\\System\\StorageManager\\Profiles\\FlashDrv]     \"DefaultFileSystem\"=\"BINFS\"     \"Partition ...…

查看全部问答>

STM32GPIO不受控?

我用的是keil. 遇到到 PA4, PA5 , PA6,PA7 等无法设置输出状态. 在keil的调试状态就感觉无**常设置.而引脚设置跟附近的一样,看起来没错. 但无**常设置.其他的比如PC5~PC7等就没有问题. 初始化的语句:应该没有问题.    GPIO_Ini ...…

查看全部问答>

求好用的DSP2407开发板原理图与PCB图

求好用的DSP2407开发板原理图与PCB图. PROTEL格式的. 我的油箱是automationcn@126.com 先谢谢各位了!…

查看全部问答>

比较器

有那位高手可以推荐高速比较器的电路,急!!!!…

查看全部问答>

寻迹小车DIY

这是当年毕业设计参考的项目了,最近翻资料翻出来,抖出来晒晒太阳.... 那个觉得有用就拿去吧    …

查看全部问答>

有没有3v可用的数码管驱动芯片?或者怎么用电池给5v的74门供电?

想做个数字钟,但是找不到3v可用的数码管驱动芯片,找到了淘宝上也没卖的。 另外就是考虑怎么给3v/5v元件混合电路用AA电池供电………

查看全部问答>

搞到一个4轴,论坛里的大神说用C2000控制是怎么回事

朋友搞了三个月还没飞起来,给我研究, 什么陀螺仪,加速度,姿态控制啊没头绪啊…

查看全部问答>