历史上的今天
今天是: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执行的是同一个进程,这时不需要操作系统具体做什么。
当模式切换伴随着进程切换时,操作系统需要保存模式切换之前的上下文环境。也就是进程控制块,进程控制块包括标识符、用户可见寄存器、控制和状态寄存器、栈指针等等,这与普通的进程切换类似。
上一篇:ARMv7汇编代码分析
史海拾趣
|
模拟数字考试不难(暮森的模拟电路串讲,原创) 作者:暮森 (转自:www.ezikao.com.cn,如果联系我请到易自考“模拟电路”版块) 对于模拟电路大家都觉得比较难,确实模拟电路数字电路在计算机专业中的学分比重比较大,内容比较多,理解起来比 ...… 查看全部问答> |
|
摘 要: 介绍一种运用 PIC16F84单片机实现与PC机串行通信的方法,并给出其硬件接口电路及通信源程序。 1 前言 美国 Microchip 公司的 PIC16 系列单片机是一种新型的 CMOS 工艺的 8 位单片机。其中, PIC16FXX 单片机的程序存储器为电可擦除闪速存 ...… 查看全部问答> |
|
【求助】请教一个最最简单的关于PIC12C508单片机如何使用的问题…… 由于最近要试着用PIC12C508单片机做点东西,就在mplab上先仿真玩玩。这才发现自己居然连最最基本的“点灯一个led灯”都完成不了…… 还请坛子里的老鸟们指教一下,这对于你们来说可能就是几秒钟的事情,而我却卡在这里大半天了…… &nbs ...… 查看全部问答> |
|
最近要在ARM平台上实现一个网络IP数据包加密的程序,但是现有的系统没有网络协议栈,而我有不想移植一个完整的TCP/IP协议栈(其实移植困难也很大,因为系统是我们团队自己实现的嵌入式最简系统),完整的协议栈很多部分对我们的这次应用来说是多余 ...… 查看全部问答> |
|
我安装完Quartus 8.0后(已成功破解),利用其自带的IP生成工具生成了一个三速度以太网的IP核,同时生成了仿真文件,当我打开仿真工具Questasim运行生成的仿真脚本文件时,开始正常,当执行到do mac_wave.do时 生成波形文件变得非常慢,而且信号是 ...… 查看全部问答> |
|
本人从事PCB设计三年,现在转做业务,希望能在这里面认识 一些朋友 ,QQ520122524 SKYPE :xcq185388740 MSN:xcq185388740 @live.cn 提供点资料给你们 [ 本帖最后由 xcq185388740 于 2011-7-14 11:17 ...… 查看全部问答> |
|
本人在做关于DSP28035的芯片,在实验配置时钟的时候波形不对。所以下面我想用DSP控制TOPWAY的液晶屏无法成功! DSP+12M的晶振,晶振旁边的电容15pf. 出来波心是这样: ...… 查看全部问答> |
|
我在做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 编辑 ]… 查看全部问答> |




