ARM概述

 一、前言:嵌入式系统: 是指以应用为中心,以计算机技术为基础,软件和硬件可以裁剪, 适应应用系统对功能的、可靠性、体积和功耗严格要求的专用计算机系统。
        ARM技术的发展历程:第一片ARM处理器是在1983年10月到1985年4月位于英国剑桥的ACRON COMPUTER公司开发的。于1985年4月26日在ACRON公司进行了首批ARM样片测试并成功运行了测试程序。1990年11月ARM公司在英国剑桥的一个谷仓里成立最初只有12人。
1、ARM体系的结构版本:
    版本1  :   V1体系
        *处理乘法指令以外的基本数据处理指令。
        *基于字节、字和多字的LOAD/STORE指令。
        *包括子程序BL在内的跳转指令。
        *共操作系统使用的软件中断指令:SWI。
        *本版本总地址空间是26位,目前已经不在使用。(2^26 = 64MB)
     版本2  :   V2体系
        *乘法指令和乘加指令。
        *支持协处理器的指令。
        *对于FIQ模式,提供额外的两个备份寄存器。
        *SWP指令及SWPB指令。
        *本版本总地址空间是26位,目前已经不在使用。
    版本3  :    V3体系
        *地址扩展到32位,除去3G版本以外的其他版本是向前兼容的,支持26位地址空间。
        *程序状态寄存器从原来的R15移动到新的专用寄存器:Current Program Status Register
        *增加了SPSR用于异常中断程序时,保存被中断程序的状态。Saved Program Status Register
        *增加了两种处理器模式,是操作系统代码可以方便地使用数据访问中止异常、指令预取异常和未定义指令异常。
        *增加了MSR,MRS。用于访问CPSR,SPSR寄存器。
        *修改了原来版本中的从异常返回的指令。
     版本4  :  V4体系
        *半字的读取和写入指令。
        *读取(LOAD)带符号的字节和半字数据的指令。
        *增加了T变种,可以使处理器切换到Thumb状态。
        *增加了处理器的特权模式。在该模式下使用的是用户模式下的寄存器。
        *版本4中明确定义了哪些指令会引起未定义指令异常。版本4不再强制要求于以前的26位地址空间兼容。
     版本5  :  V5体系
        *提高了T变种中ARM/THUMB混合使用的效率。
        *对T变种的指令和非T变种的指令使用相同的代码生成技术。
        *增加了前导零计数(COUNT LEADING ZEROS)指令,该指令可以使整数除法和中断优先级排队操作的更为有效。
        *增加了软件断点指令。
        *为协处理器提供了更多的可选择的指令。
        *更加严格的定义了乘法指令堆条件标志位的影响。
    版本6  :  V6体系
        *2001年发布,其主要特点是增加了SIMD功能扩展。它适合永电池供电的高性能便携式设备。
2、ARM体系变种及命名格式
  ARM体系的变种:
     
T(THUMB)。
      M(长乘法指令)。
      E(增强型DSP指令)。
      J(JAVA加速器JAZELLE)。
      SIMD(ARM多媒体扩展)。
 命名格式
      ARM v5  T exP
     ┃ ┃ ┃ ┃
     ┃ ┃ ┃ ┖要排除的功能
     ┃ ┃ ┖变种名称
     ┃ ┖版本号
     ┖ARM字符串
3、ARM处理器系列 
   ARM7:
           ARM7TDMI,ARM7TDMI-S,ARM7EJ-S,ARM720T-4
            AMR7 T D M I - S
              ┃ ┃┃┃┃  ┃
              ┃ ┃┃┃┃  ┖可综合(SYNTHESIZABLE)版本软核
              ┃ ┃┃┃┖EmbededICE硬件调试仿真功能
              ┃ ┃┃┖64位乘法指
              ┃ ┃┖片上调试
              ┃ ┖THUMB指令
              ┖AMR7
    ARM9:
            ARM9系列处理器使用了ARM9TDMI内核,其中包含了16位的THUMB指令集。
    ARM9E:
            ARM9E系列处理器使用单一的处理器内核提供了微控制器、DSP、JAVA应用系统的解决方案,从而极大的减小了芯片的大小及复杂程度,
降低了功耗缩短了产品面世的时间。
    ARM10E:
            ARM10E系列处理器有高性能和低功耗的特点。其采用了新的节能模式,提供了64位的读取和写入体系,包含向量操作的满足IEEE754的
浮点运算协处理器,系统集成更加方便,拥有完整的硬件和软件可开发工具。
     包含:ARM1020E,ARM1022E,ARM1026EJ-S
     SECURCORE:
     提供了基于高性能的32位RISC技术的安全解决方案。
          包含:SECURCORE SC100, SECURCORE SC110, SECURCORE SC200,SECURCORE SC210。
4、ARM处理器模式
   7种运行模式:
        USR(用户模式).          特权模式 :SYS(系统)       异常模式:FIQ(快速中断)          IRQ(外部中断)             SVE(特权)               ABT(数据访问中止)         UND(未定义)
5、ARM寄存器介绍
   37个寄存器:
       第一类:31个通用寄存器,包括PC在内。都是32位的。
       第二类:6个状态寄存器,都是32位的目前只使用了一部分的位。
     
         寄存器R13在ARM中常用作栈指针,每一种异常模式拥有自己的物理的R13。应用程序初始化该R13,使其指向该异常模式专用的栈地址。
当进入异常模式时,可以将需要使用的寄存器保存在R13所指向的栈指针中,退出时将保存在R13所指的栈中的寄存器弹出。
         寄存器R14,又称连接寄存器LR,每一种处理器模式自己物理R14中存放在当前程序的返回地址,使用如下指令可实现子程序的返回操作:
        MOV   PC    ,LR
        BX       LR
        在子程序入口使用下面的指令将PC保存在栈中:STMFD     SP!  ,{<register>,LR}   ,相应返回指令:LDMFD     SP!  ,{<register>,PC} 
        寄存器R15,又称PC,读取PC值与写入PC值的非对称操作需要特别注意,如MOV  PC ,PC 两个PC所代表的值是不一样的。
6、ARM处理器对异常中段的处理过程
       *保存处理器当前状态、中断屏蔽位以及各条件标志位(将CPSR内容保存到SPSR中)
       *设置当前程序状态寄存器CPSR中的相应位,使处理器进入相应的执行模式
       *将寄存器Ir_mode设置成返回地址
       *将程序计数器值PC设置成异常中断的中断向量地址,并跳到相应的异常中断处理程序执行
7、从异常中断处理程序中返回
       *恢复中断程序的处理器状态
       *返回到发生异常中断指令下一条指令处执行
       *复位异常中断处理程序不需要返回

      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值