ARM处理器

 

 

目前主流的32位嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerRPC系列等。

 

ARM处理器

ARM(Advanced RISC Machine)有三种含义,首先是一个公司的名称,是一类微处理器的统称,还是一种技术的名称,

ARM公司是一家专门 从事芯片IP设计与授权业务的英国公司,其产品有ARM内核以及外围接口。ARM内核是一种32位RISC微处理器,具有功耗低、性价比高和代码密度高等特点。

ARM微处理器体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式 RISC微处理器结构。

最常用的ARM7TDMI,T代表支持Thumb指令集,D代表支持片上调试,M代表内嵌硬件乘法器,I代表支持片上断点和调试点。

ARM9与ARM7相比,最显著的区别是流水线从3级增加到5级,同时具有分开的指令和数据存储器。

 

ARM处理器具有RISC体系结构的典型特征,同时还有以下特点:

1、在每条数据处理指令中,都控制算术逻辑单元ALU和移位器, 以使ALU和移位器获得最大的利用率。

2、同时执行Load和Store多条指令,以增加数据吞吐量。

3、自动递增和自动寻址模式,以优化程序中的循环。

4、所有指令都可以条件执行,以提高执行吞吐量。

 

ARM的运行模式

 

ARM处理器有7种模式,如下表所示。大多数应用程序在User模式下执行,当出现 特定的异常时,进入相应的6种异常模式之一。


除User模式外,其它模式都被称为特权模式,可以存取系统中的任何资源。软件可以控制CPU模式的改变,外部中断也可以引起模式的

改变。

 

处理器模式

说明

用户模式(User

正常程序执行模式,用于应用程序

快速中断模式(FIQ

快速中断处理,用于高速数据传输或通道处理

外部中断模式(IRQ

用于通用的中断处理

管理模式(Supervisor

特权模式,操作系统使用的保护模式

数据访问终止模式(Abort

存储器保护异常处理

未定义的指令终止模式(Undefined

未定义指令异常处理

系统模式(System

运行特权操作系统任务(ARM v4版本以上)

 

ARM寄存器结构

ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,这些寄存器不能被 同时访问,取决于具体 的 运行模式。但在任何时候,通用寄存器R0~R14、程序计数器PC(R15)、一个或两个状态寄存器都是可访问的。

1、通用寄存器R0~R15.它们也可分为三类:

  • 未分组的的寄存器R0~R7。这8个寄存器是真正意义上的通用寄存器,它们的功能是等同的。
  • 分组的寄存器R8~R14.程序访问的物理寄存器取决于当前的处理器模式。
    • R8~R12:每个寄存器对应两个不同的物理寄存器:一组是FIq模式;另一组是除FIQ模式以处的其它模式。
    • R13~R14:每个寄存器对应6个不同的物理寄存器,一组用于用户模式和系统模式,其它5组分别用于5种异常模式。
    • R13被用作堆栈指针(SP指针)
    • R14(也称为子程序链接寄存器LR)有两个用途:一是在调用 子程序时用于保存调用返回地址;二是在发生异常时用于保存异常返回地址。
  • 程序计数器R15(或者PC)。用作程序计数器PC。

2、当前程序状态寄存器CPSR。CPSR在所有模式下都是可以读/写的。它主要包含条件标志、中断标志、当前处理器的模式、其它的一些状态和控制标志。CPSR的格式 如下:

 

31

30

29

28

27          8

DNM(RAZ)

7

6

5

4

3

2

1

0

N

Z

C

V

I

F

T

M4

M3

M2

M1

M0

 

  • 条件标志包括N、Z、C、V
    • N表示Negative,负标志
    • Z表示Zero,零标志
    • C表示Carry,进位标志
    • V表示Overflow,溢出标志
  • 中断标志包括 I、F
    • I置1表示禁止IRQ中断的响应,置0表示允许CPU响应IRQ中断
    •  F置1表示禁止FIQ中断的响应,置0表示允许CPU响应FIQ中断
  • ARM/Thumb控制标志T
    • T置0表示执行32bits的ARM指令
    • T置1表示执行16bits的Thumb指令
  • 模式控制位M0~M4,见下表:

     

    模式控制位M0~M4

    M40

    模式

    可用寄存器

    0b10000

    User

    PC,R14~R0,CPSR

    0b10001

    FIQ

    PC,R14_fiq~R0_fiq,R7~R0,CPSR,SPSR_fiq

    0b10010

    IRQ

    PC,R14_irq,R13_irq,R12~R0,CPSR,SPSR_irq

    0b10011

    Supervisor

    PC,R14_svc,R13_svc,R12~R0,CPSR,SPSR_svc

    0b10111

    Abort

    PC,R14_abt,R13_abt,R12~R0,CPSR,SPSR_abt

    0b11011

    Undefined

    PC,R14_ und ,R13_und,R12~R0,CPSR,SPSR_und

    0b11111

    System

    PC,R14~R0,CPSR

 

内存和I/O地址

    ARM的寻址空间是线性地址空间,最大4GB。ARM支持大端和小端的内存数据方式,可以通过硬件的方式设置端模式。

    I/O端口的编址方法有两种:I/O映射编址和存储器映射编址。

  • I/O映射编址。I/O映射编址采用I/O端口与内存单元分开编址,互不影响。I/O单元与内存单元都有自己独立的地址空间,通过专门的输入指令(IN)和输出指令(OUT)来完成I/O操作。
    • 优点是i/o单元不占用内存空间,易区分 i/o程序
    • 缺点是只用i/o指令访问端口,功能有限且要采用专用 i/o周期和专用i/o控制线,使微处理器复杂化。X86体系的微处理器大多采用i/o映射编址方式。

                

 i/o地址空间                                                                                                    系统地址空间

 

I/O设备2

 

I/O设备1

 

 

 

0xFFFF                 

                                       

 

                                                             0xFFFF              

0x0000      

 

                                                                                                                 

 

                                                                                                                 0x0000

  • 存储器映射编址。存储器映射编址采用i/o端口的地址与内存地址统一编址方式,i/o单元与内存单元共享同一地址空间;不区分存储器地址空间和i/o端口地址,把所有的i/o端口都当做是存储器的一个单元 对待。不设专门 的输入/输出指令,所有传送和访问传感器的指令都可用来对i/o端口操作。
    • 优点:可采用丰富的内存操作指令访问i/o单元 ,无需单独的i/o地址译码电路,无需专用的i/o指令。
    • 缺点:外设占用内存空间,不易区分i/o程序 ,ARM微处理器大多采用存储器映射的编址方式

  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值