S5PV210系列(裸机二) ARM的编程模式、7种模式和37个寄存器
2017-05-09 12:05
411 查看
ARM的基本设定
ARM 采用的是32位架构. ARM 约定: Byte : 8 bits Halfword :16 bits (2 byte) Word : 32 bits (4 byte) 大部分ARM core 提供: ARM 指令集(32-bit) Thumb 指令集(16-bit ) Thumb2指令集(16 & 32bit) Jazelle cores 支持 Java bytecode
ARM处理器工作模式
ARM 有7个基本工作模式: User : 非特权模式,大部分任务执行在这种模式 FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式 IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式 Supervisor :当复位或软中断指令执行时将会进入这种模式 Abort : 当存取异常时将会进入这种模式 Undef : 当执行未定义指令时会进入这种模式 System : 使用和User模式相同寄存器集的特权模式
Note:
除User(用户模式)是Normal(普通模式)外,其他6种都是Privilege(特权模式)。 Privilege中除Sys模式外,其余5种为异常模式。 各种模式的切换,可以是程序员通过代码主动切换(通过写CPSR寄存器);也可以是CPU在某些情况下自动切换。 各种模式下权限和可以访问的寄存器不同。
ARM的37个寄存器详解
1、ARM共有37个寄存器,都是32位长度,但是每种模式下最多只能看到18个寄存器,其他寄存器虽然名字相同但是在当前模式不可见。 2、37个寄存器中30个为“通用”型,1个固定用作PC,一个固定用作CPSR,5个固定用作5种异常模式下的SPSR。 3、对r13这个名字来说,在ARM中共有6个名叫r13(又叫sp)的寄存器,但是在每种特定处理器模式下,只有一个r13是当前可见的,其他的r13必须切换到他的对应模式下才能看到。这种设计叫影子寄存器(banked register)
CPSR程序状态寄存器
条件位: N = Negative result from ALU Z = Zero result from ALU C = ALU operation Carried out V = ALU operation oVerflowed Q 位: 仅ARM 5TE/J架构支持 指示饱和状态 J 位: 仅ARM 5TE/J架构支持 J = 1: 处理器处于Jazelle状态 中断禁止位: I = 1: 禁止 IRQ. F = 1: 禁止 FIQ. T 位: 仅ARM xT架构支持 T = 0: 处理器处于 ARM 状态 T = 1: 处理器处于 Thumb 状态 Mode位: 处理器模式位
相关文章推荐
- ARM的7种工作模式、37个通用寄存器、CPSR程序状态寄存器
- ARM体系结构笔记①---(ARM的7种模式、寄存器、存储空间、指令、中断、最小系统)
- ARM处理器的寄存器,ARM与Thumb状态,7种运行模式
- ARM裸机编程系列----系统时钟与定时器
- ARM编程模式和7种模式
- 朱老师ARM裸机学习笔记(五):ARMCPU工作模式以及寄存器讲解
- ARM的编程模式和7种工作模式
- ARM裸机程序开发——ARM运行模式及寄存器
- ARM寄存器的7种工作模式和几种寻址方式
- ARM第一部分-ARM的编程模式和7种工作模式
- 1.10.ARM的编程模式和7种工作模式
- 1.2.12、ARM的编程模式和7种模式
- ARM内核寄存器 两种状态 7种工作模式
- ARM的编程模式和7种模式
- ARM寄存器的7种工作模式
- 《Cortex™-A系列编程者指南(V3.0)》第4章<ARM寄存器、工作模式和指令集>笔记
- ARM裸机编程需要知道的知识3--寄存器
- arm裸机编程
- ARM裸机开发(二)中断编程
- ARM汇编编程基础之一 —— 寄存器