历史上的今天
返回首页

历史上的今天

今天是:2024年11月03日(星期日)

2021年11月03日 | ARM内核架构(二)——ARM处理器7种工作模式

2021-11-03 来源:eefocus

一、ARM处理器7种工作模式(特权模式 特权模式异常模式)


用户模式(USR):正常程序执行模式,不能直接切换到其他模式

系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权

快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式

中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式

管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发)

中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处

未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式

image.png?imageView2/2/w/550

除用户模式外,其余6种工作模式都属于特权模式

特权模式中除了系统模式以外的其余5种模式称为异常模式

大多数程序运行于用户模式

进入特权模式是为了处理中断、异常、或者访问被保护的系统资源

硬件权限级别:系统模式 > 异常模式 > 用户模式

 

快中断与慢中断区别:快中断处理时禁止中断

 

CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网卡上有数据到达,产生中断信号,CPU自动切换到一般中断模式下处理网卡数据(普通应用程序没有权限直接访问硬件),处理完网卡数据,返回到用户模式下继续执行用户程序


特权模式


除用户模式外,其它模式均为特权模式(Privileged Modes)。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式


异常模式


特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入。比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入中止异常模式,执行未定义指令时进入未定义指令中止异常模式。其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式


Linux操作系统使用了其中USR和SVC模式、出现异常时还可能通过进入其他模式转为Linux内核态

MMU种有存储访问权限控制功能,访问没有权限的地址时,会产生Permission fault中断


二、异常的优先级

   

三、存储器格式

大端格式:高字节在低地址,低字节在高地址

小端格式:高字节在高地址,低字节在低地址


四、ARM体系的CPU有两种工作状态

ARM状态

THumb状态


五、Linux操作系统与ARM工作模式

首先,ARM开发板在刚上电或复位后都会首先进入SVC即管理模式,此时、程序计数器R15-PC值会被赋为0x0000 0000;bootloader就是在此模式下,位于0x0000 0000的NOR FLASH或SRAM中装载的,因此、开机或重启后bootloader会被首先执行。


接着,bootloader引导Linux内核,此时、Linux内核一样运行在ARM的SVC即管理模式下;当内核启动完毕、准备进入用户态init进程时,内核将ARM的当前程序状态CPSR寄存器M[4:0]设置为10000、进而用户态程序只能运行在ARM的用户模式。


由于ARM用户模式下对资源的访问受限,因此、可以达到保护Linux操作系统内核的目的。


需要强调的是:Linux内核态是从ARM的SVC即管理模式下启动的,但在某些情况下、如: 硬件中断、程序异常(被动)等情况下进入ARM的其他特权模式,这时仍然可以进入内核态(因为就是可以操作内核了);同样,Linux用户态是从ARM用户模式启动的,但当进入ARM系统模式时、仍然可以操作Linux用户态程序(进入用户态,如init进程的启动过程)。


即:Linux内核从ARM的SVC模式下启动,但内核态不仅仅指ARM的SVC模式(还包括可以访问内核空间的所有ARM模式);Linux用户程序从ARM的用户模式启动,但用户态不仅仅指ARM的用户模式。

推荐阅读

史海拾趣

台湾兆欣(EMTEK)公司的发展小趣事

随着科技的不断进步和市场需求的不断变化,兆欣始终保持对新技术和新应用的敏锐洞察力。他们不断推出创新产品和技术解决方案,引领着行业的发展方向。同时,兆欣还积极与高校和科研机构合作,共同推动电子行业的创新和发展。这种持续的创新精神是兆欣在电子行业中保持领先地位的关键所在。

请注意,以上故事是基于兆欣公司的发展历程和事实进行创作的,但具体细节和数据可能因时间和市场变化而有所不同。

EVERLIGHT公司的发展小趣事

EVERLIGHT公司的故事始于1983年,当时台湾的电子产业正迎来蓬勃发展的时期。创始人凭借对LED(发光二极管)技术的深刻洞察,决定创立EVERLIGHT,专注于LED的研发和生产。公司从一开始就注重技术创新,投入大量资源研发新型LED产品,不断提高产品的亮度和稳定性。随着技术的不断突破,EVERLIGHT逐渐在LED市场上崭露头角。

EPT公司的发展小趣事

EPT深知产品质量是企业发展的基石。因此,公司不仅通过了ISO9001:2015和BSCI等国际质量管理体系认证,还获得了CE、UL、IEC62133、KC等多项证书。此外,EPT还为所有电池购买了产品责任险,为客户提供双重保障。这一举措不仅提升了客户对EPT产品的信任度,也为其在电子行业中树立了良好的品牌形象。

