![ARM嵌入式系统PPT课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/37775f10-2aad-4cbc-91cf-de5f6c67a98a/37775f10-2aad-4cbc-91cf-de5f6c67a98a1.gif)
![ARM嵌入式系统PPT课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/37775f10-2aad-4cbc-91cf-de5f6c67a98a/37775f10-2aad-4cbc-91cf-de5f6c67a98a2.gif)
![ARM嵌入式系统PPT课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/37775f10-2aad-4cbc-91cf-de5f6c67a98a/37775f10-2aad-4cbc-91cf-de5f6c67a98a3.gif)
![ARM嵌入式系统PPT课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/37775f10-2aad-4cbc-91cf-de5f6c67a98a/37775f10-2aad-4cbc-91cf-de5f6c67a98a4.gif)
![ARM嵌入式系统PPT课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/37775f10-2aad-4cbc-91cf-de5f6c67a98a/37775f10-2aad-4cbc-91cf-de5f6c67a98a5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM嵌入式系统原理及应用 主讲:盛晨辉主讲:盛晨辉第1页/共68页教学计划教学计划第二讲第二讲 基于基于LPC2000系列系列ARM的工程设计的工程设计第三讲第三讲 ARM程序设计程序设计第一讲第一讲 嵌入式系统概述及嵌入式系统概述及ARM7体系结构体系结构第五讲第五讲 ARM外围硬件系统与接口技术外围硬件系统与接口技术第四讲第四讲 LPC2000系列系列ARM内部硬件结构内部硬件结构第六讲第六讲 LPC2000系列系列ARM硬件结构及实验硬件结构及实验(1)第七讲第七讲 LPC2000系列系列ARM硬件结构及实验硬件结构及实验(2)第八讲第八讲 LPC2000系列系列ARM硬件结构及实验硬
2、件结构及实验(3)第2页/共68页第一讲第一讲 嵌入式系统概述及嵌入式系统概述及ARM7体系结构体系结构ARM7体系结构体系结构LPC2000系列系列ARM概述概述ARM嵌入式系统概述嵌入式系统概述参考资料及文献:参考资料及文献:ARM嵌入式系统基础教程(第嵌入式系统基础教程(第2版)版)第一第一章、第二章、第四章章、第二章、第四章第3页/共68页嵌入式系统概述 概述 即使不可见,嵌入式系统也是无处不在。嵌入式即使不可见,嵌入式系统也是无处不在。嵌入式系统不仅存在于生活的方方面面,而且在很多领域和系统不仅存在于生活的方方面面,而且在很多领域和行业得到广泛应用,包括工业自动化、国防、运输以行业得
3、到广泛应用,包括工业自动化、国防、运输以及航空航天等。及航空航天等。 嵌入式系统具有无数的种类,每种种类都有自嵌入式系统具有无数的种类,每种种类都有自己独特的个性。己独特的个性。第4页/共68页计算机分为两大类 通用计算机:PC机、服务器、工作站 专用计算机:硬件软件可剪裁,通常是以嵌入式操作系统 + 用户应用程序,明显的可嵌入性,对体积、成本、价格、功耗非常敏感,功能具有很强的针对性,通常要求可靠性和实时性第5页/共68页嵌入式系统的定义 从技术角度定义:以应用为中心,以计算机技术为基础,硬件软件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 从系统角度定义
4、:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语“嵌入式”反映了它通常是更大系统中的完整系统。嵌入的系统中可以有多个嵌入式系统。第6页/共68页嵌入式微处理器的分类 嵌入式微处理器MPU 嵌入式微控制器MCU 嵌入式数字信号处理器DSP第7页/共68页ARM技术的发展 ARM (Advanced RISC Machines) 是一家坐落在英国剑桥的电子公司,1990年11月由苹果电脑、Acorn和VLSI Technology共同组建。 ARM公司既不设计芯片,也不生产芯片,他们以高效的IP (Intellectual Property) 内核为产品。第8页/
5、共68页ARM技术的发展 目前,几十家大的半导体公司都是使用ARM公司的授权,在ARM内核及其技术的基础上添加自己的设计并推出各种芯片产品,即ARM微处理器或ARM微控制器。 ARM芯片已遍及工业控制、消费电子、通信系统、网络系统、无线电系统以及生活的各个方面。已经改变了人们生活、工作和娱乐方式。 世界上大多数嵌入式系统32位微控制器芯片都是基于ARM内核的。 ARM已经成为嵌入式微处理器的代名词,ARM公司成为全球性RISC标准的缔造者。第9页/共68页第一讲第一讲 主要内容主要内容ARM7体系结构体系结构LPC2000系列系列ARM概述概述ARM嵌入式系统概述嵌入式系统概述第10页/共68
6、页ARM体系结构 ARM处理器为RISC芯片,其简单的结构使得ARM内核非常小,功耗也很低。RISC体系结构应具有如下特点:采用固定长度的指令格式,便于译码;采用固定长度的指令格式,便于译码;使用单周期指令,便于流水线操作;使用单周期指令,便于流水线操作;使用大量寄存器,数据处理指令只对寄存器操作,不直接操使用大量寄存器,数据处理指令只对寄存器操作,不直接操作存储器;作存储器;简单的寻址模式;简单的寻址模式;在一条数据处理指令中,同时完成逻辑处理和位移处理在一条数据处理指令中,同时完成逻辑处理和位移处理两个功能,实现两个功能,实现ALU和移位寄存器的最大利用;和移位寄存器的最大利用;所有的指令
7、都可以根据前面的执行结构决定是否被执行,提高指所有的指令都可以根据前面的执行结构决定是否被执行,提高指令的执行效率;令的执行效率;在循环处理中使用地址的自动增减,提高运行效率。在循环处理中使用地址的自动增减,提高运行效率。第11页/共68页各ARM体系结构版本 为清楚表达各ARM体系结构使用的指令集,ARM公司定义了5种主要的ARM指令集体系版本,即V1V5 。 各版本号有着巨大的改进和完善,并仍在改进中。第12页/共68页ARM处理器核简介 ARM公司开发的很多系列的处理器内核,基于各种内核的处理器都有各自的特点和应用领域。目前使用比较广泛的系列是: ARM7 ARM9 ARM9E ARM1
8、0 SecurCore Intel的Xscale第13页/共68页ARM处理器核简介ARM7 ARM7系列微处理器包括四种类型内核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。ARM7TDMI(-S)是目前使用最广泛的32位嵌入式RISC处理器。 T:支持16位压缩指令集Thumb D:支持片上Debug M:内嵌硬件乘法器Multiplier I:嵌入式ICE,支持片上断点调试 S:可综合版本第14页/共68页ARM7TDMI(-S) ARM7TDMI(-S) 基于ARM 体系结构V4 版本,是目前低端的ARM 内核,具有优异的性能,功耗很低,使用的门的数量少,
9、因而应用广泛。 ARM7TDMI(-S) 支持32 位寻址范围,弥补了ARM6 不能在低于5V 电压下工作的不足。第15页/共68页ARM7TDMI(-S)内核框图第16页/共68页ARM7TDMI(-S) ARM7TDMI(-S) 使用流水线来提高指令流的速度。ARM7TDMI(-S)的流水线分为三级:取址 译码 执行。ARMThumbPCPC取指PC-4PC-2译码PC-8PC-4执行周期1周期2周期3周期4周期5周期6取指 译码 执行取指 译码 执行取指 译码 执行取指 译码 执行第17页/共68页ARM处理器状态 为了更好地控制代码量,设计了2套指令系统,分别为ARM指令集和Thumb
10、指令集,ARM指令集为32位,Thumb指令集为16位。 ARM指令集具完整功能,Thumb功能上可看做ARM指令集的子集,具有很高的代码密度 ARM状态(默认):执行字方式的ARM指令。 Thumb状态:执行半字方式的Thumb指令。第18页/共68页ARM处理器状态 ARM指令集和Thumb指令集不能同时有效 ARM状态下要使用Thumb指令必须进行状态切换,反之亦然。当前程序状态寄存器CPSR中的控制位T反映处理器的当前状态 T=0表示ARM状态; T=1表示Thumb状态。l 处理器状态的切换并不影响处理器的模式和寄存器的内容第19页/共68页ARM处理器状态 BX指令控制程序跳转的同
11、时进行状态切换。 使用BX指令进行状态切换后,流水线中的取指和译码指令会被清除,避免出现处理器错误。 BX指令这种清空流水线的功能使得处理器状态间的切换是安全的。使用MSR(写状态寄存器)直接修改CPSR的T位的做法是不安全的。第20页/共68页ARM处理器模式 ARM处理器共支持7种处理器模式,并以当前程序状态寄存器CPSR中的控制位M4:0反映处理器正在操作的模式。处理器模式说明用户(usr)正常工作模式,不能直接切换到其他模式特权模式系统(sys)与用户模式相似,但能直接切换到其他模式异常模式管理(svc)只有在系统复位和软件中断响应时才进入此模式中止(abt)在ARM7内核中无效未定义
12、(und)只有在未定义指令异常响应时才进入此模式中断(irq)只有在IRQ异常响应时才进入此模式快速中断(fiq)只有在FIQ异常响应时才进入此模式第21页/共68页ARM处理器模式 只有特权模式下才能对当前程序状态寄存器CPSR的所有控制位直接进行读/写访问,而在非特权模式下只允许对CPSR的控制位进行间接访问。 进入异常模式时,处理器总是切换到ARM状态,而非Thumb状态。 处理器复位后进入管理模式,操作系统内核通常处于管理模式。 用户模式是正常运行的工作模式,系统模式具有与用户模式完全相同的寄存器,但系统模式是特权模式,可以访问所有的系统资源,主要提供给操作系统的任务使用。第22页/共
13、68页ARM处理器内部寄存器 ARM7DMI内部有37个用户可访问的32位寄存器,其中6个32位宽的状态寄存器目前只使用了其中的12位。 31个通用寄存器 6个状态寄存器 在不同的工作模式下,程序员可以访问的寄存器不完全相同。第23页/共68页ARM处理器内部寄存器第24页/共68页当前程序状态寄存器CPSR ARM内核通过CPSR来监视和控制内部操作,每种异常模式都有一个对应的程序状态保存寄存器SPSR,用于保存任务在异常发生之前的CPSR的内容。CPSR包括:4个条件代码标识(负标识N、零标识Z、进位标识C和溢出标识V)2个中断禁止位(IRQ禁止与FIQ禁止)5个当前处理器模式编码位(M4
14、:0)1个用于指示当前执行指令状态的位(ARM或Thumb)第25页/共68页当前程序状态寄存器CPSRN Z C V IF T M4 M3 M2 M1 M0控制位控制位保留位保留位标识位标识位N、Z、C、V是条件代码标识位,可以通过算术和逻辑操作来设置这些位,ARM处理器对这些位进行测试以决定是否执行一条指令,实现条件执行。 N 负标识,运算结果的最高位,记录标识设置操作的结果 Z 零标识,如果标识设置操作的结果为0,置位 C 进位标识,记录无符号加法溢出,减法借位 V 溢出标识,记录标识设置操作的有符号溢出第26页/共68页当前程序状态寄存器CPSR CPSR的低八位为控制位,分别是: 中
15、断禁止I和F 处理器状态位T 处理器模式位M4M0 发生异常时,控制位改变。当处理器在一个特权模式下操作时,可用软件操作这些位。第27页/共68页异常向量表地址异常进入时的模式IF0 x00000000复位管理禁止 禁止0 x00000004未定义指令 未定义IF0 x00000008软件中断管理禁止 F0 x0000000C中止(预取)中止IF0 x00000010中止(数据)中止IF0 x00000014保留保留0 x00000018IRQ中断禁止 F0 x0000001CFIQ快速中断禁止 禁止第28页/共68页异常优先级优先级异常最高最低1复位2数据中止3FIQ4IRQ5预取指中止6未
16、定义指令6软件中断SWI第29页/共68页进入异常 保存返回地址到LR 保存CPSR的当前值到相应异常模式下的SPSR 设置CPSR为相应的异常模式,禁止相应中断控制位,防止不受控制的中断嵌套 设置PC为相应异常处理程序的中断入口向量地址第30页/共68页退出异常 用LR中的值减去偏移量再恢复PC 用SPSR恢复CPSR 在入口处置位的中断禁止控制位清零第31页/共68页复位异常 nRESET信号被拉低时,ARM处理器放弃正在执行的指令; nRESET信号恢复高电平时,ARM处理器执行以下操作: 强制进入管理模式 禁止IRQ和FIQ 进入ARM状态 强制PC从0 x0000 0000开始执行
17、复位后,除PC和CPSR之外的所有寄存器的值都是随机的。第32页/共68页中断请求异常IRQ IRQ中断异常发生时,内核自动做如下处理: 将返回地址保存到R14_irq中 将CPSR保存到SPSR_irq中 禁止新的IRQ中断,进入ARM状态,进入IRQ异常模式 强制PC执行0 x0000 0018地址的指令 如果需要嵌套IRQ中断,那么必须在中断服务程序中重新使能IRQ中断。第33页/共68页FIQ快速中断异常 CPSR的F位被清零时,可以发生FIQ异常。FIQ是优先级最高的中断,进入该中断后会同时禁止任何外部中断源再次发生中断,除非在软件中重新使能FIQ和IRQ。 FIQ有8个专用寄存器,
18、使得进入FIQ时不用压栈,以提高响应速度。 FIQ入口地址在向量表顶部,可以不需要跳转,直接放置中断服务程序。第34页/共68页未定义指令异常 当ARM处理器遇到一条自己和系统内任何协处理器都无法执行的指令时,发生未定义指令异常。 软件可以使用这一机制通过仿真未定义的协处理器指令来扩展ARM指令集。第35页/共68页中止异常 中止表示当前对存储器的访问不能被完成。 中止有两种类型:预取指中止和数据中止。第36页/共68页SWI软件中断异常 由于系统正常工作是在用户模式下进行的,如果需要切换到特权模式就必须使用软件中断切换到管理模式。 该异常由执行指令SWI产生,用于用户模式下的程序调用特权操作
19、指令。第37页/共68页ARM体系的存储系统 ARM处理器采用冯诺依曼结构,指令和数据共用一条32位数据总线。ARM存储器可以看做一个从0开始的线性递增字节集合: 字节03保存第1个存储的字 字节47保存第2个存储的字 字节811保存第3个存储的字 ARM处理器可以将存储器中的字以下列格式存储:大端(Big-endian)小端(Little-endian)。第38页/共68页存储器格式 位于地址A的字包含的字节位于地址A、A+1、A+2、A+3 位于地址A的半字包含的字节位于地址A、A+1 位于地址A+2的半字包含的字节位于地址A+2、A+3 位于地址A的字包含的半字位于地址A、A+2第39页
20、/共68页LPC2000系列ARM指定为小端Little31-2423-1615-87-0字地址高地址低地址11109887654432100Big31-24 23-16 15-8 7-0字地址高地址低地址89101184567401230第40页/共68页第一讲第一讲 主要内容主要内容ARM7体系结构体系结构LPC2000系列系列ARM概述概述ARM嵌入式系统概述嵌入式系统概述第41页/共68页LPC2000系列ARM概述 LPC2000系列ARM是基于一个支持实时仿真和跟踪的32位ARM7TDMI-S的微控制器,芯片内集成丰富的外设,功耗却很低。 具有64/144引脚封装。 片内SRAM及
21、FLASH使单片运行成为可能。 外扩大容量存储器。 片内PLL可实现60MHz操作频率。 片内Boot装载程序实现在系统编程(ISP)和在应用编程(IAP)。第42页/共68页LPC2000系列ARM概述 4/8路10位A/D转换器,转换时间低至 2个32位定时器、PWM单元、实时时钟和看门狗。 多个串行接口:UART、I2C和SPI。 向量中断控制器。 2个低功耗模式:空闲和掉电。 可个别使能/禁止外部功能来优化功耗。 双电压:内核、I/O操作。第43页/共68页LPC2000系列ARM概述第44页/共68页第45页/共68页不同芯片内部存储器容量第46页/共68页对片内Flash编程的3种
22、方法 使用JTAG仿真器,通过芯片的JTAG接口下载程序。 使用在系统编程技术(ISP),通过UART0接口下载程序。 使用在应用编程技术(IAP),可以实现用户程序运行时对FLASH进行擦除或编程。第47页/共68页对片内外存储器的操作 对于SRAM,不管是片内片外,都可直接进行读写操作。 对于片内FLASH,可以直接读取数据,可使用ISP或IAP进行擦除和编程。 对于片外FLASH,可以直接读取数据,但是写操作时必须进行时序控制。第48页/共68页存储器映射 LPC2000绝大部分存储器单元的地址是在芯片设计生产时就确定的,用户无法修改。 ARM芯片对AHB外设、VPB外设、片内及片外存储
23、器进行统一编址。第49页/共68页AHB和VPB AHB和VPB外设区域都为2MB,每个外设空间都为16KB,各自分配最多128个外设。 AHB外设挂接在芯片内部AHB总线上,具有较高的速度。 VPB外设挂接在芯片内部VPB总线上,速度相对较低。第50页/共68页预取指中止和数据中止异常 如果试图访问一个保留地址或未分配区域的地址,LPC2000系列ARM将产生预取指中止或数据中止异常。第51页/共68页存储器映射模式模式激活说明Boot Block模式由任何复位硬件激活Boot Block异常向量映射到存储器底部用户片内FLASH模式由Boot代码软件激活不需要重映射用户片内RAM模式由用户
24、程序激活由用户程序激活,异常向量表从静态RAM底部重映射用户外部存储器模式复位时BOOT【1:0】不为11时激活中断向量从外部存储器的底部重映射第52页/共68页MEMMAP寄存器描述位位名称描述复位值1:0 MAP1:000:BOOT装载程序模式01:用户FLASH模式10:用户RAM模式11:用户外部存储器模式07:2保留NA第53页/共68页存储器重映射 定义:为存储器分配地址的过程称为映射,为了增加系统的灵活性,系统中部分存储单元可以同时出现在不同的地址上,即存储器的重映射。重映射通过存储器管理部件实现。 注意:存储器重映射并不是对重映射单元的内容进行了复制,只是将多个地址指向了同一存
25、储单元。 举例:LPC2000系列处理器中Boot Block和异常向量表进行了重映射。第54页/共68页Boot Block Boot Block是芯片设计厂商在LPC2000系列ARM内部固化的一段代码,用户无法对其修改或删除。 Boot Block在芯片复位后被首先运行。 LPC2200系列芯片的Boot Block为8KB,有的芯片中 Boot Block占用了用户FLASH空间。 Boot Block存在于FLASH的顶部。 没有片内FLASH的芯片也存在Boot Block。第55页/共68页Boot Block的重映射 Boot Block有些程序是可以被用户调用的,为了增加用户
26、代码的可移植性,所以最好能把Boot Block代码固定在某个地址上。由于各芯片片内FLASH大小不同,所以将Boot Block重映射到接近2GB的地方,这样无论片内FLASH地址如何变化, Boot Block地址是不变的。第56页/共68页异常向量表地址异常0 x0000 0000复位0 x0000 0004未定义指令0 x0000 0008软件中断0 x0000 000C预取指中止0 x0000 0010数据中止0 x0000 0014保留0 x0000 0018IRQ0 x0000 001CFIQ第57页/共68页异常向量表及其重映射 ARM内核发生异常后,会使程序跳转到位于0 x000000000 x0000001C的异常向量表处,再经过向量表跳转到异常服务程序。 Boot Block 、FLASH、SRAM、外部存储器中的中断向量重映射到0 x000000000 x0000001C地址上。第58页/共68页Boot Block的功能 不同芯片的Boot Block不尽相同,以LPC2200系列ARM为例: 判断运行哪个存储器上的程序。 用户代码是否有效,无效时进入ISP状态。 判断芯片是否加密。 IAP ISP第59页/共68页MAM存储器加速模块 当系统时钟工作在60MHz时,一条指令的执行时间只需十几
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低空经济与空中出行的结合
- 七年级地理上册 第六章 聚落-人类的聚居地说课稿 晋教版
- 《行为遗传学专题》课件
- Unit 4 My family Lesson2(说课稿)-2023-2024学年人教新起点版英语三年级下册
- 二零二五年度水面养殖水域渔业权交易合同
- 房屋租赁协议(简易版)
- 《权证交易实务》课件
- 《终极业务执行力》课件
- 《美术生命的甘露》课件
- 《循环小数》课件
- 监控系统调试检验批质量验收记录(新表)
- 剪映短视频剪辑入门教程
- 卫生部关于发布《综合医院组织编制原则试行草案》的通知((78)卫医字第1689号)
- 新外研版九年级上册英语 Module 1 Unit 2 重点习题课件
- Q∕SY 03026-2019 石脑油-行业标准
- 浙江共同富裕哪些值得关注
- 元宵节猜灯谜PPT
- 锦州市主要环境问题论文
- 东风4型内燃机车检修规程
- 药品经营企业GSP计算机系统培训PPT课件
- 建筑工程冬期施工规程JGJT1042011
评论
0/150
提交评论