ARM微处理器编程模型_第1页
ARM微处理器编程模型_第2页
ARM微处理器编程模型_第3页
ARM微处理器编程模型_第4页
ARM微处理器编程模型_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.1ARM体系结构ARM概述ARM(AdvancedRISCMachines,1991Cambridge),所设计的基于RISC技术IP内核已成为绝大部分嵌入式系统核心工业控制领域过程控制、电力控制、数控机床、ABS无线通讯领域

基站、带蓝牙/定位等的手机/PDA、GPS网络应用

ADSL、路由器、交换机、VoIP消费类电子产品

DVD、机顶盒、游戏机成像产品

数码相机、打印机、录像机安全产品

ATM机、POS机、考勤系统、SIM卡全球处理器75%以上的市场份额;到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器,“掌上计算”相关的所有领域皆为其所主宰;RISC的简单结构简化ARM内核,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。使用单周期指令,便于流水线操作执行。大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。用加载/存储指令批量传输数据,以提高数据的传输效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。在循环处理中使用地址的自动增减来提高运行效率。

ARM体系特点

ARM处理器系列ARM7ARM9ARM10ARM11流水线3568典型频率MHz80150260335功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS/MHz0.971.11.31.2架构冯

诺伊曼哈佛哈佛哈佛取指(Fetch)译码(Decode)执行(Exec)取指(Fetch)译码(Decode)执行(Exec)访问(Memory)回写(Write)取指(Fetch)发射(Issue)译码(Decode)执行(Exec)访问(Memory)回写(Write)取指(Fetch)取指(Fetch)发射(Issue)译码(Decode)转换(Snny)执行(Exec)访问(Memory)回写(Write)ARM7ARM9ARM10ARM11指令集典型内核应用领域ARM7ARM,ThumbARM7TDMI,ARMTDMI-S,ARM720T,ARM7EJ工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用ARM9ARM,ThumbARM920T,ARM922TARM940T无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等ARM9EARM,ThumbARM926EJ-S,ARM946E-S,ARM966E-S,ARM968EJ-S下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域ARM10EDSP,ARM,ThumbARM1020E,ARM1022E,ARM1026EJ-S下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域ARM产品命名规则ARM[x][y][z][T][D][M][I][E][J][F][-S]系列2带有MMU4带有MPU6无MMU/MPU0标准cache2减小cache6可变cacheThumb指令集JTAG调试器快速乘法器嵌入式跟踪宏单元增强指令Jazzlle加速向量浮点单元可综合版本ARM946E-SARM720TARM7TDMIARM7TDMI以后的ARM核,”TDMI”功能为默认配置7.2ARM编程模型ARM两种工作状态

ARM状态:执行32位(字)ARM指令集

Thumb状态:执行16位(半字)Thumb指令集说明1.处理器复位后处于ARM状态;2.处理器异常处理时进入ARM状态;3.若处理器在Thumb状态进入异常,则异常返回仍然自动转换到Thumb状态;4.状态切换不影响工作模式及寄存器内容。MOVR5,#0x00120005;最后bit0=1表示切换到Thumb状态BXR5 ;转移到0x00120005地址执行Thumb指令ARMCPU数据通路ARMCPU控制逻辑ARMCPUARM内核ARMCPUARM内核ARM芯片处理器运行模式处理器模式说明备注用户(usr)正常程序执行模式不能直接切换到其它模式系统(sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护模式系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护数据或指令预取出错时进入未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式处理器模式用户(usr)系统(sys)快中断(fiq)中断(irq)管理(svc)中止(abt)未定义(und)系统(sys)快中断(fiq)中断(irq)管理(svc)中止(abt)未定义(und)特权模式快中断(fiq)中断(irq)管理(svc)中止(abt)未定义(und)异常模式通过修改PSR寄存器D0~D4实现模式切换或通过异常切换到异常模式通过异常切换到异常模式处理器模式切换每种异常模式对应一组寄存器供相应的异常处理程序使用

