嵌入式系统设计与实例开发.pptx
《嵌入式系统设计与实例开发.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统设计与实例开发.pptx(118页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统设计与实例开发嵌入式系统设计与实例开发冯冯 诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构CISCCISC与与RISCRISC影响影响CPUCPU性能的因素性能的因素存储器系统存储器系统I/OI/O接口接口一、嵌入式系统硬件基础第1页/共117页典型嵌入式系统基本组成硬件MPUMPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外围电路外围电路OtherOther外设外设第2页/共117页1.1 冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通
2、数据通道道输入输入输出输出中央处理中央处理器器存储器存储器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4数据数据数据数据0 0数据数据1 1数据数据2 2第3页/共117页1.2 哈佛体系结构哈佛体系结构指令寄存器指令寄存器控制器控制器数据通数据通道道输入输入输出输出中央处理中央处理器器程序存储程序存储器器指令指令0指令指令1指令指令2数据存储数据存储器器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据第4页/共117页1.3 CISC和和RISCCISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set Compu
3、terComplex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得
4、更为简单硬件结构设计变得更为简单 第5页/共117页1.4 影响影响CPU性能的因素:流水线、超标量和缓存性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行流水线技术:几个指令可以并行执行 提高了提高了CPU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp第6页/共117页超标量执行超标量执行超标量执行:超标量超标量执行:超标量CPU采用多条流水线结构采用多条流水线结构 执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据第7页/共117页高速缓存(
5、CACHE)1 1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。提高内存的平均性能。2 2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。容的拷贝。CPU高速缓存控制器CACHE主存数据数据地址第8页/共117页总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线第9页/共117页1.5 存储器系统存储器系统RAMRAM:随机存取存储器,:随机存取存储器,
6、SRAMSRAM:静态随机存储器,:静态随机存储器,DRAMDRAM:动态随机存储器:动态随机存储器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3)DRAMDRAM存储密度比存储密度比SRAMSRAM高得多高得多 4 4)DRMDRM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器FLASHFLASH:闪存:闪存第10页/共117页SRAM和DRAM1)SRAM2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr第11页/共117页输入输出接口输入输出接口lI/OI/OlA/DA/D、
7、D/AD/Al键盘键盘lLCDLCDl存储器接口存储器接口l设备接口设备接口第12页/共117页例如USBUSBUSB:Universal Serial BusUniversal Serial Bus,通用串行总线,通用串行总线大家生活中常见的与大家生活中常见的与USBUSB有关的东西有:有关的东西有:uuU U盘、移动硬盘、无驱型的盘、移动硬盘、无驱型的MP3MP3(U U盘)盘)uuUSBUSB接口的键盘、接口的键盘、MouseMouse、打印机、数码相机、打印机、数码相机即插即用,热插拨,系统不需重启便可工作,且易于扩即插即用,热插拨,系统不需重启便可工作,且易于扩展(展(127127个
8、)个)USB2.0USB2.0以低成本实现高达以低成本实现高达480Mb/s480Mb/s的传输率(的传输率(USB1.1USB1.1的全的全速设备可达速设备可达12Mb/s12Mb/s)接口标准统一、端口供电接口标准统一、端口供电第13页/共117页一个典型的USB通讯系统HOST系统HUBDEVICEDDEVICE应用软件+驱动程序Ms.Win+接口芯片HUBU盘其他数据采集器驱动代码+嵌入式处理器+HOST芯片HUBU盘其他数据采集器通用系统模型PC机中的情况嵌入式系统应用第14页/共117页二、嵌入式系统软件基础操作系统的分类操作系统的分类嵌入式实时操作系统嵌入式实时操作系统前台与后台
9、前台与后台多任务,任务优先级,调度多任务,任务优先级,调度非占先式与占先式、可重入型函数非占先式与占先式、可重入型函数第15页/共117页3.1操作系统的分类(1 1)顺序执行系统:系统内只含有一个程序,独占)顺序执行系统:系统内只含有一个程序,独占CPUCPU的的运行时间,按语句顺序执行该程序,直至执行完毕,另运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如一程序才能启动运行。如DOSDOS操作系统。操作系统。(2 2)分时操作系统:系统内同时可以有多个程序运行,把)分时操作系统:系统内同时可以有多个程序运行,把CPUCPU的时间分按顺序分成若干片,每个时间片内执行不的
10、时间分按顺序分成若干片,每个时间片内执行不同的程序。如同的程序。如UNIXUNIX(3 3)实时操作系统:系统内有多个程序运行,每个程序有)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有不同的优先级,只有最高优先级的任务才能占有CPUCPU的的控制权。控制权。第16页/共117页按实时性分类强实时系统,其系统响应时间在毫秒或微秒级(数控强实时系统,其系统响应时间在毫秒或微秒级(数控机床);机床);一般实时系统,其系统响应时间在毫秒几秒的数量一般实时系统,其系统响应时间在毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱级上,其实时性的要求
11、比强实时系统要差一些(电子菜谱的查询)。的查询)。弱实时系统,其系统响应时间约为数十秒或更长(工弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。程机械)。第17页/共117页1 1)循环轮询系统:()循环轮询系统:(Polling LoopPolling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个输入最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。条件,一旦条件成立就进行相应的处理。Initialize()Initialize()While(true)While(true)if(condition_1)action_1()
12、;if(condition_1)action_1();if(condition_2)action_2();if(condition_2)action_2();if(condition_n)acition_n();if(condition_n)acition_n();按软件结构分类第18页/共117页2 2)事件驱动系统:()事件驱动系统:(Event-Driven Event-Driven systemsystem)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以
13、看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。第19页/共117页前后台系统(后台循环、前台中断)ISRISR后台后台 前台前台ISR时间时间第20页/共117页代码的临界区也称为临界区,指处理时不可分割的代码。代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。一旦这部分代码开始执行,则不允许任何中断打
14、入。在进入临界区之前要关中断,而临界区代码执行完以后在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。存器堆栈保护)。代码的临界区第21页/共117页多任务(任务、进程和线程)CPUCPU寄存器寄存器任务任务控制控制块块1 1任务任务控制控制块块2 2任务任务控制控制块块n n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任务任务1 1任务任务2 2任务任务n nCPUCPU寄存器寄存器第22页/共117页一个任务,也称作一个线程,是一个简单的运一个任务,也称作一个线程,
15、是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,务被赋予一定的优先级,有它自己的一套有它自己的一套CPUCPU寄存器寄存器和自己的栈空间。和自己的栈空间。多任务运行的实现实际上是靠多任务运行的实现实际上是靠CPUCPU(中央处理(中央处理单元)在许多任务之间转换、调度。单元)在许多任务之间转换、调度。CPUCPU只有一个,轮番服务于一系列任务中的某只有一个,轮番服务于一系列任务中的某一个。多任务运行使一个。多任务运行使CPUCPU的利用率得到最大的发挥,并的利用率得到最大的发挥,并使应用程序模块化。使应用程序模块化
16、。在实际应用中,多任务的最大特点是,开发人在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化综合实验(时钟、员可以将很复杂的应用程序层次化综合实验(时钟、位图、位图、USBUSB、KEYKEY)。)。第23页/共117页任务的状态第24页/共117页系统内核(Kernel)与调度(Scheduler)多任务系统中,内核负责管理各个任务,或者说为每个多任务系统中,内核负责管理各个任务,或者说为每个任务分配任务分配CPUCPU时间,并且负责任务之间的通信。时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。内核本身也增加了应内核提供的基本服务是任务切换。内核本身也增加了
17、应用程序的额外负荷,代码空间增加用程序的额外负荷,代码空间增加ROMROM用量,内核本身用量,内核本身的数据结构增加了的数据结构增加了RAMRAM的用量。内核本身对的用量。内核本身对CPUCPU的占用时的占用时间一般在间一般在2 2到到5 5个百分点之间。个百分点之间。调度(调度(SchedulerScheduler)是内核的主要职责之一,就是要决)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度
18、法指,的优先级。基于优先级的调度法指,CPUCPU总是让处在就总是让处在就绪态的优先级最高的任务先运行。绪态的优先级最高的任务先运行。第25页/共117页任务优先级静态优先级静态优先级 应用程序执行过程中诸任务优先级不变,则称之为应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的的时间约束在程序编译时是已知的 动态优先级动态优先级 应用程序执行过程中,任务的优先级是可变的,则应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反称之为动态优先级
19、。实时内核应当避免出现优先级反转问题。转问题。第26页/共117页优先级反转第27页/共117页信号量(Semaphore)信号量是信号量是6060年代中期年代中期Edgser Dijkstra Edgser Dijkstra 发明的。信号发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用量实际上是一种约定机制,在多任务内核中普遍使用.信号量用于信号量用于:uu控制共享资源的使用权控制共享资源的使用权(满足互斥条件满足互斥条件)uu标志某事件的发生标志某事件的发生uu使两个任务的行为同步使两个任务的行为同步信号与信号量在英文中都叫做信号与信号量在英文中都叫做SemaphoreSemap
20、hore,并不加以,并不加以区分,而说它有两种类型,二进制型区分,而说它有两种类型,二进制型(binary)(binary)和计数和计数器型器型(counting)(counting)第28页/共117页死锁(或抱死)Deadlock 死锁也称作抱死,指两个任务无限期地互相等待对方控制死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务着的资源。设任务T1T1正独享资源正独享资源R1R1,任务,任务T2T2在独享资源在独享资源T2T2,而此时,而此时T1T1又要独享又要独享R2R2,T2T2也要独享也要独享R1R1,于是哪个任,于是哪个任务都没法继续执行了,发生了死锁。最简单的防
21、止发生务都没法继续执行了,发生了死锁。最简单的防止发生死锁的方法是让每个任务都:死锁的方法是让每个任务都:l l先得到全部需要的资源再做下一步的工作先得到全部需要的资源再做下一步的工作l l用同样的顺序去申请多个资源用同样的顺序去申请多个资源l l释放资源时使用相反的顺序释放资源时使用相反的顺序 第29页/共117页本节提要本节提要1 13 32 24 4嵌入式系统硬件基础嵌入式系统硬件基础嵌入式嵌入式BSP的基本概念的基本概念嵌入式系统软件基础嵌入式系统软件基础嵌入式系统设计方法嵌入式系统设计方法5 5一个嵌入式设计方法实例一个嵌入式设计方法实例第30页/共117页嵌入式系统的软/硬件框架第
22、31页/共117页基于知识平台的开发方法第32页/共117页嵌入式系统设计步骤系统需求分析:确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能需求包括系统性能、成本、功耗、体积、重量等因素。体系结构设计:描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。硬件/软件协同设计:基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。应该说,嵌
23、入式系统设计的工作大部分都集中在软件设计上,采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。系统集成:把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。系统测试:对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。第33页/共117页嵌入式开发工具与开发环境第34页/共117页嵌入式软件开发流程嵌入式软件开发流程第35页/共117页开发平台简介第36页/共117页几种常用的开发方法指令集模拟器指令集模拟器 一种利用PC机端的仿真开发软件模拟调试的方法。驻留监控软件驻留监控软件 驻留监控程序运行在目标板上,PC机端调试软件可通过
24、并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务JTAGJTAG仿真器仿真器 通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段在线仿真器在线仿真器 使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中第37页/共117页需求分析与评估需求分析与评估功能定义与软硬件选型功能定义与软硬件选型概要设计与软硬件划分概要设计与软硬件划分软硬件协同详细设计软硬件协同详细设计集成调试集成调试维护与升级维护与升级设计步骤设计步骤第38页/共117页谢谢各位第39页/共117
25、页嵌入式系统设计与实例开发嵌入式系统设计与实例开发ARMARM与与 C/OS-C/OS-基于基于ARMARM的硬件系统结构设计的硬件系统结构设计第40页/共117页本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计第41页/共117页基于ARM的硬件设计主要介绍基于主要介绍基于ARM7ARM7的嵌入式硬件开发平台的设计的嵌入式硬件开发平台的设计方法,包括结构、主要接口、存储器选用方案以及外设、方法,包
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 实例 开发
限制150内