ARM的基本设定
ARM约定
- Byte:8 bit
- Halfword:16 bit (2 Byte)
- Word:32 bit(4 Byte)
大部分ARM core 提供
-ARM指令集(32-bit),接着出的这个指令集
-Thumb指令集(16-bit),最先出的
-Thumb2指令集(16 &32 bit),可以理解为Thumb+ARM指令集
jazelle cores 支持 Java bytecode
ARM处理器工作模式
- User:非特权模式,大部分任务执行在这个模式
- FIQ:当一个高优先级(fast)中断产生时将会进入这个模式
- IRQ:当一个低优先级(normal)中断产生时将会进入这个模式
- Supervissor:当复位或软中断指令执行时将会进入这个模式
- Abort:当存取异常时将会进入这个模式
- Undef:当执行未定义指令时会进入这个模式
- System:使用和User模式相同寄存器集的特权模式
注意
- 除User(用户模式)是Normal(普通模式)外,其他6种都是Privilege(特权模式)。
- Privilege中除Sys模式外,其余5种异常模式
- 各种模式的切换,可以是程序员通过代码主动切换(通过写CPSR寄存器);也可以是CPU在某些情况下自动切换
- 各种模式下权限和可以访问的寄存器不同
CPU为什么设计这些模式
- CPU是硬件,OS是软件,软件的设计要依赖硬件的特性,硬件的设计要考虑软件需要,便于实现软件特性。
- 操作系统有安全级别的要求,因此CPU设计多种模式是为了方便操作系统的多种角色安全等级需要