历史上的今天
今天是:2025年03月16日(星期日)
2020年03月16日 | ARM处理器工作模式介绍
2020-03-16 来源:eefocus
从今天开始学习ARM异常中断处理相关的知识点;首先学习ARM的工作模式。
ARM处理器共有7种运行模式,如下表所示。
ARM处理器的7种运行模式

除了用户模式之外的其它6种处理器模式称为特权模式。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除系统模式外,其他5种特权模式又称为异常模式。
处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下。这时,应用程序不能够访问一些受操作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式的切换。这种体系结构可以使整个操作系统控制整个系统的资源。
当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样可以保证在进入异常模式时,用户模式下的寄存器不被破坏。
系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所用的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存器组,而不是使用异常模式下相应的寄存器组,这样就可以保证当异常中断发生时任务的状态不被破坏。
怎么让CPU工作于某种模式,可以通过设置CPU的CPSR寄存器。CPSR寄存器格式如下:

各个位的功能介绍如下:
M0~M4:被称为模式位;可以通过这5位来设置CPU的工作模式;
T(bit5):用来表示操作状态;如果是1表示工作在Thumb状态,如果有0表示工作在ARM状态;
F(bit6):如果设置为1,则表示禁止FIQ中断;
I(bit7):如果设置为1,则表示禁止IRQ中断;
V(bit28):对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出;
C(bit29):在加法指令中,当结果产生了进位,则C=1,表示无符号数运算发生上溢出;其他情况C=0;在减法指令中,当运算发生借位,则C=0;表示无符号数运算发生下溢出;其他情况C=1;
Z(bit30):当Z=1时表示运算结果为零;Z=0时表示运算结果不为零;
N(bit31):当N=1时表示运算的结果为负数;当N=0时表示结果为正数或零。
本文完毕!
上一篇:关于ARM的PC指针异常返回处理
下一篇:ARM体系结构与编程-4
史海拾趣
|
3G时代,能否替代原有的固定宽带 2009年元月,中国3张3G牌照发放 电信 cdma2000 推出天翼品牌,声称测试速度已经达到3.3Mbps,年底升级到9Mbps。 联通 WCDMA 声称速度达到7.2Mbps,号称最成熟的3G制式。 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:42 编辑 今年的元器件清单公布时间是29号? 不会提前公布出来么 早点公布也好早点猜题啊? … 查看全部问答> |
|
大型ARM+linux+android嵌入式技术专题公益讲座 华清远见武汉华嵌中心将于2010年4月24日下午1:00-5:00在武汉大学联手ARM中国公司,开展“基于ARM平台的嵌入式系统设计专题讲座”。 详情请点击: http://www.embedhq.org/html/mianfei/2010/0408/382.html… 查看全部问答> |
|
本系统侧重点在微信号的采集,通过设计一个微信号采集和分析的系统,通过特定的集成电路对微小信号放大,转变为标准电流信号并能够传输到远端。通过模数转换器将其转换为数字量。利用相应软件对采集到的数字进行修正,使之能够比较准 ...… 查看全部问答> |
|
各位大侠: 自己定制了一个WinCE6.0 的操作系统,启动时间大约在10秒钟左右,想在CE系统真正起来之前,加一个画面,以免看着不舒服。看帖子发现一般解决都是在eboot 或者OAL层加。不解。问问大家。 我用的Atmel 公司 ...… 查看全部问答> |
|
各位好: 我是新加入这个大家庭的一名成员,我是一名即将毕业的大四学生,现在正在做毕业设计,我的专业是电子信息工程。我的课题跟单片机有关,要用C语言编写程序,可是我这方面相当薄弱,希望大家能帮帮我。在此 ...… 查看全部问答> |




