ARM学习笔记(二)

 


嵌入式处理器分类
目前的嵌入嵌入式处理器按其体系结构不同可分为五大类:
  ARM(Advance RISC Machine)
  MIPS
  POWER PC
  X86
  SH系列

ARM体系结构的版本(V1-V6)
每一个ARM处理器都有一个特定的指令集架构ISA(Instruction Set Architecture),每一个ISA版本可以有多种   不同的处理器实现。
  ARM ISA至今已有六种不同版本V1-V6:
  
        V1-V2寻址空间都为64M;
  V3寻址空间扩充到32位(4G),增加了当前程序状态寄存器CPSR(Current Program Status Register)和程序    状态保存(备份)寄存器SPSR(Saved Program Status Register)以便处理异常;
  V4为目前应用最广的体系结构,在V3的基础上增加了16位的Thumb指令集;
  V5-V6。

ARM处理器的数据类型
字(Word):ARM体系结构中字长为32位,其它8/16位处理器结构中字长一般为16位;
  半字(Half-Word):16位;
  字节(Byte):8位。

ARM微处理器的工作状态
ARM微处理器一般有两种工作状态,并可能两种状态之间切换。
  1ARM状态:此时处理器执行32位的字对齐的ARM指令;
  2Thumb状态:此时处理器执行16位的半字对齐的Thumb指令。

ARM处理器的工作模式
        1User:非特权模式,也是正常程序执行的模式,大部分任务在这种模式下执行;
  2FIQ:当一个高优先级的中断(fast)产生时会进入这种模式,用于高速数据传输和通道处理;
  3IRQ:当一个低优先级的中断(normal)产生时会进入这种模式,用于通常的中断处理;
  4Supervisor:当复位或软中断指令执行时会进入这种模式,是供操作系统使用的一种保护模式;
  5Abort:当存取产生异常时进入这种模式,用于虚拟存储及存储保护;
  6Undef:当执行未定义指令时会进入这种模式,用于软件仿真硬件的协处理器;
  7System:使用和User模式相同寄存器组的特权模式,用于完成特权级的操作系统任务。
  
  其中2-6为异常模式(Exception Mode),2-7为特权(Privileged Mode)模式。
  
  模式的改变方法有:软件控制(通过软件改变CPSR的模式位,外部中断,异常处理。通常在User模式下不        能访问受保护的系统资源,一般不能改变模式,异常发生时可能导致模式改变。


ARM寄存器描述
ARM有37个32位长的寄存器,其中:
    1个用作PC(Program Counter);
    1个用作CPSR(Current Program Status Register);
    5个用作SPSR(Saved Program Status Register);
    30个通用寄存器(General-purpose registers includes program counter)。
  当前的处理器工作模式决定那些寄存器可以操作,任何模式都可以存取:
    相应的R0-R12的子集;
    相应的R13(The Stack Pointer,堆栈指针寄存器)SP;
    相应的R14(The Subroutine Link Register,子程序连接寄存器)LR;
    相应的R15(The Program Counter);
    相应的CPSR(Current Program Status Register)。
  特权模式(除System外)还可以存取SPSR(Saved Program Status Register)。

  通用寄存器包括R0-R15,可分为三类:
    未分组寄存器(R0-R7);
    分组寄存器(R8-R14);
    程序计数器PC(R15)。
  
  寄存器R15用作PC,由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,R15-程序计数器总   是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址加上8个字节。
  寄存器R16用作CPSR,可在任何CPU工作模式下被访问,它包括条件标志位,中断禁止位,当前处理器模  式标志位以及其它一些控件和状态位。
    每一种CPU工作模式下都有一个专用的物理状态寄存器SPRS(备份程序状态寄存器),当异常发        生时SPRS用于保存当前CPRS的值,当从异常中退出时可由SPSR恢复CPSR。
       
        程序状态寄存器
        31 30 29 28 27  26位到第8位 7 6 5 4 3 2 1 0
N Z C V Q reserved for future expansion I F T M M M M M


        其中各位的具体含义如下:
         条件码标志的具体含义
                 N(negative):当用两个用补码表示的带符号数进行运算时,N=1表示运算结果为负,N=0表示结果为                                         正或0;
                 Z(Zero):Z=1表示运算结果为0,Z=1表示运算结果为非零;
                 C(Carry:进位/借位):有4种方法设置C值
                        加法运算(包括比较指令CMN),当运算结果产生进位时C=1,否则C=0;
                        减法运算(包括比较指令CMP),当运算结果产生了借位(无符号溢出)时C=0,否则C=1;
                        对移位操作,C值为移位结果的最后一位;
                        对于其它非加减法指令,C值通常不变。
                 V(Overflow):有两种方法设置V值
                        对于加减法运算,当操作数和运算结果为二进制的补码形式表示的带符号数时,V=1表示符号位溢                        出;对于其它非加减法运算指令,C值通常不变。
                Q:有ARM V5及以上版本E系列处理器中,用Q位表示增强的DSP运算指令是否发生了溢出,在其它版                       本的处理器中,Q标志位无效。
          中断禁止位I,F:
                I=1,禁止IRQ中断;
                F=1,禁止FRQ中断。
          T标志位反映处理器的运行状态
               对ARM体系结构V5及以上的版本的T系列处理器,T=1表示运行于Thumb状态,T=0表示运行于                 ARM状态。
          模式位M[4:0]的值,处理器模式,可访问的寄存器
           M[4:0]=0b10000,用户模式(User),R0-R14、PC、CPSR;
           M[4:0]=0b10001,FIQ模式,R0-R7、R8_fiq-R14_fiq、PC、CPSR、SPSR_fiq;
           M[4:0]=0b10010,IRQ模式,R0-R12、R13_irq、R14_irq、PC、CPSR、SPSR_irq;
           M[4:0]=0b10011,Supervisor模式,R0-R12、R13_svc、R14_svc、PC、CPSR、SPSR_svc;
           M[4:0]=0b10111,Abort中止模式,R0-R12、R13_abt、R14_abt、PC、CPSR、SPSR_abt;
           M[4:0]=0b11011,Undel未定义模式,R0-R12、R13_und、R14_und、PC、CPSR、SPSR_und。

 

ARM  Register  organization

  <!--[if !vml]--><!--[endif]--> Privileged modes
 
    <!--[if !vml]--><!--[endif]--> Exception modes
 
User System SuperVisor Abort Undefined Interrupt Fast Interrupt
R0 R0 R0 R0 R0 R0 R0
R1 R1 R1 R1 R1 R1 R1
R2 R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3 R3
R4 R4 R4 R4 R4 R4 R4
R5 R5 R5 R5 R5 R5 R5
R6 R6 R6 R6 R6 R6 R6
R7 R7 R7 R7 R7 R7 R7
R8 R8 R8 R8 R8 R8 R8_fiq
R9 R9 R9 R9 R9 R9 R9_fiq
R10 R10 R10 R10 R10 R10 R10_fiq
R11 R11 R11 R11 R11 R11 R11_fiq
R12 R12 R12 R12 R12 R12 R12_fiq
R13 R13 R13_svc R13_abt R13_und R13_irq R13_fiq
R14 R14 R14_svc R14_abt R14_und R14_irq R14_fiq
PC PC PC PC PC PC PC
 
CPSR CPSR CPSR CPSR CPSR CPSR CPSR
    SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq
图中阴影部分表示分组寄存器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值