嵌入式系统教学课件:第二章嵌入式系统的基本知识-软件_第1页
嵌入式系统教学课件:第二章嵌入式系统的基本知识-软件_第2页
嵌入式系统教学课件:第二章嵌入式系统的基本知识-软件_第3页
嵌入式系统教学课件:第二章嵌入式系统的基本知识-软件_第4页
嵌入式系统教学课件:第二章嵌入式系统的基本知识-软件_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2,C H A P T E R,嵌入式系统的 基本知识,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式操作系统,嵌入式系统设计方法,嵌入式软件体系结构,无操作系统的情形 在嵌入式系统的发展初期,由于硬件的配置比较低,对于是否有系统软件的支持,要求还不是很强烈。在那个阶段,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统。 有操作系统的情形,无操作系统的情形,循环轮询系统:(Polling Loop) 最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理。 Initialize(); while(1) if(co

2、ndition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n(); ,事件驱动系统(Event-Driven system) 事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限循环,循环中调用相应的函数完成相应操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。,例如,很多基于微处理器的产品采用前后台系统设计,如微

3、波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。,前后台系统(后台循环、前台中断),ISR,ISR,后台 前台,ISR,时间,有操作系统的情形,硬件,板级初始化,设备驱动层,以太网驱动,串口驱动,LCD驱动,键盘驱动,操作系统层,中间件层,应用软件层,TCP/IP网络系统,文件系统,内核,嵌入式GUI,嵌入式CORBA,嵌入式JAVA,嵌入式DCOM,面向领域的中间件,WWW浏览器,MP3播放器,电子邮件,嵌入式操作系统概述,An Embedded Operating System (EOS) is an Operating System (OS)

4、 in an Embedded System environment.,Being an OS means,系统软硬件资源的管理者: 进程管理 存储管理 I/O设备管理 文件管理,Being an EOS means,完成某一项或有限项功能,非通用型; 在性能和实时性方面可能有严格限制; 能源、成本和可靠性通常是影响设计的重要因素; 占有资源少,适合在有限存储空间运行; 系统功能可针对需求进行裁剪、调整,以便满足最终产品的设计要求。,按响应时间分类,嵌入式实时操作系统 当事件/请求发生时,相应的任务应该在规定的时间内完成; 分时操作系统 基于公平性原则,各个进程分享处理器,获得大致相同的运行时

5、间。当一个进程在进行I/O操作时,交出处理器,让其他进程运行。,soft real time,hard real time,按软件结构分类,单体结构(Monolithic Structure) 分层结构(Layered Structure) Out of date 微内核结构(Microkernel Model),单体结构,最常用的组织结构; 整个系统只有一个可执行文件,包含所有的操作系统组件; 系统的结构就是无结构,由一组函数组成,相互之间可以随意地调用。,应用软件,文件I /O,存储管理,进程管理,I/O驱动,存储驱动,中断驱动,硬件,单体内核,分层结构,在分层结构(layered)中,一

6、个操作系统被划分为若干个层次(0.N),各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它低层的代码。 这种结构要求在每个层次上都要提供一组API接口函数,这就会带来额外的开销,微内核,设备驱动程序,微内核结构,操作系统内核只包含最少的功能,如存储管理和进程管理; 其他的操作系统组件以中间件的形式存在于内核之外; 设备驱动程序完全从内核中剥离,独立成为一层。,中间件、应用软件,存储管理,进程管理,I/O驱动,存储驱动,中断驱动,硬件,几种常见的嵌入式操作系统,Wince Linux Palm VxWorks uCOS ,嵌入式操作系统WinCE,Windows CE是微软开发的一个

7、开放的、可升级的32位嵌入式操作系统,是一个基于掌上型电脑类的电子设备的操作系统。 Windows CE是精简的Windows 95。Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics) 整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200K的ROM。,嵌入式操作系统WinCE,Windows CE不仅继承了传

