欢迎光临
我们一直在努力

ARM 处理器的工作状态及工作模式

目录

ARM处理器的工作状态

ARM处理器的工作状态及切换

ARM与Thumb间的切换

ARM处理器的工作模式

程序状态寄存器

工作模式转化


  • ARM处理器的工作状态
  • ARM处理器的工作状态及切换
  • 三种状态
  • ARM状态:执行32位指令的状态,所有指令均为32位
  • Thumb状态:执行16位指令的状态,代码密度大,占用内存空间小,性能更优
  • 调试状态:处理器停机调试时进入的状态
  • 复位状态特性
  • 除Cortex-M系列,所有ARM处理器复位后默认进入ARM状态
  • Cortex-M系列只有Thumb状态和调试状态
  • ARM与Thumb间的切换
  • 切换机制
  • BX指令:通过设置操作数寄存器最低位实现状态切换
  • ARM→Thumb:设置R[0]=1后执行BX R[0]
  • Thumb→ARM:设置R[0]=0后执行BX R[0]
  • 异常处理特性
  • 异常处理必须在ARM状态下进行
  • Thumb状态发生异常时:自动切换到ARM状态处理,返回时自动恢复Thumb状态
  • ARM状态发生异常时:保持ARM状态不变
  • ARM处理器的工作模式
  • 工作模式 功能 寄存器访问 标识值CPSR[M4:M0]
    用户模式User 程序正常执行的工作模式 PC,R14~R0,CPSR 10000
    快速中断模式FIQ 处理高速中断(如数据传输) PC,R14_fiq~R8_fiq 10001
    外部中断模式IRQ 处理普通中断(如键盘、鼠标) PC,R14_irq~R13_irq 10010
    管理模式SVC 操作系统保护,处理软中断SWI PC,R14_svc~R13_svc 10011
    中止模式ABT 处理存储器故障(如缺页异常) PC,R14_abt~R13_abt 10111
    未定义指令模式UND 处理未定义指令陷阱,支持硬件协作处理器仿真 PC,R14_und~R13_und 11011
    系统模式SYS 运行特权级操作系统任务(最高优先权,自由切换工作模式) PC,R14~R0,CPRS 11111
  • 程序状态寄存器
  • CPSR作用
  • 32位寄存器,通过低5位(M4:M0)标识当前工作模式
  • 其他位包含运算标志位(溢出/零标志等)和中断控制位
  • 模式标识
  • 用户模式:10000
  • 系统模式:11111
  • 工作模式转化
  • 转换规则
  • 用户模式→其他模式:必须通过异常触发
  • 系统模式→任意模式:可直接修改CPSR值切换
  • 异常发生时:处理器自动修改CPSR[M4:M0]进入对应模式
  • 赞(0)
    未经允许不得转载:171主机测评 » ARM 处理器的工作状态及工作模式
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址