分析 ARM 处理器不同工作模式的作用,举例说明切换过程
2020-03-14 来源:eefocus
ARM 处理器(以 ARM7TDMI 为例)的 7 中工作模式为:
(1) 用户模式(usr):运行应用程序的普通模式。
(2) 系统模式(sys):运行具有特权的操作系统任务。
(3) 超级用户模式(svc):操作系统的保护模式,主要用于 SWI 和 OS。这
个模式有额外的特权,允许进一步控制处理器。
(4) 中断模式(irq):用作通用中断处理。这个模式也是有特权的。导致 IRQ
的设备有键盘、定时器、串行口、硬盘、软盘、等等……
(5) 快速中断模式(fiq):用来处理外设发起的快速中断。用于支持高速数据
传送与通道处理。这个模式是有特权的。
(6) 数据访问中止模式(abt):当数据或指令预取终止时进入该模式,可用于
虚拟存储及存储保护。
(7) 未定义模式(und):当执行了未定义指令时进入该模式。
举例:当系统响应中断或异常、或访问受保护的系统资源时,处理器会进入 特权模式(除用户模式以外的所有模式)。 例如从 usr 模式切换到 irq 模式:
首先 CPU 会将返回地址保存到相应模式的 lr 寄存器中,即将 usr 模式下的 pc 值,
保存到 irq 模式下的 lr 寄存器中。
然后保存 CPSR 到相应模式的 SPSR 寄存器中, 即 CPU 保存 usr 模式下的 CPSR
到 irq 模式下的 SPSR 中。
最后将 pc 设置成 irq 模式下的某地址值继续执行。
相关文章