嵌入式系统 第二章 嵌入式处理器下PPT讲稿.ppt
《嵌入式系统 第二章 嵌入式处理器下PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统 第二章 嵌入式处理器下PPT讲稿.ppt(167页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统嵌入式系统 第二章第二章 嵌入式嵌入式处理器下处理器下第1页,共167页,编辑于2022年,星期日第二章第二章 嵌入式处理器嵌入式处理器2.1 2.1 引言引言 2.2 2.2 嵌入式处理器概述嵌入式处理器概述 2.32.3ARMARM处理器基础处理器基础 2.52.5ARMARM程序程序设计设计基基础础2.42.4ARMARM指令系指令系统统第2页,共167页,编辑于2022年,星期日2.4 ARM指令系统指令系统 2.4.1 ARM编程模型编程模型 2.4.2 ARM寻址方式寻址方式 2.4.3 ARM指令集指令集 2.4.4 Thumb指令集指令集第3页,共167页,编辑于20
2、22年,星期日2.4.1 ARM编程模型编程模型2.4 ARM2.4 ARM指令系统指令系统指令系统指令系统 1.流水线流水线 2.数据类型数据类型 3.处理器模式处理器模式 4.处理器工作状态处理器工作状态 5.寄存器组织寄存器组织6.异常异常 7.存储器和存储器映射存储器和存储器映射I/O 第4页,共167页,编辑于2022年,星期日1.流水线流水线 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型 流水流水线线技技术术是是现现代微代微处处理器普遍采用的一种理器普遍采用的一种技技术术,它可以使得几条指令并行,它可以使得几条指令并行执执行,因此行,因此可以大大提高可以大大
3、提高处处理器的运行效率。理器的运行效率。第5页,共167页,编辑于2022年,星期日1.流水线流水线 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型从程序存储器中读取指从程序存储器中读取指令,放入流水线中令,放入流水线中 操作码和操作数被译码,决定执行什操作码和操作数被译码,决定执行什么功能,为下一个时钟周期准备数据么功能,为下一个时钟周期准备数据路径所需要的控制信号路径所需要的控制信号执行已译码的指令执行已译码的指令取取 指指译译 码码执执 行行ARM7ARM7的的3 3级流水线:级流水线:第6页,共167页,编辑于2022年,星期日1.流水线流水线 流水流水线线能能够
4、够正常工作的条件是在任意正常工作的条件是在任意时时刻,每一刻,每一级级所使用的硬件必所使用的硬件必须须能能够够独立操作,不能多独立操作,不能多级级同同时时占用同一硬件占用同一硬件资资源。源。在正常情况下,每条指令都被划分成在正常情况下,每条指令都被划分成这样这样3个个时钟时钟周期来完成,周期来完成,即指令即指令执执行行时间时间(Latency)是)是3周期。周期。流水流水线线的的执执行使得程序行使得程序计计数器数器PC必必须须在当前指令取指前在当前指令取指前计计数。数。对对于于ARM处处理器的理器的3级级流水流水线线,以当前,以当前PC取指后,取指后,PC值值会增加会增加为为PC4。2.4.1
5、 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第7页,共167页,编辑于2022年,星期日1.流水线流水线图图2-5 ARM2-5 ARM单周期指令的多级流水线操作单周期指令的多级流水线操作2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第8页,共167页,编辑于2022年,星期日1.流水线流水线图图2-6 ARM2-6 ARM多周期指令的多级流水线操作多周期指令的多级流水线操作 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第9页,共167页,编辑于2022年,星期日1.流水线流水线图图2-7 ARM2-7 ARM分支指令的流水线操作分支
6、指令的流水线操作 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第10页,共167页,编辑于2022年,星期日2.数据类型数据类型 ARM处处理器支持以下数据理器支持以下数据类类型:型:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u Byte字节,字节,8位;位;u Halfword半字,半字,16位(半字必须与位(半字必须与2字节边界对准);字节边界对准);u Word字,字,32位(字必须与位(字必须与4字字节边界对准)。节边界对准)。第11页,共167页,编辑于2022年,星期日2.数据类型数据类型 2.4.1 ARM2.4.1 ARM编程模
7、型编程模型编程模型编程模型图图2-8 ARM2-8 ARM数据类型存储图数据类型存储图 第12页,共167页,编辑于2022年,星期日3.处理器模式处理器模式 ARM体系结构支持体系结构支持7种处理器模式种处理器模式:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型处理器模式说 明用户 usr程序正常执行模式FIQ fiq支持高速数据传输或通道处理IRQ irq通用中断处理管理 svc操作系统保护模式中止 abt虚拟存储器或存储器保护未定义 und支持硬件协处理器的软件仿真系统 sys运行特权操作系统任务第13页,共167页,编辑于2022年,星期日4.处理器工作状态处理器
8、工作状态 ARM处处理器具有特殊的两种工作状理器具有特殊的两种工作状态态:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u ARM状态状态:32位,执行字对准的位,执行字对准的ARM指令;指令;u Thumb状态状态:16位,执行半字对准的位,执行半字对准的Thumb指令。指令。ARM处处理器的操作状理器的操作状态态可以通可以通过过BX指令指令(分支和交分支和交换换指令)在指令)在ARM状状态态和和Thumb状状态态之之间间切切换换。例:例:从从ARM状态切换到状态切换到Thumb状态:状态:LDR R0,=Label+1 BX R0从从Thumb状态切换到状态切换到AR
9、M状态:状态:LDR R0,=Label BX R0第14页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织 ARM处处理器共有理器共有37个寄存器:个寄存器:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u 31个个通用寄存器通用寄存器:32位,含程序计数器位,含程序计数器PC;u 6个个状态寄存器状态寄存器:32位,只使用了其中的位,只使用了其中的12位。位。当当编编写用写用户户程序程序时时,37个寄存器中个寄存器中仅仅有有15个通用寄存器个通用寄存器r0r14、程序、程序计计数器数器PC(r15)和当前程序状)和当前程序状态态寄存器寄存器CPSR需要需
10、要考考虑虑。其余寄存器。其余寄存器仅仅用于系用于系统级编统级编程和异常程和异常处处理(如中断)。理(如中断)。第15页,共167页,编辑于2022年,星期日ARARM M状状态态下下寄寄存存器器组组织织第16页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-不分组寄存器不分组寄存器r0r7 不分不分组组意味着在所有意味着在所有处处理器模式下,理器模式下,r0r7都可都可被同被同样访问样访问,没有体系,没有体系结结构所构所隐隐含的特殊用途。含的特殊用途。2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第17页,共167页,编辑于2022年,星期日5.寄存器组织
11、寄存器组织-分组寄存器分组寄存器r8r14 分分组组意味着意味着r8r14的的访问访问与当前与当前处处理器的模式相关。理器的模式相关。如果要如果要访问访问r8r14,而不依,而不依赖赖于当前于当前处处理器的模式,理器的模式,就必就必须须使用使用规规定的寄存器名称。定的寄存器名称。名称的形式名称的形式为为:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型 r8_r14_第18页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-分组寄存器分组寄存器r8r14 r8r12各有两各有两组组物理寄存器:一物理寄存器:一组为组为FIQ模式,模式,另一另一组为组为FIQ以外
12、以外的模式。的模式。寄存器寄存器r8r12没有指定特殊用途,而使用没有指定特殊用途,而使用r8_fiqr12_fiq则则允允许许快速中断。快速中断。2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第19页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-分组寄存器分组寄存器r8r14 寄存器寄存器r13和和r14的用途比的用途比较较特殊:特殊:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u r13通常用作堆栈指针通常用作堆栈指针SP,被初始化成指向异常模式分配,被初始化成指向异常模式分配的堆栈。的堆栈。u r14通常用作子程序链接寄存器
13、通常用作子程序链接寄存器LR。处理异常时,在程序入口处将异常处理程序用到的其它寄存器的值压入堆栈,返回时重新将这些值加载到寄存器中。当执行分支指令BL时,r15的内容拷贝到r14中,从而成为子程序调用后的返回地址第20页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-程序计数器程序计数器r15 寄存器寄存器r15通常被用作程序通常被用作程序计计数器数器PC。在在ARM状状态态下,下,PC的的值值保存在位保存在位31:2,而位,而位1:0为为0;在;在Thumb状状态态下,下,PC的的值值保存在位保存在位31:1,而位,而位0为为0。2.4.1 ARM2.4.1 ARM编程模型编
14、程模型编程模型编程模型第21页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-当前程序状态寄存器当前程序状态寄存器CPSR CPSR和和SPSR具有相同的格式具有相同的格式 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型第22页,共167页,编辑于2022年,星期日标志位标志位含含 义义N N当用两个补码表示的带符号数进行运算时,当用两个补码表示的带符号数进行运算时,N=1 N=1 表示运算的结果为负数;表示运算的结果为负数;N=0 N=0 表示运算的结果为正数或零;表示运算的结果为正数或零;Z ZZ=1 Z=1 表示运算的结果为零;表示运算的结果为零;Z
15、=0Z=0表示运算的结果为非零;表示运算的结果为非零;C C可以有可以有4 4种方法设置种方法设置C C的值:的值:加法运算(包括比较指令加法运算(包括比较指令CMNCMN):当运算结果产生了进位时(无符号数溢出):当运算结果产生了进位时(无符号数溢出),C=1C=1,否则,否则C=0C=0。减法运算(包括比较指令减法运算(包括比较指令CMPCMP):当运算时产生了借位(无符号数溢出),):当运算时产生了借位(无符号数溢出),C=0C=0,否则,否则C=1C=1。对于包含移位操作的非加对于包含移位操作的非加/减运算指令,减运算指令,C C为移出值的最后一位。为移出值的最后一位。对于其他的非加对
16、于其他的非加/减运算指令,减运算指令,C C的值通常不改变。的值通常不改变。V V可以有可以有2 2种方法设置种方法设置V V的值:的值:对于加对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,号数时,V=1V=1表示符号位溢出。表示符号位溢出。对于其他的非加对于其他的非加/减运算指令,减运算指令,V V的值通常不改变。的值通常不改变。Q Q在在ARM v5ARM v5及以上版本的及以上版本的E E系列处理器中,用系列处理器中,用Q Q标志位指示增强的标志位指示增强的DSPDSP运算指令运算指令是否发生了溢出。在其他
17、版本的处理器中,是否发生了溢出。在其他版本的处理器中,Q Q标志位无定义。标志位无定义。第23页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-Thumb状态的寄存器集状态的寄存器集 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型ThumbThumb状状态态下下寄寄存存器器组组织织 第24页,共167页,编辑于2022年,星期日5.寄存器组织寄存器组织-Thumb状态的寄存器集状态的寄存器集 2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型ThumbThumb状态状态寄存器到寄存器到ARMARM寄存器寄存器的映射的映射 第25页,共16
18、7页,编辑于2022年,星期日6.异常异常 异常(异常(exception)是指由内部或外部源产生从而使处理)是指由内部或外部源产生从而使处理器需要处理的一个事件。器需要处理的一个事件。2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u 例如,外部中断或试图实行未定义的指令都会引例如,外部中断或试图实行未定义的指令都会引起异常的发生。起异常的发生。处理异常之前,处理器必须保存当前的状态,以便在异常处理处理异常之前,处理器必须保存当前的状态,以便在异常处理完成后,能够使原来的出现重新执行。完成后,能够使原来的出现重新执行。第26页,共167页,编辑于2022年,星期日6.异常
19、异常 ARM支持支持7种类型的异常。对于每种异常,处理器将强制从异种类型的异常。对于每种异常,处理器将强制从异常对应的某个固定地址开始执行程序。这些固定地址称为常对应的某个固定地址开始执行程序。这些固定地址称为异常异常向量向量。2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型 多个异常可能会同时发生,因此在多个异常可能会同时发生,因此在ARM中就通过给各个中就通过给各个异常赋予不同的优先级来确定处理异常的顺序。异常赋予不同的优先级来确定处理异常的顺序。第27页,共167页,编辑于2022年,星期日6.异常异常 优先级按照从高到低的顺序排列如下:优先级按照从高到低的顺序排列如
20、下:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u复位复位u数据异常中止数据异常中止uFIQuIRQu预取指异常中止预取指异常中止uSWI、未定义指令(这两种异常的指令编码互斥,不、未定义指令(这两种异常的指令编码互斥,不可能同时发生)可能同时发生)第28页,共167页,编辑于2022年,星期日异常类型异常类型具体含义具体含义复位复位当处理器的复位电平有效时产生复位异常,程序跳转到复位异常处当处理器的复位电平有效时产生复位异常,程序跳转到复位异常处理程序处执行。理程序处执行。未定义指令未定义指令当当ARMARM处理器或协处理器遇到不能处理的指令时,产生未定义指令处理器或
21、协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。异常。可使用该异常机制进行软件仿真。软件中断软件中断该异常由执行该异常由执行SWISWI指令产生,可用于用户模式下的程序调用特权操指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。作指令。可使用该异常机制实现系统功能调用。指令预取中止指令预取中止若处理器预取指令的地址不存在,或该地址不允许当前指令访问,若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令
22、预取中止异常。产生指令预取中止异常。数据中止数据中止若处理器数据访问指令的地址不存在,或该地址不允许当前指令访若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。问时,产生数据中止异常。IRQIRQ(外部中(外部中断请求)断请求)当处理器的外部中断请求引脚有效,且当处理器的外部中断请求引脚有效,且CPSRCPSR中的中的I I位为位为0 0时,产生时,产生IRQIRQ异常。系统的外设可通过该异常请求中断服务。异常。系统的外设可通过该异常请求中断服务。FIQFIQ(快速中(快速中断请求)断请求)当处理器的快速中断请求引脚有效且当处理器的快速中断请求引脚有效且CPSR
23、CPSR中的中的F F位为位为0 0时,产生时,产生FIQFIQ异常。异常。第29页,共167页,编辑于2022年,星期日6.异常异常 进入异常的操作:进入异常的操作:进入异常的操作:进入异常的操作:2.4.1 ARM2.4.1 ARM编程模型编程模型编程模型编程模型u在相应的链接寄存器在相应的链接寄存器LR(r14)中保存下一条指令的中保存下一条指令的地址地址u将将CPSR复制到相应的复制到相应的SPSR中中u强制使强制使CPSR模式位置成对应异常类型的值模式位置成对应异常类型的值u强制使程序计数器指向相应异常向量,取下一条指令强制使程序计数器指向相应异常向量,取下一条指令第30页,共167
24、页,编辑于2022年,星期日例子:用户模式到 FIQ模式*spsr_fiqcpsrr7r4r5r2r1r0r3r6r15(pc)r14_fiqr13_fiqr12_fiqr10_fiqr11_fiqr9_fiqr8_fiqr14(lr)r13(sp)r12r10r11r9r8用户模式用户模式 CPSR CPSR 复制到复制到 FIQ FIQ 模式模式 SPSRSPSRcpsrr15(pc)r14(lr)r13(sp)r12r10r11r9r8r7r4r5r2r1r0r3r6r14_fiqr13_fiqr12_fiqr10_fiqr11_fiqr9_fiqr8_fiq返回一个从用户模式计算的地址
25、,返回一个从用户模式计算的地址,PCPC值值存储在存储在FIQFIQ模式模式Registers in useRegisters in use异常异常用户模式用户模式FIQ FIQ 模式模式spsr_fiq第31页,共167页,编辑于2022年,星期日7.存储器和存储器映射存储器和存储器映射I/O 与与单单片机等片机等简单简单系系统统相比,相比,现现在一些复在一些复杂杂的嵌入式系的嵌入式系统统中,存中,存储储系系统统的功能更加的功能更加强强大,可能包含有多种大,可能包含有多种现现代代计计算机存算机存储储技技术术,如,如Cache和和Write Buffer、MMU、存、存储储保保护护机制、快速上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统 第二章 嵌入式处理器下PPT讲稿 嵌入式 系统 第二 处理器 PPT 讲稿
限制150内