ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

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处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

时间: 2024-10-13 18:13:01

ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?的相关文章

ARMv7处理器各个模式之间是怎样切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

1.ARM处理器各个模式之间是怎样切换的? 答:除用户模式外的其它6种模式称为特权模式,这些模式中,程序能够訪问全部系统资源,也能够随意进行处理器模式的切换.处理器模式能够通过软件控制进行切换(直接设置CPSR寄存器的后五位就能够在6种特权模式之间互相切换),也能够通过外部中断或异常处理过程进行切换(比如,在USR模式下,发生中断后切换到IRQ模式). 2.ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做? 答:CPU做的: (1)把返回地址保存到对应模式的lr寄存器中,

处理器执行模式+进程切换

大多数处理器至少支持两种执行模式.某些指令只能在特权模式下执行,包括读取或者改变诸如程序状态字之类控制寄存器的指令.原始IO指令和内存管理相关的指令.另外,有一部分内存区域仅在特权下可以被访问到. 非特权态常被称为用户态,这是因为用户程序通常在该模式下执行:特权态可称作系统态.控制态或者内核态,内核态指的是操作系统的内核,这是操作系统中包含重要系统功能的部分. 这样产生了两个问题:处理器如何知道它正在什么模式下执行以及如何改变这一模式.对第一个问题,程序状态字中有一个位表示执行模式,这一位应某些

ARM处理器工作模式

++++++++++++++++++++++++++++++++++++++++++ 本文转载自mr_raptor的专栏,感谢mr_raptor大神. http://blog.csdn.net/mr_raptor/article/details/6556157 ++++++++++++++++++++++++++++++++++++++++++ 1.1 ARM处理器工作模式 CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网

SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled) 几种模式之间的转换

在CentOS6.2 中安装intel 的c++和fortran 的编译器时,遇到来一个关于SELinux的强制模式不可执行的情况, 需要关闭SELinux 或者 将enforcing改为 permissive 模式,查询来一些资料后,先对SELinux的几种模式,以及其之间的关系和转换方法做一小结,以备以后查看和学习. SELinux 的启动.关闭与查看 1.并非所有的 Linux distributions 都支持 SELinux 目前 SELinux 支持三种模式,分别如下: ?enfor

【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

hacmp replace模式,资源组切换后,应用异常的解释和解决

切换后,vg.fs.ip等均正常,但个别应用异常:因为是replace模式,所以切换后,备机上有2个同一网段的地址: 接受数据地址是服务地址,发送数据地址是备机boot1地址,个别外联应用不认可这个boot1地址,所以造成应用异常. 解决应通过修改路由的方式来完成. 更多细节请联络作者. hacmp replace模式,资源组切换后,应用异常的解释和解决,布布扣,bubuko.com

[国嵌笔记][021-022][ARM处理器工作模式]

[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通

[转]IOS Segment页面之间view的切换

有三个view,分别为view1.view2.view3,通过UISegmentedControl进行三个view的切换. Ios代码   @interface UIViewDemoViewController : UIViewController { IBOutlet UIView *view1; IBOutlet UIView *view2; IBOutlet UIView *view3; } - (IBAction)switchViews:(id)sender; @end 在Interfa

浏览器标准模式和怪异模式之间的区别

浏览器标准模式和怪异模式之间的区别是什么 所谓的标准模式是指,浏览器按W3C标准解析执行代码:怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式.浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode).