第四章嵌入式操作系统2内容提要嵌入式Linux操作系统实时操作系统常见嵌入式操作系统嵌入式操作系统概述3操作系统的发展计算机系统由硬件和软件构成,在发展初期并没有操作系统这个概念,用户使用监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源越来越丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序进一步发展形成了操作系统。到目前为止,主流的操作系统有三种:多道批处理、分时和实时操作系统。4嵌入式操作系统结构操作系统分类微内核(micro-kernel)单晶内核(monolithickernel)混合内核(hybridkernel)KernelMemoryMgmt.5分层次模块化67各式各样的操作系统桌面机Windows(9X,XPHome,XP/2000Pro)Mac服务器Windows(XP/2000Server&AdvancedServer)UnixVarieties嵌入式Many8嵌入式操作系统概念嵌入式操作系统EOS(EmbeddedOperatingSystem)是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。嵌入式系统是使用特定嵌入式软件完成特定功能的计算机系统,嵌入式操作系统作为软件的组成部分,为嵌入式软件的开发和运行提供良好的环境。嵌入式系统可以是基于ROM或者是磁盘的系统,类似PC,但它并不能替代通用计算机系统。9模块化可升级可配置小内存损耗CPU支持设备驱动等等...10嵌入式操作系统作用具有通用操作系统的功能:EOS负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动;能够把硬件虚拟化:简化开发人员的工作它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。能够提供库函数、驱动程序、工具集以及应用程序11嵌入式操作系统分类基于或与Windows兼容:WindowCE、嵌入式Linux、EPOC工业与通信(传统)类:VxWorks、pSOS、QNX、Neculeus、VRTX单片机类:iRMX、CMX、μC/OS面向Internet类:PalmOS、Visor、Hopen、PPSM12嵌入式操作系统特点可定制性一般需提供可添加或可裁剪的内核及其他功能,让用户按需配置。如调度算法、存储管理、设备驱程序。可移植性应该能够支持多种国际主流微处理器等硬件平台,给用户硬件选择的灵活性。实时性大多数嵌入式系统工作在实时性要求很高的环境中,要求嵌入式操作系统必须将实时性作为一个重要的指标来考虑。低资源占有性在保证其功能的前提下,尽可能减少系统对资源的占用。13使用嵌入式操作系统的优缺点优点使程序的设计和扩展变得容易,大大提高了开发效率。充分发挥32位CPU多任务的潜力,实现多任务设计,能够充分利用硬件资源和实现资源共享。实时性和健壮性能够得到更好的保证。缺点嵌入式操作系统增加ROM/RAM等额外开销,5~10%的CPU额外负荷。14嵌入式操作系统的发展趋势体系结构向微内核方向发展可伸缩、可移植、可剪裁、可配置行业的标准:多种操作系统平台,应用决定操作系统结构紧凑、功能强大高可用(HighAvailable)、高可靠(HighReliable)、支持多处理器和分布式计算可动态加载和升级软件与开发工具有机的结合起来15ExternalMemoryCPUAddressDataCacheBusInterfaceWriteBufferMMU/MPURR(R/W)外设如USB、LCD控制器等扩展芯片内核(core)处理器存储器子系统SoC的片内外设系统的片外设备处理器(Processor)芯片(SoC)系统(System)16嵌入式操作系统的选择应用需求实时性开发工具CPU种类价格和技术支持和服务17一些典型的应用实例goReaderInterneteBookSamsungAnyWebInternetScreenPhoneeRemoteIntelligentHomeControllerTektronixTDS7000DigitalOscilloscopesNixvueDigitalAlbumDigitalPhotoAlbum18内容提要嵌入式Linux操作系统实时操作系统常见嵌入式操作系统嵌入式操作系统概述19WindowsEmbeddedWindowsCE:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统(缩减的Win95)。针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,属于软实时操作系统,由于其Windows背景,界面比较统一认可。可以使用大多数Windows开发工具(如VB,VC等),大多数Windows应用程序经过移植后就可以运行在WinCE平台上。操作系统的基本内核需要至少200K的ROM。20微软的移动平台更强的功能笔记本PC•复杂的文档编辑和读写•桌面键盘输入•键盘和鼠标输入法•完整的.NETframework支持WindowsXP/XPE平板电脑•复杂的文档编辑和读写•桌面键盘输入•支持数字墨水•可以支持键盘,也可以把键盘拿走•键盘、鼠标、数字墨水和语音输入•完整的.NETframework支持•提供笔,数字墨水,手写和语音识别APIWindowsCE小型个人产品•单向网络•信息消费WindowsMobileSmartphone•信息消费•基本数据浏览•把PDA融入电话•可以与Exchange交互•.NETCompactFramework•ASP.NET移动控件PocketPC•信息消费•浏览和输入数据•把电话融入PDA•可以与Office,Exchange和SQLServer交互•.NETCompactFramework•ASP.NET移动控件21WindowsEmbedded家族22MicrosoftWindowsCEMicrosoft公司的产品微内核,可剥夺采用页式存储管理,页面换入技术(可以锁定)内核映像既可以在ROM中,也可以在RAM中运行动态连接DLL中断处理分ISR与IST,不支持嵌套设备驱动也分两层Winsock提供网络接口GUI丰富23VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。VxWorks所具有的显著特点是:可靠性、实时性和可裁减性。它支持多种处理器,如x86、i960、SunSparc、MotorolaMC68xxx、MIPS、POWERPC等等。24以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星探测器(1997年7月4日登陆火星表面)。去掉了一些OS模块,因为这些模块在某种程度上会影响系统的实时性(如在内存管理中没有采用页面管理模式,采用的是平板式内存。25VxWorks–缺点缺少某些OS特性保证时限要求是设计者自己的任务(系统的灵活性带来的弊端)不支持很多应用和APIs(只支持部分POSIX标准的函数集)尽管采用了平板式内存管理,但是由于内存的动态分配,仍然存在内存段,这样仍然存在时间上的不可预测性应用领域主要局限在对实时性要求较严格的硬实时系统中26SymbianOSSymbian由诺基亚、西门子、索尼爱立信等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。Symbian操作系统的前身是EPOC针对PDA及智能手机的,能够提供良好的软实时的操作系统,目前占有60%的智能手机市场与之竞争的有WindowsMobile、PalmOS以及Linux主要版本Series60/90/80/40UIQ27PalmOSPalmOS是著名的网络设备制造商3COM旗下的PalmComputing掌上电脑公司的产品。PalmOS是一套专门为掌上电脑编写的操作系统,充分考虑到了掌上电脑内存相对较小的情况,所以Palm操作系统本身所占的内存很小,基于Palm操作系统编写的应用程序所占的空间也很小,通常只有几十KB,因此基于Palm操作系统的掌上电脑虽然只有几兆内存却可以运行众多的应用程序。PalmOS在PDA市场上占有很大的市场份额,PalmOS的市场份额占到将近90%,最近下降70%,目前主要与WINCE进行激烈竞争。代表性的产品有Palmm505、Palmm500、PalmIII等。28QNX加拿大QNX公司的产品。QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从68K的CPU上面开发成熟,然后再移植到X86体系上面来的。QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,由于QNX具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。29C/OS及C/OS-IIC/OS—MicroControllerOSC/OS简介美国人JeanLabrosse1992年完成,已应用于数百种产品中。应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等1998年C/OS-II,目前的版本C/OS-IIV2.722000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中是一个源码公开、可移植、可裁减、占用资源少、抢先式的实时多任务操作系统。其绝大部分源码采用ANSIC写的,移植性好。高校教学可免费使用。网站()30OSEOSE主要是由瑞典的ENEADataAB下属的ENEAOSESystemsAB负责开发和技术服务的,一直以来都充当着实时操作系统以及分布式和容错性应用的先锋,并保持良好的发展态势。OSE的客户深入到电信、数据、工控、航空邓领域,尤其在电信方面,该公司已经有了十余年的开发经验,同诸如爱立信、诺基亚、西门子等公司确立了良好的关系。目前手机市场占有率为15%左右,期望在未来3G手机市场占有率达到50%。31嵌入式LinuxLinux是源码开放的,不存在黑箱技术。Linux内核小,功能强大,运行稳定,系统健壮,易于定制裁减,价格上极具优势Linux支持CPU较多开发工具gccgdb得到IBM、SUN等的支持,逐渐形成了可与WindowsCE等抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。32内容提要嵌入式Linux操作系统实时操作系统常见嵌入式操作系统嵌入式操作系统概述33基本概念前后台系统对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。很多基于微处理器的产品采用前后台系统设计,例如微波炉、电话机、玩具等。在另外一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有事都靠中断服务来完成。34前后台系统中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。这种系统在处理的及时性上比实际可以做到的要差。ISRISRISRISR后台前台中断服务程序时间35基本概念资源程序运行时可使用的软、硬件环境统称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器。资源也可以是一个变量、一个结构或一个数组等。36基本概念共享资源可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。任务A共享资源任务B任务C信号量访问共享资源之前申请信号量其它任务访问受阻而