嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章 ARM体系结构

上传人:E**** 文档编号:89467318 上传时间:2019-05-25 格式:PPT 页数:52 大小:1,023.50KB
返回 下载 相关 举报
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章  ARM体系结构_第1页
第1页 / 共52页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章  ARM体系结构_第2页
第2页 / 共52页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章  ARM体系结构_第3页
第3页 / 共52页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章  ARM体系结构_第4页
第4页 / 共52页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章  ARM体系结构_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章 ARM体系结构》由会员分享,可在线阅读,更多相关《嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第3章 ARM体系结构(52页珍藏版)》请在金锄头文库上搜索。

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

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

3、M的寄存器组织,ARM的寄存器组织,ARM的寄存器组织,ARM的寄存器组织,PSR寄存器的各个位: 中断禁止位I、F Thumb标志位 运行模式位M4:0,ARM的寄存器组织,状态寄存器模式位的含义,ARM的异常,ARM的异常,ARM的异常,1(最高) 复位 2 数据终止 3 FIQ 4 IRQ 5 预取指令终止 6(最低) 未定义指令、SWI,ARM异常的优先级,ARM的存储器格式,ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从第0字节到第3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列。 作为32位的微处理器,ARM体系结构所支持的最大寻

4、址空间为4GB(32位)。 ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。,ARM的存储器格式,大端格式,ARM的存储器格式,小端格式。,ARM的特点和优势,1内核编程体系 多种模式的切换 众多的通用寄存器 32位地址/数据操作 指令集中的特殊功能 高效的C和C+编译器 硬件乘法器 Thumb指令集 E增强DSP指令 Jazzle技术 2协处理器 MMU MPU VFP 3AMBA(先进控制器总线体系) 4. 嵌入式ICE、低功耗、小体积,3.2 ARM的内核系列,ARM内核分类与系列 ARM体系结构版本,ARM内核分类与系列,ARM内核系列 ARM7 系列 ARM9 系列

5、 ARM9E 系列 ARM10E 系列 SecurCore 系列 StrongARM/Xscale ARM11系列 Cortex,ARM内核分类与系列,1994-2004年发布的ARM内核,ARM内核分类与系列,处理器内核 内核分类 ARM7 ARM7DMI(-S) ARM720T ARM7EJ-S ARM9 ARM920T ARM922T ARM9E ARM926EJ-S ARM946E-S ARM966E-S ARM968E-S ARM10E ARM1020E ARM1022E ARM1026EJ-S,处理器内核 内核分类 ARM11 ARM1136J(F)-S ARM1156T2(F)-

6、S ARM1176JZ(F)-S SecurCore SC100 SC110 SC200 SC210 Strong ARM Xscale,ARM7内核,ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ-S,ARM9内核,ARM920T,ARM922T,ARM9E内核,ARM926EJ-S,ARM946E-S,ARM966E-S,ARM968E-S,ARM10E内核,ARM1020E,ARM1026EJ-S,ARM11内核,ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S,SecurCore内核,SC100/SC110,SC200/SC2

7、10,其他ARM内核,StrongARM Intel XScale Cortex ARM Cortex A (应用内核) ARM Cortex R (实时内核) ARM Cortex M (微控制器),ARM体系结构版本,ARM V1体系是最初的版本,只有26位的寻址空间,没有乘法指令,最终也没有商业化。 ARM V2体系与V1体系同为26位寻址空间具有乘法和乘加指令,支持协处理器。 ARM V3体系的寻址范围扩展到32位,具有乘法和乘加指令,支持协处理器。 ARM V3体系增加了半字存储操作,对调试的支持以及支持嵌入的ICE。 ARM V3体系增加了 DSP指令支持和对 Java指令的支持。

8、 ARM V6体系增加了媒体指令,ARMv6指令集合中加入了超过60条SIMD单指令多数据指令。 ARM V7体系定义了三种独立的内核型 A(应用领域),R(实时领域),M(控制领域)。,3.2 ARM微处理器的指令系统,ARM指令系统的概述 ARM的寻址模式 ARM的指令集 Thumb的指令集,ARM指令系统的概述,ARM指令系统的概述,ARM的寻址模式,1.立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令: ADD R0,R0,1 ;R0R01 ADD R0

