嵌入式课程-第1讲(嵌入式系统综述)ppt课件.ppt
1嵌入式系统理论与技术电信学院 高 学 Office: 逸夫科学馆303A2/92第一讲 嵌入式系统综述课程设置相关问题课程主要内容课程设置安排实验室环境嵌入式系统的基本概念嵌入式系统的定义嵌入式系统的构成要素微处理器操作系统嵌入式系统的基本开发流程开发流程调试方法3/92课程设置的必要性国 家 中 长 期 科 学 和 技 术 发 展 规 划 纲 要国 家 中 长 期 科 学 和 技 术 发 展 规 划 纲 要 (20062020年年):n优先支持主题之一:优先支持主题之一:现代服务业信息支撑技术现代服务业信息支撑技术及大型应用软件及大型应用软件n 重点研究开发金融、物流、网络教育、传媒、重点研究开发金融、物流、网络教育、传媒、医疗、旅游、电子政务和电子商务等现代服务医疗、旅游、电子政务和电子商务等现代服务业领域发展所需的高可信网络软件平台及大型业领域发展所需的高可信网络软件平台及大型应用支撑软件、中间件、应用支撑软件、中间件、嵌入式软件嵌入式软件、网格计、网格计算平台与基础设施,软件系统集成等关键技术,算平台与基础设施,软件系统集成等关键技术,提供整体解决方案。提供整体解决方案。4/925/926/92嵌入式处理器快速成长嵌入式处理器快速成长$70亿亿7/92n了解嵌入式系统的概念和体系结构n掌握嵌入式系统的软硬件开发方法n开发和调试流程n开发工具n培养能力n培养快速、高效的英文专业资料阅读能力n培养实验操作和解决问题的能力n培养细致、耐心、坚持不懈的科研精神n自主创新、团结合作课程目的8/92课程主要内容n嵌入式系统综述nARM体系结构与指令系统、编程模型nPXA270处理器及ADS 开发硬件平台介绍nADS1.2软件开发环境及实验内容介绍n嵌入式Linux的开发环境及工具介绍nBootLoader与嵌入式LINUX内核分析n嵌入式LINUX的文件系统n嵌入式Linux下设备驱动程序开发n应用软件及Qt开发9/92课程安排(1)10/9211/92课程安排(3)12/92课程安排(4)13/92BootLoader的编译、下载与使用内核与文件系统编译下载14/9215/9216/92课件资源nftp服务器:218.192.169.1,port: 21 user: emb ,pwd: embedednIntel PXA270处理器参考手册nADS开发系统参考手册n嵌入式Linux BSP开发软件包n课程讲义17/92ARM中文版图书18/92参考书及资料(一)马忠梅等,ARM & Linux嵌入式系统教程,北航出版社,2004陈文智等,嵌入式系统开发原理与实践,清华大学出版社,2005 马忠梅,ARM嵌入式处理器结构与应用基础,北航出版社,2002陈章龙,嵌入式系统Intel StrongARM结构与开发,北航出版社,2002李驹光,ARM应用系统开发详解,清华大学出版社,200319/92参考书及资料(二)ARM System-on-chip Architeture (中文版) ,北航出版社,2002Craig Hollabansh,陈雷等译,嵌入式linux硬件、软件与接口,电子工业出版社,2003Alessandro Rubini,魏永明等译,linux设备驱动程序,第二版,电力出版社,2002MC9328MX1用户手册,Motorola,2002构建嵌入式Linux系统,中文版,2005中国Linux论坛 嵌入式世界20/92 专用计算机系统 (非PC智能电子设备) 微处理器、定时器、存储器、传感器 嵌入式的微型操作系统 应用软件嵌入式系统的定义(1) 以应用为中心的定义 以应用为中心 以计算机技术和通讯技术为基础 软件与硬件可剪裁 满足系统对功能、成本、体积和功耗等要求21/92 知识集成系统 技术密集资金密集 高度分散不可垄断 面向应用不断创新 嵌入式系统的定义(嵌入式系统的定义(2) 嵌入式Internet技术 是指设备通过嵌入式模块而非PC系统直接接入Internet,以Internet为介质实现信息交互的过程 22/92典型嵌入式系统的基本结构嵌入式处理器外围设备嵌入式操作系统嵌入式应用软件软件系统硬件系统23/92 嵌入式硬件系统 嵌入式处理器 各种存储器 电源部分 接口控制器及外围设备嵌入式硬件系统的基本构成24/92典型嵌入式硬件系统25/92嵌入式操作系统设备驱动及一些中间件协议栈(JAVA VM/JITs)应用软件 板级支持包(板级支持包(BSP)26/92 系统精简系统精简 可用资源有限,可用资源有限,其其硬件和软件系统必须高率硬件和软件系统必须高率、量体裁衣量体裁衣。通常的原则通常的原则:满足功能,尽可能精简。:满足功能,尽可能精简。 专用性强专用性强硬件和软件系统结合非常紧密。硬件和软件系统结合非常紧密。产品具有较长的生命周期。产品具有较长的生命周期。27/92嵌入式系统的几个特征28/9229/9230/9231/9232/9233/92n由由8086系列处理器发展而来系列处理器发展而来 最早的嵌入式处理器,目前在网卡、终端设最早的嵌入式处理器,目前在网卡、终端设备、工控等仍有不少应用。备、工控等仍有不少应用。n典型产品典型产品nAm186/188,386EXnNS Geode GX1 300MHZn主要特点主要特点n开发容易开发容易n方便移植方便移植n体积大,功耗高,实时性差体积大,功耗高,实时性差34/9235/9236/9237/92嵌入式SOCnSystem On Chip,片上系统片上系统/系统芯片系统芯片n将很多功能模块集成到单个芯片上将很多功能模块集成到单个芯片上各种通用处理器内核作为各种通用处理器内核作为SOC设计公司的标准库,设计公司的标准库,用用VHDL等语言描述等语言描述除个别无法集成外,嵌入式系统的大部分集成到一除个别无法集成外,嵌入式系统的大部分集成到一或几片芯片中或几片芯片中n优点优点可利用降低片内工作电压,减少功耗可利用降低片内工作电压,减少功耗减少芯片对外引脚数,使系统板简洁,减小体积减少芯片对外引脚数,使系统板简洁,减小体积减少原来芯片间的信号传递,提高了处理速度;减减少原来芯片间的信号传递,提高了处理速度;减少信号传递过程中可能造成的干扰,提高了可靠性少信号传递过程中可能造成的干扰,提高了可靠性软硬件无缝结合,可直接片内嵌入操作系统代码模软硬件无缝结合,可直接片内嵌入操作系统代码模块块38/9239/92关于ARMnARM=Advanced RISC MachinenRISC 的典型代表n32位处理器技术n嵌入式领域的主力军nARM的产品nARM处理器内核,以IP形式提供给IC生产厂家n硬核:有和特定工艺相连系的物理版图。n软核:用硬件描述语言或C语言写成,用于功能仿真nARM开发工具、SOC开发工具、评估板等nARM公司不生产芯片40/92 ARM是Advanced RISC Machines的缩写,ARM处理器采用RISC(Reduced Instruction Set Computer)技术,即采用精简指令集体系结构。 RISC相对于CISC体系结构,其设计思路是如何使计算机结构更加简单合理地提高运行速度。目前它还没有严格的定义。 据统计,CISC的指令集中,约20的指令使用频率占80,而80指令的使用频率仅占20。ARM处理器(1)41/92CISC与RISCnCISCComplex Instruction Set Computer ,复杂指令集nIntel, IA (Intel Architecture) 32架构nAMDnRISCReduced Instruction Set Computer,精简指令集nSPARC ,Sun与TI开发nPA-RISC, HP开发nAlpha, Compaq开发nPowerPC ,IBM与Motorola开发nMIPSnARMn二者在软件和硬件上都不兼容42/9243/9244/9245/9246/92ARM的广泛应用47/9248/9249/92嵌入式操作系统简介嵌入式操作系统简介n嵌入式操作系统嵌入式操作系统,负责嵌入式系统的全部软、硬件,负责嵌入式系统的全部软、硬件资源的分配、调度,控制、协调并发活动资源的分配、调度,控制、协调并发活动n嵌入式系统有多种操作系统可供选择嵌入式系统有多种操作系统可供选择nVxWorks, Palm OS, pSOS, OS-9,QNX,uCOS-IInWindows CE, NT,XP (如(如Windows Embedded Standard 2009 )nLinux, uCLinuxnAndroid50/9251/92嵌入式操作系统的分类(嵌入式操作系统的分类(1)n按体系的分类按体系的分类nWindows兼容系列兼容系列nWindows CE/NT/XPnLinux类类neLinux, uCLinux,RTLinux, Androidn通信领域嵌入式操作系统通信领域嵌入式操作系统nVxWorks, VRTX,QNS,pSOSn单片机类单片机类niRMX,CMX,uC/OSn面向面向Internet类:类:Palm OS, Visor, Hopen等等52/92嵌入式操作系统的分类(嵌入式操作系统的分类(2)n按商用和免费分类:按商用和免费分类:n免费型免费型nLinux:开放源码;内核小,效率高;易裁减;:开放源码;内核小,效率高;易裁减;支持多种支持多种CPU和硬件平台;众多的开发工具;和硬件平台;众多的开发工具;强大的技术支持;强大的网络功能;图像处强大的技术支持;强大的网络功能;图像处理、文件管理、多任务支持理、文件管理、多任务支持nUC/OS:源码公开;可移植,:源码公开;可移植,C+汇编;可固汇编;可固化,成为产品的一部分;可剪裁;占先式,化,成为产品的一部分;可剪裁;占先式,总是运行就绪条件下优先级最高的任务;多总是运行就绪条件下优先级最高的任务;多任务,任务,8+56;可确定性,执行时间可知;任;可确定性,执行时间可知;任务栈;系统服务;中断管理,务栈;系统服务;中断管理,255层嵌套;稳层嵌套;稳定性与可靠性。定性与可靠性。53/92嵌入式操作系统的分类(嵌入式操作系统的分类(3)nAndroid:2007年年11月月5日,日,Google(谷歌谷歌)收购由收购由Motorola几个工程师创业研发的基于几个工程师创业研发的基于Linux的手机操作平台后,成立基于该平台的手机操作平台后,成立基于该平台的开源手机操作系统开发联盟,并命名为的开源手机操作系统开发联盟,并命名为“Android”。 Android平台由操作系统、中间件、用户界平台由操作系统、中间件、用户界面和应用软件组成,为移动终端打造的真正面和应用软件组成,为移动终端打造的真正开放和完整的移动软件。开放和完整的移动软件。54/92嵌入式操作系统的分类(嵌入式操作系统的分类(4)n商用型商用型nVxWorks:支持多种处理器,使用最广泛。:支持多种处理器,使用最广泛。nWindows CE :掌上设备、无线设备。基于:掌上设备、无线设备。基于Windows背景,界面美观。内核需要至少背景,界面美观。内核需要至少200K的的ROM。nPalm OS:3COM,Palm Computing掌上电掌上电脑公司;脑公司;PDA。npSOS:WindRiver公司。公司。nOS-9:Microwave公司;灵活性和可升级性公司;灵活性和可升级性突出。突出。55/9256/9257/92 实时系统的分类实时系统的分类根据响应时间分:根据响应时间分: 弱实时系统弱实时系统:要求各任务运行越快越好,但:要求各任务运行越快越好,但并不严格限定在规定时间内完成,如手机、并不严格限定在规定时间内完成,如手机、银行计算机系统。银行计算机系统。 强实时系统强实时系统:要求系统能够在规定的时间内:要求系统能够在规定的时间内完成任务,如航天控制系统,通常在毫秒或完成任务,如航天控制系统,通常在毫秒或微妙级。微妙级。 实时系统的概念(2)58/92 实时系统的分类实时系统的分类根据确定性分类:根据确定性分类: 硬实时系统硬实时系统:对系统响应时间有严格要求,:对系统响应时间有严格要求,如果不能满足,就会引起系统崩溃或致命错如果不能满足,就会引起系统崩溃或致命错误。误。 软实时系统软实时系统:对系统响应时间有要求,但是,:对系统响应时间有要求,但是,如果响应时间不能满足,不会导致系统崩溃如果响应时间不能满足,不会导致系统崩溃或出现致命错误。或出现致命错误。实时系统的概念(实时系统的概念(3)59/9260/9261/9262/9263/9264/92基于优先级的抢占式调度算法基于优先级的抢占式调度算法n优先级调度原则优先级调度原则高优先级任务优先得到系统资源高优先级任务优先得到系统资源n抢占式调度原则抢占式调度原则高优先级任务能够抢占低优先级任务的高优先级任务能够抢占低优先级任务的CPUCPU控制权。控制权。特点:任务级响应时间最优化,且是确定的。特点:任务级响应时间最优化,且是确定的。n非抢占式调度原则非抢占式调度原则只允许中断抢占运行中任务的只允许中断抢占运行中任务的CPUCPU控制权。控制权。特点:任务级响应时间不确定,但对中断响特点:任务级响应时间不确定,但对中断响应快。应快。65/92就绪队列中存在就绪队列中存在2 2个以上相同优先级任务;个以上相同优先级任务;各任务均执行一段特定的时间片;各任务均执行一段特定的时间片;超时的任务放到就绪队列中。超时的任务放到就绪队列中。单调速率调度算法单调速率调度算法一种优先级确定算法一种优先级确定算法任务的执行频率越高,优先级就越高。任务的执行频率越高,优先级就越高。66/9267/9268/92 内核的定时器管理内核的定时器管理根据系统的实时时钟完成与延时、定时、超根据系统的实时时钟完成与延时、定时、超时等相关的操作。时等相关的操作。 中断管理中断管理 中断初始化中断初始化 现场保存和恢复现场保存和恢复 中断嵌套管理等。中断嵌套管理等。定时器管理与中断管理定时器管理与中断管理 69/92 微软公司的一款小规模而又高度可定制的操作微软公司的一款小规模而又高度可定制的操作系统系统19961996年发布年发布Windows CE 1.0Windows CE 1.020042004年年7 7月发布了月发布了Windows CE. NET 5.0Windows CE. NET 5.0。 主要应用领域有主要应用领域有:PDAPDA、Pocket PCPocket PC、SmartphoneSmartphone、工业控制、医疗等。、工业控制、医疗等。 丰富开发工具丰富开发工具:Embedded Visual C+Embedded Visual C+、Embedded Visual BasicEmbedded Visual Basic、Visual Studio.NET Visual Studio.NET 实时性实时性:弱实时:弱实时70/92 WindRiverWindRiver公司的一种嵌入式实时操作系统公司的一种嵌入式实时操作系统 持续发展能力、高性能的内核以及友好的用户持续发展能力、高性能的内核以及友好的用户开发环境开发环境 应用领域:通信、军事、航空航天等实时性要应用领域:通信、军事、航空航天等实时性要求很高的场合求很高的场合 实时性:实时性:强实时强实时 VxWorksVxWorks71/92 标准标准linuxlinux经过裁剪后,能够固化在几百经过裁剪后,能够固化在几百k k或者几或者几MBMB存储芯片中,适用于特定应用场合的专用存储芯片中,适用于特定应用场合的专用linuxlinux操作系统。操作系统。 不同实时等级的版本不同实时等级的版本强实时:强实时:RTLinuxRTLinux弱实时:普通弱实时:普通linux linux ,ucLinuxucLinux。(分时。(分时, ,核核心不可抢占)心不可抢占)嵌入式嵌入式linuxlinux 72/92 源码开放,软件丰富源码开放,软件丰富 linuxlinux是内核代码完全开放的自由操作系统是内核代码完全开放的自由操作系统LinuxLinux的软件资源十分丰富,其应用软件开的软件资源十分丰富,其应用软件开发一般不需要从头做起,可以找到类似功能发一般不需要从头做起,可以找到类似功能的自由软件为原型,进行二次开发。的自由软件为原型,进行二次开发。73/92 强大的网格功能支持强大的网格功能支持 支持所有标准的支持所有标准的InternetInternet网络协议,并且可网络协议,并且可以很容易的移植到嵌入式系统中。以很容易的移植到嵌入式系统中。 完备的工具链完备的工具链 完整的工具链,包括完整的工具链,包括GNUGNU的的gccgcc、gdbgdb、kgdbkgdb、xgdbxgdb等等 。嵌入式嵌入式Linux的特点(的特点(2)74/92广泛的硬件支持广泛的硬件支持能够支持能够支持x86x86、ARMARM、MIPSMIPS、PowerPCPowerPC等多种等多种体系结构。体系结构。丰富的驱动程序资源,支持各种主流硬件设丰富的驱动程序资源,支持各种主流硬件设备和最新硬件技术。备和最新硬件技术。75/92 uCLinux :为支持没有为支持没有MMU的处理器而对标准的处理器而对标准Linux作作出的修正出的修正,它不支持实时性。它不支持实时性。没有内存管理单元没有内存管理单元不支持虚拟内存管理技术,而是采用实存储不支持虚拟内存管理技术,而是采用实存储管理策略。管理策略。 普通嵌入式普通嵌入式LinuxLinux通过普通通过普通LinuxLinux的裁剪可得到。支持的裁剪可得到。支持MMUMMU,非,非实时性。实时性。 76/92几种嵌入式几种嵌入式LinuxLinux(2 2)RTLinux与与RTAIRTLinux支持实时性,它通过在普通支持实时性,它通过在普通Linux内核下层增加一个实时内核实现了实时性。内核下层增加一个实时内核实现了实时性。RTAI (Real-time Application Interface)通过在通过在Linux上定义一个实时硬件抽上定义一个实时硬件抽象层(象层(RTHAL),为普通),为普通Linux的实时性提供了的实时性提供了解决方案。解决方案。 77/92RTLinux的双内核结构 硬件RTLinux内核实时调度器Linux内核ACBAB实时任务用户进程软件中断硬件中断78/92 SymbianSymbian OS OS 是由爱立信、诺基亚、摩托罗拉是由爱立信、诺基亚、摩托罗拉和和PsionPsion共同出资开发的手机操作系统,在智共同出资开发的手机操作系统,在智能手机领域占有优势。能手机领域占有优势。Symbian OS79/92nAndroid采用了分层的系统架构:采用了分层的系统架构:应用层、应应用层、应用框架层、系统运行库层用框架层、系统运行库层、linux核心层核心层n应用层应用层:包括:包括预置预置的一些核心应用程序,如的一些核心应用程序,如email客户端、短消息程序、地图、浏览器等客户端、短消息程序、地图、浏览器等。使用使用Java开发开发完成。完成。n应用程序框架层应用程序框架层:开发程序时可以调用的一些:开发程序时可以调用的一些API接口接口n系统运行库层系统运行库层:提供了:提供了Java语言核心库的语言核心库的大多大多数功能。数功能。nLINUX核心层核心层:Android依赖于依赖于linux内核版本内核版本2.6的核心系统服务,例如安全、内存管理、进的核心系统服务,例如安全、内存管理、进程管理、网络栈、驱动模块。程管理、网络栈、驱动模块。n最新版本为最新版本为3.0 Honeycomb(蜂巢蜂巢),专为平板,专为平板电脑设计,增强了电脑设计,增强了3D特性,改善了视觉体验特性,改善了视觉体验Android80/92嵌入式系统的应用实例goReader Internet eBookSamsung AnyWebInternet Screen PhoneeRemoteIntelligent Home ControllerTektronix TDS7000 Digital OscilloscopesNixvue Digital AlbumDigital Photo Album81/92嵌入式系统的应用领域 网络家电 多媒体通信 个人数据处理 国防工业 智能交通 微电子机械(MEMS)中的应用 工业控制 生物微电子技术中的应用82/92确定产品需求选择主要芯片确定编程语言选择开发环境RTOS的使用选择开发方案选择开发方案设计与调试测试测试工具与其他辅助设备产品83/92n什么是嵌入式开发环境:什么是嵌入式开发环境:u编译器/汇编器/链接定位器u调试器/仿真器u主机(Host)及其工作平台u实时操作系统(可选)u目标评估系统(可选)u测试工具(软件/硬件/协议等,可选)u其他辅助设备(可选)84/9285/92n嵌入式开发和调试工作通常要通过高性能的宿主机完成。n嵌入式应用软件通过交叉编译器,完成交叉编译和连接后下载到目标机。 宿主机:进行嵌入式软件开发的主机 目标机:将要开发的目标板 逻辑连接物理连接86/92n嵌入式系统的调试有四种基本方法: n模拟调试(Simulator)n全仿真调试(Emulator)nBDM/JTAG调试(BDM/JTAG Debugger)n软件调试(Debugger)87/92v模拟调试 它通过基于宿主机的软件,在主机上模拟目标机中处理器的功能和指令。如ARM公司的ARMulator模拟器。 它虽然简单可行,但是缺乏在线调试和实时仿真功能。88/92v在线仿真在线仿真(ICE) 它通过在线仿真器,取代目标板的CPU,仿真嵌入式处理器芯片的行为。它支持单步执行、断点、反汇编、源程序级调试。 优点:功能非常强大,软硬件均可做到完全实时在线调试 缺点:价格昂贵。硬件连接示意图目标板目标板仿真器仿真器宿主机宿主机89/92vJTAG仿真器仿真器 ARM处理器内含Embeded ICE 宏单元,并留有JTAG调试接口,支持在线仿真。它无需目标存储器,不占用目标系统的端口。 使用集成开发环境配合JTAG仿真器是目前最常用的一种调试方式。 TargetPC接口BDM/JTAG Debugger90/92vROM Monitor方式(或方式(或Angel方式)方式) ROM Monitor(或Angel)是运行在目标机的Flash或ROM的一段程序,它主要负责监控目标机上被调试程序的运行情况。通过和宿主机的配合,完成嵌入式系统的调试。 它是目前低廉有效的一种调试方式。使用Metrowerks公司的CodeWarrior进行开发调试时要用到的Metro-TRK就属于这类软件。91/92逻辑连接应用软件Angel硬件硬件操作系统调试器物理连接宿主机目标机92/92测验1 1) 列举嵌入式系统的几个特征。2) RISC结构的特点是什么?3) 实时系统的衡量指标有哪些?4) 列举几个实时系统的典型任务调度算法及其特征。5) 嵌入式Linux有哪几个版本?6) RTLinux如何实现实时性的?7) 嵌入式系统开发的4种基本调试模式是什么?