ARM寄存器组织共37个32bit寄存器(有ARM和Thumb两种组织方式)。寄存器的使用与处理器运行模式有关。不分组寄存器——所有模式共用(其中每一个都指向一个物理寄存器)分组寄存器——与工作模式有关。R8_fiq~R12_fiq通用寄存器R0~R7R8~R12R13_<mode>R14_<mode>快中断模式下其余模式下R13、R14异常模式下。根据不同模式各有5个寄存器用户、系统模式下程序计数器PCR15状态寄存器CPSRSPSR_<mode>所有模式异常模式下。作CPSR的副本寄存器用户系统管理中止未定义中断快中断不分组寄存器R0R0R1R1R2R2R3R3R4R4R5R5R6R6R7R7分组寄存器R8R8R8_fiqR9R9R9_fiqR10R10R10_fiqR11R11R11_fiqR12R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)程序计数器R15CPSR状态寄存器CPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆栈指针指向该模式下的堆栈空间链接寄存器保存子程序返回地址或异常处理返回地址R8~R14专用于FIQ的分组,有利于加快FIQ处理备份程序状态寄存器用户系统管理终止未定义中断快中断1PC指示处理器要取的下一条指令的地址。由于流水线机制,PC值为当前指令地址值加8个字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址;2ARM指令是字对齐。对于ARMV4以及更高的版本,程序必须保证写入R15寄存器的地址值的bits[1:0]为0b00,否则将会产生不可预知的结果;对于Thumb指令集(16位)来说,指令是半字对齐的。处理器将忽略bit[0]。写入R15的值被看作程序转移的目标地址。3指令BX利用bit[0]来确定是ARM指令,还是Thumb指令。这种读取PC值和写入PC值的不对称的操作需要特别注意。关于程序计数器R15(PC)关于程序状态寄存器CPSR反映ALU状态标志、当前工作模式、中断允许标志;可在任何模式下被访问(指令MRS/MSR);每种异常模式有专用寄存器SPSR备份CPSR,便于从异常退出时恢复CPSR。NZCV……IFTM4M3M2M1M0b31b30b29b28……b7b6b5b4b3b2b1b0符号标志:当补码运算结果为负时,N=1;否则N=0。零标志:当运算结果为0时,Z=1;否则Z=0。进位标志:加法/减法(包括比较指令CMN/CMP)有进位/借位时C=1/0,其他情况C=0/1。对于移位操作,C=移出值的最后一位。其他非加/减运算指令,C通常不变。溢出标志对于带符号数加减运算V=1符号位溢出;V=0符号位未溢出;其他非加/减运算指令,V通常不变符号标志:当补码运算结果为负时,N=1;否则N=0。b31b30b29b28……b7b6b5b4b3b2b1b0NZCV……IFTM4M3M2M1M0一般指令带S后缀时,执行结果会影响条件码;但有一些指令的执行总是会影响条件码。中断禁止标志

I=1:禁止IRQ;F=1:禁止FIQ运行状态标志T=0:运行于ARM状态T=1:运行于Thumb状态M4~M0处理器模式10000User10111Abort10001FIQ11011Underfined10010IRQ11111System10011SupervisorThumb状态寄存器组织R0R1R2R3R4R5R6R7SPLRPCCPSRSPSR通用寄存器堆栈指针链接寄存器程序计数器完全访问R13R14R15限制访问间接访问不能访问ARM状态寄存器组织的子集无R8~R15,但可使用汇编语言程序有限制访问数据类型与格式字节:8位半字:16位字:32位以上类型均支持unsigned:二进制格式表示范围为0~2n-1的非负整数;signed:补码格式表示范围为-2n-1~+2n-1-1的整数所有数据类指令的操作数都是“字”0x0210~0x02170x0218~0x021F0x0220~0x0227数据类型信息按字长访问,在存储器中按整数边界存储信息长度整数边界8位(字节)x…xxxx16位(半字)x…xxx032位(单字)x…xx0064位(双字)x…x000122334558字节123458字节ARM体系最大寻址空间4GB(232)。存储器编址从0x00000000开始,以字节为单位。支持大端格式/小端格式小端格式