9、,R0,0x3f ;R0R00x3f 在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示的立即数,还要求在“”后加上“0x”或“&”。,ARM的寻址模式,2 寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。以下指令: ADD R0,R1,R2 ;R0R1R2 该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。,ARM的寻址模式,3. 寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令: LDR R0,

10、R1 ;R0R1 STR R0,R1 ;R1R0 第一条指令将以R1 的值为地址的存储器中的数据传送到R0 中。 第二条指令将R0 的值传送到以R1 的值为地址的存储器中。,ARM的寻址模式,4 基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下所示: LDR R0,R1,4 ;R0R14 LDR R0,R1,4! ;R0R14、R1R14 LDR R0,R1 ,4 ;R0R1、R1R14 LDR R0,R1,R2 ;R

11、0R1R2 在第一条指令中,将寄存器R1 的内容加上4 形成操作数的有效地址,从而取得操作数存入寄存器R0 中。 在第二条指令中,将寄存器R1 的内容加上4 形成操作数的有效地址,从而取得操作数存入寄存器R0 中,然后,R1 的内容自增4 个字节。,ARM的寻址模式,5.多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16 个通用寄存器的值。以下指令: LDMIA R0,R1,R2,R3,R4 ;R1R0 ;R2R04 ;R3R08 ;R4R012 该指令的后缀IA 表示在每次执行完加载/存储操作后,R0 按字长度增加,因此,指令可

12、将连续存储单元的值传送到R1R4。,ARM的寻址模式,6.多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16 个通用寄存器的值。以下指令: LDMIA R0,R1,R2,R3,R4 ;R1R0 ;R2R04 ;R3R08 ;R4R012 该指令的后缀IA 表示在每次执行完加载/存储操作后,R0 按字长度增加,因此,指令可将连续存储单元的值传送到R1R4。,ARM的寻址模式,7.堆栈寻址 堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈

13、指针总是指向栈顶。 当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。同时,根据堆栈的生成方式,又可以分为递增堆栈(Ascending Stack)和递减堆栈(DecendingStack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。,ARM指令集,ARM指令集:跳转指令,ARM 指令集中的跳转指令可以完成从当前指令向前或向后的32MB 的地址空间的跳转,包括以下4 条指令: B 跳转指令 BL 带返回的跳转指令 BLX 带返回和状态切换的跳转

14、指令 BX 带状态切换的跳转指令,ARM指令集:数据处理指令,传送指令: MOV 数据传送指令 MVN 数据取反传送指令 比较指令: CMP 比较指令 CMN 反值比较指令 TST 位测试指令 TEQ 相等测试指令,算术指令: ADD 加法指令 ADC 带进位加法指令 SUB 减法指令 SBC 带借位减法指令 RSB 逆向减法指令 RSC 带借位的逆向减法指令 AND 逻辑与指令 ORR 逻辑或指令 EOR 逻辑异或指令 BIC 位清除指令,ARM指令集:乘法指令,乘法指令与乘加指令: MUL 32 位乘法指令 MLA 32 位乘加指令 SMULL 64 位有符号数乘法指令 SMLAL 64

15、位有符号数乘加指令 UMULL 64 位无符号数乘法指令 UMLAL 64 位无符号数乘加指令,ARM指令集:加载/存储指令,单寄存器加载存储指令: LDR 字数据加载指令 LDRB 字节数据加载指令 LDRH 半字数据加载指令 STR 字数据存储指令 STRB 字节数据存储指令 STRH 半字数据存储指令 LDRSB有符号的字节加载 LDRSH有符号的半字加载,多寄存器加载存储指令: LDM 多字节加载指令 STM 多字节存储指令 IA :每次传送后地址+4 IB :每次传送前地址+4 DA :每次传送后地址-4 DB :每次传送前地址-4 FD :满递减堆栈 ED :空递减堆栈 FA :满递增堆栈 EA :空递增堆栈,ARM指令集:程序状态寄存器指令,ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条: MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR 通用寄存器到程序状态寄存器的数据传送指令,ARM指令集:协处理器指令,ARM 的协处理器指令主要用于ARM 处理器初始化ARM 协处理器的数据处理操作,以及

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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