找回密码
 注册
关于网站域名变更的通知
查看: 460|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-28 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1、ARM处理器各个模式之间是如何切换的?
% @6 N1 Z/ e6 q$ l, C; L
答:除用户模式外的其他6种模式称为特权模式,这些模式中,程序可以访问所有系统资源,也可以任意进行处理器模式的切换。处理器模式可以通过软件控制进行切换(直接设置CPSR寄存器的后五位就可以在6种特权模式之间互相切换),也可以通过外部中断或异常处理过程进行切换(例如,在USR模式下,发生中断后切换到IRQ模式)。

% @' L; v8 Z1 q. I9 j3 d: e: D
2、ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做?
0 q/ ?2 R+ n/ ]
答:CPU做的:

8 p# \: a% U2 F. N+ y
(1)把返回地址保存到相应模式的lr寄存器中,例如从usr模式切换到irq模式,CPU会将usr模式下的pc值,保存到irq模式下的lr寄存器中。
3 E8 ~0 M- K  v# W4 T
(2)保存CPSR到相应模式的SPSR寄存器中,还是上面的例子,CPU保存usr模式下的CPSR到irq模式下的SPSR中。

/ ^' O2 |% L/ J6 }4 ]) @
(3)将pc设置成相应模式下的某地址值继续执行。

; O% q% J4 L2 h1 o6 W' U- m0 Z# F
操作系统做的(以从模式A切换到模式B为例):
' H# F; \! s4 \, U) ]
操作系统所做内容需要根据情况而定,因为模式切换不一定伴随着进程之间的切换,有可能从A模式切换到B模式后,CPU执行的是同一个进程,这时不需要操作系统具体做什么。

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

5 D3 u9 ~% V6 o8 z3 r' k, e) K) f6 V5 Q! }  x
  • TA的每日心情
    开心
    2022-12-27 15:46
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2#
    发表于 2021-4-28 15:40 | 只看该作者
    操作系统所做内容需要根据情况而定
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 18:36 , Processed in 0.187500 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表