历史上的今天
返回首页

历史上的今天

今天是:2025年01月19日(星期日)

正在发生

2020年01月19日 | ARM处理器各个模式之间是如何切换的?

2020-01-19 来源:eefocus

1、ARM处理器各个模式之间是如何切换的?


答:除用户模式外的其他6种模式称为特权模式,这些模式中,程序可以访问所有系统资源,也可以任意进行处理器模式的切换。处理器模式可以通过软件控制进行切换(直接设置CPSR寄存器的后五位就可以在6种特权模式之间互相切换),也可以通过外部中断或异常处理过程进行切换(例如,在USR模式下,发生中断后切换到IRQ模式)。


2、ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做?


答:CPU做的:


(1)把返回地址保存到相应模式的lr寄存器中,例如从usr模式切换到irq模式,CPU会将usr模式下的pc值,保存到irq模式下的lr寄存器中。


(2)保存CPSR到相应模式的SPSR寄存器中,还是上面的例子,CPU保存usr模式下的CPSR到irq模式下的SPSR中。


(3)将pc设置成相应模式下的某地址值继续执行。


操作系统做的(以从模式A切换到模式B为例):


操作系统所做内容需要根据情况而定,因为模式切换不一定伴随着进程之间的切换,有可能从A模式切换到B模式后,CPU执行的是同一个进程,这时不需要操作系统具体做什么。


当模式切换伴随着进程切换时,操作系统需要保存模式切换之前的上下文环境。也就是进程控制块,进程控制块包括标识符、用户可见寄存器、控制和状态寄存器、栈指针等等,这与普通的进程切换类似。


推荐阅读

史海拾趣

Antelec公司的发展小趣事

Antelec公司创立于XXXX年,由一群富有远见和热情的电子工程师组成。创立初期,公司专注于研发先进的电子测量与分析技术,成功开发出一种具有高精度和稳定性的测量仪器,填补了市场上的空白。这一技术突破不仅赢得了客户的青睐,也为公司的后续发展奠定了坚实的基础。

Cristek Interconnects Inc公司的发展小趣事

面对日益复杂的供应链环境,Cristek Interconnects Inc公司进行了深入的供应链优化。公司与多家优质供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量可靠。同时,公司还引入先进的供应链管理系统,提高了供应链的透明度和效率,为公司的快速发展提供了有力保障。

Blaze Display Technology Co Ltd公司的发展小趣事

在国内市场取得一定成绩后,Blaze公司开始积极拓展国际市场。通过与全球知名企业的合作,公司成功将产品打入国际市场,并赢得了良好的口碑。此外,公司还积极参加国际电子展会和交流活动,与全球同行建立了广泛的合作关系,为公司的进一步发展奠定了坚实的基础。

API Technologies公司的发展小趣事

随着全球电子市场的不断扩大,API Technologies开始实施全球化战略布局。公司先后在多个国家和地区设立了分支机构和研发中心,积极开拓国际市场。通过与全球客户的紧密合作,API Technologies的产品和技术逐渐在全球范围内得到了广泛应用和认可。

EPT公司的发展小趣事

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

德艺隆(DEALON)公司的发展小趣事

德艺隆自创立之初,就专注于电子开关、插座和连接器的研发与生产。在创始人陈建新的带领下,公司聚集了一批从业多年的设计开发、生产管理等技术人员。他们日夜兼程,不断攻克技术难关,逐渐在行业内树立了技术领先的地位。一次,公司接到一个要求极高精度的连接器订单,技术人员经过反复试验,最终成功研发出符合要求的连接器,赢得了客户的赞誉,也为公司赢得了更多的市场份额。

问答坊 | AI 解惑

模拟数字考试不难(暮森的模拟电路串讲,原创

模拟数字考试不难(暮森的模拟电路串讲,原创) 作者:暮森 (转自:www.ezikao.com.cn,如果联系我请到易自考“模拟电路”版块) 对于模拟电路大家都觉得比较难,确实模拟电路数字电路在计算机专业中的学分比重比较大,内容比较多,理解起来比 ...…

查看全部问答>

线性光耦HCNR201的误差问题

我用HCNR201隔离模拟电压有0.6V左右的误差,不知怎么回事请各位看一下…

查看全部问答>

PIC16系列单片机与PC机串行通信的软硬件实现

摘 要: 介绍一种运用 PIC16F84单片机实现与PC机串行通信的方法,并给出其硬件接口电路及通信源程序。 1 前言 美国 Microchip 公司的 PIC16 系列单片机是一种新型的 CMOS 工艺的 8 位单片机。其中, PIC16FXX 单片机的程序存储器为电可擦除闪速存 ...…

查看全部问答>

无线充电实验

无线充电实验的一篇论文,非常不错哦~,里面有具体电路…

查看全部问答>

【求助】请教一个最最简单的关于PIC12C508单片机如何使用的问题……

由于最近要试着用PIC12C508单片机做点东西,就在mplab上先仿真玩玩。这才发现自己居然连最最基本的“点灯一个led灯”都完成不了…… 还请坛子里的老鸟们指教一下,这对于你们来说可能就是几秒钟的事情,而我却卡在这里大半天了……  &nbs ...…

查看全部问答>

编写简单的IP协议栈

最近要在ARM平台上实现一个网络IP数据包加密的程序,但是现有的系统没有网络协议栈,而我有不想移植一个完整的TCP/IP协议栈(其实移植困难也很大,因为系统是我们团队自己实现的嵌入式最简系统),完整的协议栈很多部分对我们的这次应用来说是多余 ...…

查看全部问答>

quartus ii 8.0 安装问题

我安装完Quartus 8.0后(已成功破解),利用其自带的IP生成工具生成了一个三速度以太网的IP核,同时生成了仿真文件,当我打开仿真工具Questasim运行生成的仿真脚本文件时,开始正常,当执行到do mac_wave.do时 生成波形文件变得非常慢,而且信号是 ...…

查看全部问答>

进阶高级--Protel 99sePCB与SCH比较

本人从事PCB设计三年,现在转做业务,希望能在这里面认识 一些朋友 ,QQ520122524   SKYPE  :xcq185388740     MSN:xcq185388740 @live.cn    提供点资料给你们 [ 本帖最后由 xcq185388740 于 2011-7-14 11:17 ...…

查看全部问答>

大神帮帮忙?关于320F28035时钟问题

     本人在做关于DSP28035的芯片,在实验配置时钟的时候波形不对。所以下面我想用DSP控制TOPWAY的液晶屏无法成功!     DSP+12M的晶振,晶振旁边的电容15pf.     出来波心是这样:   ...…

查看全部问答>

有关bootloader制作的问题

我在做booloader加入sb.xcl文件之后出现了Fatal Error[e72]: Segment IEEE_ADDRESS_SPACE must be defined in a segment definition option (-Z, -b or -P) 错误请问这个是什么原因呢? [ 本帖最后由 wateras1 于 2013-2-25 15:10 编辑 ]…

查看全部问答>