ARM 微处理器7 种处理器模式

ARM 微处理器(以经典的 ARMv4/v5/v6 架构为例,如 ARM7、ARM9)支持 7 种处理器模式。这些模式是为了应对不同类型的异常和任务,提供不同级别的访问权限和独立的寄存器组。

以下是这 7 种模式的详细说明:

模式 简称 进入方式 特点与用途
用户模式 usr 系统上电后默认进入的模式,或通过异常返回进入。 普通程序执行模式。属于非特权模式,不能直接访问某些系统资源(如进行软件配置),也不能随意切换模式。
系统模式 sys 从特权模式(如管理、快中断等)中修改 CPSR 进入。 与用户模式共用寄存器组,但是特权模式。用于运行操作系统等需要访问系统资源的任务。
快速中断模式 fiq 当处理器接收到 FIQ 信号时自动进入。 专为需要极快响应的中断设计。拥有自己独立的 R8~R12 寄存器,从而避免了压栈操作,中断响应速度最快。常用于高速数据传输。
外部中断模式 irq 当处理器接收到 IRQ 信号时自动进入。 用于处理普通的外设中断。优先级低于 FIQ。绝大多数的设备中断都在此模式下处理。
管理模式 svc 执行 SWI(软件中断)指令,或系统复位时进入。 受保护的操作系统模式。通常用于操作系统内核,处理系统调用和复位。
中止模式 abt 当指令预取或数据访问失败(存储器异常)时自动进入。 用于处理内存访问异常,如缺页、非法访问等。分为指令预取中止和数据访问中止。
未定义模式 und 当处理器执行到一条未定义指令时自动进入。 用于软件模拟硬件协处理器,或处理未定义指令异常。

关键补充说明:

  • 特权模式与非特权模式

    • 特权模式(除用户模式外的 6 种):可以访问所有系统资源,并能自由地切换处理器模式。
    • 非特权模式(用户模式):不能访问某些受保护的资源,以保证操作系统的安全稳定。
  • 寄存器使用

    • 每个模式都拥有独立的 R13(SP,栈指针)R14(LR,链接寄存器),这保证了在进入异常或中断后,能拥有自己独立的堆栈空间,而不会破坏用户模式的栈。
    • FIQ 模式最为特殊,它拥有独立的 R8~R12,这样在中断处理中无需保存和恢复这些寄存器,从而实现了最快的上下文切换。
  • 模式切换

    • 被动切换:异常或中断发生时,处理器会自动进入对应的模式。
    • 主动切换:在特权模式下,可以通过直接修改当前程序状态寄存器(CPSR)的模式位来主动切换模式。

小结

模式名 是否为特权模式 主要功能
用户模式(usr) 运行应用程序
系统模式(sys) 运行操作系统任务
快速中断模式(fiq) 处理快速中断
外部中断模式(irq) 处理普通中断
管理模式(svc) 处理复位、软中断
中止模式(abt) 处理内存访问异常
未定义模式(und) 处理未定义指令
相关推荐
学无-止境4 小时前
STM32H743 + CMSIS-RTOS2 + Mongoose 网络协议栈移植教程
arm开发·物联网
振南的单片机世界1 天前
单片机:一颗芯片包办CPU、内存、外设的“单芯片计算机”
arm开发·stm32·单片机·嵌入式硬件
振南的单片机世界2 天前
地址总线定门牌号,数据总线搬货量:CPU的“寻址”与“搬运”
arm开发·stm32·单片机·嵌入式硬件
2401_854151553 天前
ARM Cortex-M 体系结构深度解析——寄存器模型、处理器模式、AAPCS 与异常模型
arm开发·stm32·单片机·嵌入式硬件
zlinear数据采集卡4 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
keep7545 天前
ARM NEON 向量优化在图像处理中的应用:降低 CPU 开销,提升模式切换稳定性
arm开发·图像处理·人工智能
zlinear数据采集卡7 天前
从协议解析到波形实时显示:硬核拆解ZLinear采集卡上位机软件的开发架构
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源
奔跑的架构师7 天前
[A-48]ARMv9/v8-电源状态管理机制(PSCI协调机制)
android·linux·arm开发·arm
想你依然心痛7 天前
RT-Thread组件生态:SAL网络框架与AT组件实战——网络抽象、AT指令
网络·arm开发·at·sal
secondyoung8 天前
Cortex-R52学习:存储系统
arm开发·单片机·学习·arm