嵌入式系统原理及应用开发课件

上传人:des****85 文档编号:324056405 上传时间:2022-07-12 格式:PPT 页数:52 大小:1.49MB
返回 下载 相关 举报
嵌入式系统原理及应用开发课件_第1页
第1页 / 共52页
嵌入式系统原理及应用开发课件_第2页
第2页 / 共52页
嵌入式系统原理及应用开发课件_第3页
第3页 / 共52页
嵌入式系统原理及应用开发课件_第4页
第4页 / 共52页
嵌入式系统原理及应用开发课件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《嵌入式系统原理及应用开发课件》由会员分享,可在线阅读,更多相关《嵌入式系统原理及应用开发课件(52页珍藏版)》请在金锄头文库上搜索。

1、第3章ARM体系结构第3章ARM体系结构3.1ARM微处理器基础3.2ARM的内核系列3.3ARM微处理器的指令系统3.1ARM微处理器基础pARM的运行模式pARM的工作状态pARM的寄存器组织pARM的异常pARM的存储器格式pARM的特点和优势ARM的运行模式ARM微处理器支持7种运行模式,分别为:p用户模式(usr):ARM处理器正常的程序执行状态p快速中断模式(fiq):用于高速数据传输或通道处理p中断模式(irq):用于通用的中断处理p管理模式(svc):操作系统使用的保护模式p终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。p系统模式(sys):运

2、行具有特权的操作系统任务。p未定义模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM的工作状态ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:pARM状态,此时处理器执行32位的字对齐的ARM指令pThumb状态,此时处理器执行16位的、半字对齐的Thumb指令ARM的寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问。在某种时刻,通用寄存器R14R0、程序计数器PC、一个或两个状态寄存器都是可访问的。ARM的寄存器组织ARM的寄存器组织ARM的寄存器组织ARM的寄存器组织AR

3、M的寄存器组织PSR寄存器的各个位:p中断禁止位I、FpThumb标志位p运行模式位M4:0ARM的寄存器组织M4M4:00处理器模式处理器模式0b10000用户模式0b10001FIQ0b10010IRQ0b10011管理模式0b10111终止模式0b11011未定义模式0b11111系统模式状态寄存器模式位的含义ARM的异常异常异常类型型具体含具体含义复位(Reset)当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。未定义指令(Undefined)当ARM 处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。软件中断(SWI)该

4、异常由执行SWI 指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。指令预取终止(Prefetch Abort)若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出终止信号,但当预取的指令被执行时,才会产生指令预取终止异常。数据终止(Data Abort)若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据终止异常。外部中断请求(IRQ)当处理器的外部中断请求引脚有效,且CPSR 中的I 位为0 时,产生IRQ 异常。系统的外设可通过该异常请求中断服务。快速中断请求(FIQ)当处理器的快速中断请求引脚有效,且CPS

5、R 中的F 位为0 时,产生FIQ 异常。ARM的异常返回指令 以前的状态ARMThumbBLMOV PC,R14PC4PC2SWIMOVS PC,R14_svcPC4PC2UDEFMOVS PC,R14_undPC4PC2FIQSUBS PC,R14_fiq,4PC4PC4IRQSUBS PC,R14_irq,4PC4PC4PABTSUBS PC,R14_abt,4PC4PC4DABTSUBS PC,R14_abt,8PC8PC8ARM的异常1(最高)复位2数据终止3FIQ4IRQ5预取指令终止6(最低)未定义指令、SWIARM异常的优先级ARM的存储器格式ARM体系结构将存储器看作是从零地

6、址开始的字节的线性组合。从第0字节到第3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(32位)。ARM体系结构可以用两种方法存储字数据,称之为大端格式大端格式和小端格式小端格式。ARM的存储器格式大端格式大端格式ARM的存储器格式小端格式小端格式。ARM的特点和优势1内核编程体系内核编程体系多种模式的切换众多的通用寄存器32位地址/数据操作指令集中的特殊功能高效的C和C+编译器硬件乘法器Thumb指令集E增强DSP指令Jazzle技术2协处理器协处理器MMUMPUVFP3AMBA(先进控制

7、器总线体系先进控制器总线体系)4.嵌入式嵌入式ICE、低功耗、小体积、低功耗、小体积3.2ARM的内核系列pARM内核分类与系列pARM体系结构版本ARM内核分类与系列ARM内核系列pARM7系列pARM9系列pARM9E系列pARM10E系列pSecurCore系列pStrongARM/XscalepARM11系列pCortexARM内核分类与系列1994-2004年发布的ARM内核ARM内核分类与系列处理器内核内核分类ARM7ARM7DMI(-S)ARM720TARM7EJ-SARM9ARM920TARM922TARM9EARM926EJ-SARM946E-SARM966E-SARM968

8、E-SARM10EARM1020EARM1022EARM1026EJ-S处理器内核内核分类ARM11 ARM1136J(F)-SARM1156T2(F)-SARM1176JZ(F)-SSecurCoreSC100SC110SC200SC210StrongARMXscaleARM7内核ARM7TDMIARM7TDMI-SARM720TARM7EJ-SARM9内核ARM920TARM922TARM9E内核ARM926EJ-SARM946E-SARM966E-SARM968E-SARM10E内核ARM1020EARM1026EJ-SARM11内核ARM1136J(F)-SARM1156T2(F)-S