CLARE公司的发展小趣事

随着技术的不断进步和市场的日益成熟,CLARE公司开始致力于产品的创新和升级。公司研发团队紧跟科技前沿,不断探索新技术、新材料和新工艺的应用,推出了一系列具有创新性和领先性的电子产品。这些产品不仅满足了客户的需求,还引领了市场的潮流,进一步提升了CLARE公司的品牌影响力和市场竞争力。

Arcolectric公司的发展小趣事

Arcolectric公司成立于1932年,作为Elektron PLC Group的一个著名品牌,它从一开始就专注于开关、指示灯及保险丝座的生产。在创立初期,Arcolectric就展现出了对技术的深厚积累和独特见解,成功研发出了一系列高质量、高性能的产品,为公司的长远发展奠定了坚实的基础。

Everspin Technologies公司的发展小趣事

Everspin Technologies公司的起源可以追溯到飞思卡尔半导体公司。在2004年,摩托罗拉将其半导体业务剥离,创建了飞思卡尔半导体。这家公司在磁阻随机存取存储器(MRAM)领域进行了大量研究和开发工作。随着MRAM技术的成熟,飞思卡尔半导体决定将其MRAM部门独立出来,于是在2008年,Everspin Technologies公司正式成立,专注于MRAM的设计、制造和销售。

问答坊 | AI 解惑

verilog 如何才能学好?

  我对verilog非常感兴趣!现在也在努力学习,可是不知道怎么才能学好!就像我在学c语言时,看了好多的程序,可是一上机就不知道该怎么做了!就连一个小程序写起来都很费劲!现在我就怕把verilog学到后期也成这样子了!那就不好了。 &n ...…

查看全部问答>

问个奇怪的问题,关于定时器的,希望高手解答

wince5.0,三星2440板子,设置定时器0,每625ms中断一次,在调试状态每次中断都是625ms左右,精确度很高,可是一把程序放到板子上跑,中断间隔很不准,每次时间如下: DrvDispatchThread::time = 1018 DrvDispatchThread::time = 1085 DrvDispat ...…

查看全部问答>

请教: grub 网络启动 相关问题

大家好:    最近在做 Grub 网络引导的研究.在这个过程中发现了很多问题,希望能有朋友能帮助解答一些:    (1) root (nd)        在grub源文件 的stage2 中,我加入了自己的网卡驱动,并按照netboot.READM ...…

查看全部问答>

全英文短信中换行问题

以ASCII码方式发送全英文短信如何使短信换行啊?? …

查看全部问答>

联网下载程序问题:用usb线连接pda,下载程序总提示“无法与服务器建立连接”,请指点,谢谢。

我在evc下这么用的这个数据下载程序,用usb线连接的pda,但是总提示我无法与服务器建立连接,请问各位高手,这怎么回事,是我哪里没有设对,还是程序或设备本身有问题或者欠缺,非常感谢。 用这句进行下载,用按钮进行实现: InternetDownload(\ ...…

查看全部问答>

什么都不会的小白,要学习单片机,从什么开始学起?

各位高手,什么都不会的小白,要学习单片机,从什么开始学起?有C 语言基础该买什么样的编程器,都用什么软件环境进行仿真? [ 本帖最后由 micoyoung 于 2010-8-25 16:48 编辑 ]…

查看全部问答>

Input impedance matching with fully differential amplifiers

本帖最后由 dontium 于 2015-1-23 13:39 编辑 IntroductionImpedance matching is widelyused in the transmission ofsignals in many end applicationsacross the industrial,munications, video, medical,test, measurement, andmilitary market ...…

查看全部问答>

TMS2812

由于我刚刚接触DSP,想了解一下2812的基本结构,哪位大哥有中文资料给小弟分享一下,谢谢了。 或者其他的一些学校资料也行,多谢了。 QQ:1650943707…

查看全部问答>

行走在8*8方阵中的蛇。。。

呵呵。。标题了一把,,说白了就是个8*8点阵的贪吃蛇。。。。   相信这种 蛇 坛子里已经有很多很多了。。。不过抱着“一千个程序员手中,有一千咱贪吃蛇”的想法,把我的拙劣程序发上来大家看一眼吧     欢 ...…

查看全部问答>

AM335x之官方说明

日前,德州仪器 (TI) 宣布推出最新 Sitara™ AM335x ARM® Cortex™-A8 入门套件,其通过采用板载加速计支持旋转与倾斜功能的 4.3 英寸 LCD 显示屏,可为智能电器、工业,网络应用以及其它需要触摸屏界面的设备提供一款低成本平台。 ...…

查看全部问答>