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