高字节→高地址;低字节→低地址大端格式

高字节→低地址;低字节→高地址地址大端格式小端格式0x000000000x120x780x000000010x340x560x000000020x560x340x000000030x780x12字数据0x12345678存放I/O地址采用存储器地址映射(统一编址)异常(exception)程序执行流程被短暂停止(包括正常的外部中断Interrupt)异常种类异常类型对应异常模式优先级复位(Reset)Supervisor数据中止(DataAbort)AbortFIQFIQIRQIRQ指令预取中止(PrefetchAbort)Abort未定义指令(Undefined)Undefined软件中断(SWI)Supervisor高低1复位

用于系统上电、系统复位处理器复位电平有效(nRESET=0),ARM立即停止执行当前指令,跳转到复位异常处理程序。操作:CPSR[4:0]=0b10011 进入管理模式;CPSR[5]=0 处理器进入ARM状态CPSR[6]=1 禁止FIQ、IRQCPSR[7]=1PC=0x00000000 PC从地址0x00开始取第一条指令异常2未定义指令当ARM处理器遇到不能处理的指令时,将产生未定义指令异常。软件可使用这一机制通过模拟未定义的协处理器指令来扩展ARM指令集。操作R14_und=下一条指令地址SPSR_und=CPSR ;复制CPSRCPSR[4:0]=0b11011 ;进入未定义指令模式CPSR[5]=0 ;进入ARM状态CPSR[7]=1 ;禁止IRQPC=0x00000004 ;PC从地址0x04开始取指令异常3软中断执行SWI指令,进入管理模式。操作R14_svc=SWI的下一条指令地址SPSR_svc=CPSR ;复制CPSRCPSR[4:0]=0b10011 ;进入管理模式CPSR[5]=0 ;进入ARM状态CPSR[7]=1 ;禁止IRQPC=0x00000008 ;PC从地址0x08开始取指令异常4数据中止、预取指令中止处理器试图去取一条被标记为预取无效的指令时发生预取中止。数据访问指令的目标地址不存在或该地址不允许当前指令访问时产生数据中止。中止异常表示对存储器访问失败。这种机制实际保证了虚拟存储技术的实现。R14_abt=中止指令地址+8(数据中止)或R14_abt=中止指令地址+4(预取中止)SPSR_abt=CPSR ;复制CPSRCPSR[4:0]=0b10111 ;进入中止模式CPSR[5]=0 ;进入ARM状态CPSR[7]=1 ;禁止IRQPC=0x00000010 ;PC指向地址0x010(数据中止)或PC=0x0000000C ;PC指向地址0x00C(预取中止)异常5外部中断IRQ处理器外部中断请求引脚有效,且CPSR寄存器的I位被清除时,产生IRQ异常。外设通过该异常请求处理器服务。操作R14_irq=被执行的下一条指令地址+4SPSR_irq=CPSR ;复制CPSRCPSR[4:0]=0b10010 ;进入IRQ模式CPSR[5]=0 ;进入ARM状态CPSR[7]=1 ;禁止IRQPC=0x00000018 ;PC指向地址0x018异常6快速中断FIQ处理器快速中断请求引脚有效,且CPSR寄存器的F位被清除时,产生FIQ异常。操作R14_frq=被执行的下一条指令地址+4SPSR_fiq=CPSR ;复制CPSRCPSR[4:0]=0b10001 ;进入FIQ模式CPSR[5]=0 ;进入ARM状态CPSR[6]=1CPSR[7]=1 ;禁止IRQ、FIQPC=0x0000001c ;PC指向地址0x01c异常

异常向量表向量地址异常类型进入时模式0x00000000复位管理0x00000004未定义指令未定义0x00000008软件中断(SWI)管理0x0000000C预取中止(指令)中止0x00000010数据中止中止0x00000014保留保留0x00000018IRQ中断0x0000001CFIQ快中断存储器中为每个异常类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论