1.2.12、ARM的编程模式和7种模式

ARM 226浏览


  1. ARM的基本设定

    1. ARM 采用的是32位架构.
    2. ARM 约定:
      -. Byte:8 bits
      -. HalfWord:16 bits(2 byte)
      -. Word:32 bits(4 byte)
    3. 大部分ARM core 提供:
      -. ARM 指令集(32-bit)
      -. Thumb 指令集(16-bit )
      -. Thumb2指令集(16 & 32bit)
    4. Jazelle cores 支持 Java bytecode
  2. ARM处理器工作模式

    1. ARM 有7个基本工作模式:
      -. User : 非特权模式,大部分任务执行在这种模式
      -. FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式
      -. IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式
      -. Supervisor :当复位或软中断指令执行时将会进入这种模式
      -. Abort : 当存取异常时将会进入这种模式
      -. Undef : 当执行未定义指令时会进入这种模式
      -. System : 使用和User模式相同寄存器集的特权模式
  3. 注意

    1. 除User(用户模式)是Normal(普通模式)外,其他6种都是Privilege(特权模式)
    2. Privilege中除Sys模式外,其余5种为异常模式
    3. 各种模式的切换,可以是程序员通过代码主动切换(通过写CPSR寄存器);也可以是CPU在某些情况下自动切换
    4. 各种模式下权限和可以访问的寄存器不同
  4. CPU为什么设计这些模式?

    1. CPU是硬件,OS是软件,软件的设计要依赖硬件的特性,硬件的设计要考虑软件需要,便于实现软件特性
    2. 操作系统有安全级别要求,因此CPU设计多种模式是为了方便操作系统的多种角色安全等级需要