9、ARM1176JZ(F)-SSecurCore内核SC100/SC110SC200/SC210其他ARM内核nStrongARMnIntelXScalenCortexARMCortexA(应用内核)ARMCortexR(实时内核)ARMCortexM(微控制器)ARM体系结构版本ARMV1体系是最初的版本,只有26位的寻址空间,没有乘法指令,最终也没有商业化。ARMV2体系与V1体系同为26位寻址空间具有乘法和乘加指令,支持协处理器。ARMV3体系的寻址范围扩展到32位,具有乘法和乘加指令,支持协处理器。ARMV3体系增加了半字存储操作,对调试的支持以及支持嵌入的ICE。ARMV3体系增加了D

10、SP指令支持和对Java指令的支持。ARMV6体系增加了媒体指令,ARMv6指令集合中加入了超过60条SIMD单指令多数据指令。ARMV7体系定义了三种独立的内核型A(应用领域),R(实时领域),M(控制领域)。3.2ARM微处理器的指令系统pARM指令系统的概述pARM的寻址模式pARM的指令集pThumb的指令集ARM指令系统的概述助记符助记符指令功能描述指令功能描述ADC带进位加法指令ADD加法指令AND逻辑与指令B跳转指令BIC位清零指令BL带返回的跳转指令BLX带返回和状态切换的跳转指令BX带状态切换的跳转指令CDP协处理器数据操作指令CMN比较反值指令CMP比较指令EOR异或指令L

11、DC存储器到协处理器的数据传输指令LDM加载多个寄存器指令LDR存储器到寄存器的数据传输指令MCR从ARMMLA乘加运算指令MOV数据传送指令助记符助记符指令功能描述指令功能描述MRC从协处理器寄存器到ARMMRS传送CPSRMSR传送通用寄存器到CPSRMUL32MLA32MVN数据取反传送指令ORR逻辑或指令RSB逆向减法指令RSC带借位的逆向减法指令SBC带借位减法指令STC协处理器寄存器写入存储器指令STM批量内存字写入指令STR寄存器到存储器的数据传输指令SUB减法指令SWI软件中断指令SWP交换指令TEQ相等测试指令TST位测试指令ARM指令系统的概述条件码条件码助记符后缀助记符后

12、缀标志标志含含义0000EQZ置位相等0001NEZ清零不相等0010CSC置位无符号数大于或等于0011CCC清零无符号数小于0100MIN置位负数0101PLN清零正数或零0110VSV置位溢出0111VCV清零未溢出1000HIC置位无符号数大于1001LSC清零无符号数小于或等于1010GEN等于V带符号数大于或等于1011LTN不等于V带符号数小于1100GTZ清零且(N等于V)带符号数大于1101LEZ 置位或(N 不等于V)带符号数小于或等于1110AL忽略无条件执行ARM的寻址模式1.立即寻址立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要

13、取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令:ADDR0,R0,1;R0R01ADDR0,R0,0 x3f;R0R00 x3f在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示的立即数,还要求在“”后加上“0 x”或“&”。ARM的寻址模式2 寄存器寻址寄存器寻址寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。以下指令:ADDR0,R1,R2;R0R1R2该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。ARM的寻址模

14、式3.寄存器间接寻址寄存器间接寻址寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令:LDRR0,R1;R0R1STRR0,R1;R1R0第一条指令将以R1的值为地址的存储器中的数据传送到R0中。第二条指令将R0的值传送到以R1的值为地址的存储器中。ARM的寻址模式4 基址变址寻址基址变址寻址基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下所示:LDRR0,R1,4;R0R14LDRR0,R1

15、,4!;R0R14、R1R14LDRR0,R1,4;R0R1、R1R14LDRR0,R1,R2;R0R1R2在第一条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中。在第二条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节。ARM的寻址模式5.多寄存器寻址多寄存器寻址采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16个通用寄存器的值。以下指令:LDMIAR0,R1,R2,R3,R4;R1R0;R2R04;R3R08;R4R012该指令的后缀IA

16、表示在每次执行完加载/存储操作后,R0按字长度增加,因此,指令可将连续存储单元的值传送到R1R4。ARM的寻址模式6.多寄存器寻址多寄存器寻址采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16个通用寄存器的值。以下指令:LDMIAR0,R1,R2,R3,R4;R1R0;R2R04;R3R08;R4R012该指令的后缀IA表示在每次执行完加载/存储操作后,R0按字长度增加,因此,指令可将连续存储单元的值传送到R1R4。ARM的寻址模式7.堆栈寻址堆栈寻址堆栈是一种数据结构,按先进后出(FirstInLastOut,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(FullStack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(EmptyStack)。同时,根据堆栈的生成方式,又可以分为递增堆栈(AscendingStack)和递减堆栈(DecendingStack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号