8、统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98/2000上的编程工具(如Visual Basic、Visual C+等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用 目前主要应用于PDA,跟微软一系列Windows系统一样,Windows CE也承袭了原有的缺点:耗系统资源、不稳定、效率不佳.等等。后来将整个架构重新改写后推出 Windows CE 3.0 版,或称为 Pocket PC。,嵌入式操作系统Linux,Linux是一个类似于Unix的操作系统。它起源于芬兰一

9、个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。 Linux从1991年问世到现在,短短10几年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux OS已成为Microsoft公司Windows 95/98的强劲对手。Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。 目前正在开发的嵌入式系统中,50%以上的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作

10、的理想选择。,嵌入式操作系统Linux,开放原始码、模块化设计 Linux采用GPL授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而Linux核心本身采用模块化设计,让人很容易增减功能,例如我的平台并不需要蓝牙的功能,我只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。,嵌入式操作系统Linux,相较于Linux,Windows是走封闭原始码路线,所以我们完全无法得知或修改它的核心部份。另外因为是采用GPL授权自然就没有什么权利金或保密协议的约束。,嵌入式操作系统Linux,嵌入式Linux OS的特点 精简的内核

11、,性能高、稳定,多任务。 适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。 能够提供完善的嵌入式GUI以及嵌入式X-Windows。 提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等多种应用。 提供完整的开发工具和SDK,同时提供PC上的开发版本。,嵌入式操作系统Linux,用户可定制,可提供图形化的定制和配置工具。 支持常用嵌入式芯片的驱动,支持大量的周边硬件设备,驱动丰富。 针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。 完善的中文支持,强大的技术支持,完整的文档。 开放源码,丰富的软件资源,广泛的软件开发者的支持,

12、价格低廉,结构灵活,适用面广。,嵌入式操作系统Palm,由Palm Computing公司的嵌入式操作系统,目前最大的应用在PDA,是市场占有率最高的PDA操作系统。 Palm操作系统架构非常简洁,可以非常不耗系统资源,硬件需求低,连带的整体耗电量便可压缩到非常低,因此采用Palm操作系统的PDA都有待机时间长的优点。,嵌入式操作系统VxWorks,VxWorks是目前嵌入式系统领域中使用广泛、市场占有率较高的一个操作系统。 它支持多种处理器,如x86、i960、Sun Sparc、ARM、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks A

13、PI是专有的。 采用GNU的编译和调试器。,嵌入式操作系统uCOS,C/OSmicro O S,微控制器操作系统, 美国人Jean Labrosse 1992年完成 应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等 1998年C/OS-II,目前的版本C/OS -II V2.61 2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中 网站www.ucos-II.com(),嵌入式操作系统uCOS,公开源代码 可移植性(Portable) 绝大部分C/OS-II的源码是用移植性很强的ANSI C写的。和微处理器硬件相关的那部分是用汇编语言

14、写的。汇编语言写的部分已经压到最低限度,使得C/OS-II便于移植到其他微处理器上。 C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器 、数字信号处理器(DSP)上运行。 可固化(ROMable) C/OS-II是为嵌入式应用而设计的,只要读者有固化手段(C编译、连接、下载和固化),C/OS-II可以嵌入到读者的产品中成为产品的一部分。,嵌入式操作系统uCOS,可裁剪(Scalable):可以只使用 C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个 C/OS-II调用,而另一个产品则使用了几乎所有 C/OS-II的功能,这样可以减少产品中

15、的 C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。 占先式(Preemptive) 多任务:C/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务 可确定性:全部 C/OS-II的函数调用与服务的执行时间具有可确定性。,嵌入式操作系统uCOS,任务栈:每个任务有自己单独的栈, C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。 系统服务:C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。 中断管理:中断可以使正在执行的任务暂时挂起,如果优

16、先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。 稳定性与可靠性,其他嵌入式操作系统,QNX 的 QNX OS 、WindRiver 的 VxWorks、Microware 的 OS9、pSOS 等等。,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式操作系统,嵌入式系统设计方法,嵌入式系统的开发流程,确定产品需求,选择主要芯片,确定编程语言,选择开发环境,RTOS的使用,测试工具与其他辅助设备,桌面应用程序编译和加载过程,嵌入式应用程序的编译和加载过程,嵌入式系统的开发设计与调试,设计,生产,IDE,评估板,仿真器,

17、逻辑分析仪,边界扫描测试仪,编程器,开发环境,什么是嵌入式开发环境:,源程序,目标文件,可重定位程序,可执行文件,编译器/汇编器/链接定位器 调试器/仿真器 主机(Host)及其工作平台 实时操作系统(可选) 目标评估系统(可选) 测试工具(软件/硬件/协议等,可选) 其他辅助设备(可选),典型的开发环境,ARM的编译器(1),ADS1.2 ARM公司出品 IDE环境,包括 ARM/Thumb汇编器:armasm ANSI C 编译器 - armcc 和 tcc ISO / Embedded C+ 编译器 - armcpp and tcpp 链接器 armlink Windows 集成开发环境

18、 CodeWarrior 格式转换器 fromelf 库管理器 - armar 调试器 模拟调试器:ARMulator JTAG调试:AXD(与Multi-ICE配合) 支持所有ARM内核,最新版本:RealView2.0,ARM的编译器(2),EW-ARM 瑞典IAR公司出品 著名的嵌入式工具提供商,以提供编译器/协议栈/统一建模工具著称 主要产品:Embeded Workbench(EW)、Make APP、Visual State等 EW-ARM:针对ARM的集成开发环境: C/C+编译器 C-SPY 模拟调试器 ROM-Monitor 多种级别代码优化方法,满足用户在速度、文件大小方面

19、的要求 内建ARM特性优化器 支持多种断点模式 支持Nucleus, VxWorks等RTOS Greenhills GNU,嵌入式系统的调试(1),嵌入式系统的调试有四种基本方法: 模拟调试(Simulator) 软件调试(Debugger) BDM/JTAG调试(BDM/JTAG Debugger) 全仿真调试(Emulator),嵌入式系统的调试(2),模拟调试(Simulator) 调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标运行环境,可以进行语法和逻辑上的调试。 优点:简单方便,不需要目标板,成本低 缺点:功能非常有限,无法实时调试 大多数调试工具都提供Sim

20、ulator功能,嵌入式系统的调试(3),软件调试(Debugger) 主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,待调试软件下载到目标板上运行。 这种方式的先决条件是要在Host和Target之间建立起通信联系(目标板上称为监控程序Monitor),嵌入式系统的调试(3),软件调试(Debugger) 优点:纯软件,价格较低,简单,软件调试能力较强 缺点:需要事先烧制Monitor(往往需多次试验才能成功)且目标板工作正常,功能有限,特别是硬件调试能力较差。,PC,Target,Monitor,串口,嵌入式系统的调试(4),BDM/JTAG调试 这种方式有一个硬件调试体。

21、该硬件调试体与目标板通过BDM、JTAG等调试接口相连,与主机通过串口、并口、网口或USB口相连。待调试软件通过BDM/JTAG调试器下载到目标板上运行。 优点:方便、简单,无须制作Monitor,软硬件均可调试 缺点:需要目标板,且目标板工作基本正常(至少MCU工作正常),仅适用于有调试接口的芯片,Target,PC,接口,BDM/JTAG Debugger,嵌入式系统的调试(5),全仿真调试(Emulator) 这种方式用仿真器完全取代目标板上的MCU,因而目标系统对开发者来说完全是透明的、可控的。仿真器与目标板通过仿真头连接,与主机有串口、并口、网口或USB口等连接方式。由于仿真器自成体系,调试时既可以连接目标板,也可以不连接目标板(Stand alone)。 优点:功能非常强大,软硬件均可做到完全实时在线调试 缺点:价格昂贵。,ARM的调试方式,模拟调试 SDT2.52: ARMulator ADS1.2:ARMulator Trace32:Simulator EW-ARM:C-spy 软件调试 ADS1.2:Angel(串口) SD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论