《嵌入式系统软件平台.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统软件平台.ppt(240页珍藏版)》请在三一办公上搜索。
1、嵌入式系统结构,计算机系统结构,嵌入式系统结构,嵌入式系统组成,第3章 嵌入式系统软件平台,嵌入式操作系统概述嵌入式操作系统的体系结构常用嵌入式操作系统嵌入式操作系统的开发,在本质上与通用的操作系统没有太大的区别,一般用于比较复杂的嵌入式系统中手机、PDA等电子类消费产品、机顶盒、路由器等对嵌入式系统的硬件有较高的要求体系结构向微内核方向发展可伸缩、可移植、可裁剪、可配置许多嵌入式操作系统不划分“系统空间”和“用户空间”操作系统的内核与外围应用程序之间不再有物理的边界,采用静态连接系统中所谓“进程”实际上全都是内核线程,3.1 嵌入式操作系统概述,嵌入式操作系统的意义:简单嵌入式系统8位或16
2、位CPU,资源量,任务简单程序员自己管理调度CPU资源,复杂嵌入式系统32/64位CPU,资源丰富,处理能力强,功能需求复杂 需要采用嵌入式操作系统:管理系统的CPU及外围硬件资源 为应用程序提供一个多任务/多线程的编程环境和各种应用程序开发接口 短时间内开发出功能强大、高效、可靠的系统,嵌入式操作系统EOS(Embedded Operating System)是一种支持嵌入式系统应用的系统软件,是嵌入式系统的重要组成部分。嵌入式操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,完成进程管理、处理器调度、存储管理、设备管理、中断处理等操作系统任务。嵌入式操作系统通常包括与硬件相关
3、的底层驱动程序、系统内核、设备驱动接口、通信协议、图形用户界面(GUI)、标准化浏览器等软件模块。,嵌入式操作系统的概念,嵌入式操作系统能够把硬件虚拟化,使得开发人员从繁琐的驱动程序开发、移植和维护中解脱出来,能够提供库函数、驱动程序、工具集以及应用程序。嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。,目前,市场上的嵌入式操作系统种类繁多,如VxWorks、Nucleus、Windows CE、C/OS、pSOS、Embedded Linux、Palm OS、QNX、OS-9、EPOC、LynxOS等。以下给出各种嵌入式操作系统的常见分类
4、方法。,嵌入式操作系统的种类,1.按实时性能分类嵌入式系统按能否满足实时性要求,可分类为嵌入式实时系统嵌入式非实时系统这些特性同样适用于嵌入式操作系统,(1)嵌入式实时操作系统(Real-Time Operating System,也称为嵌入式硬实时操作系统),性能特征 多任务运行方式 真实世界中的事件具有异步特征,能够运行许多并发进程 多任务运行方式则提供了一个较好的相对真实世界的匹配,它允许多个任务对应于许多外部事件的多线程执行,由系统内核分配 CPU 给这多任务来获得并发性,基于优先级的抢占式调度 真实世界的事件可以继承优先级,基于优先级的抢占式调度反映了这一特征 在该调度机制中,任务被
5、指派优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务将被分配 CPU 资源,也就是说,当一个高优先级的任务处于可执行状态时,它立即抢占当前正在运行的较低优先级的任务,快速的任务上下文切换 任务上下文切换是指当处理器的控制权由当前运行任务转移到另一个任务时其投入运行时所发生的事件序列,包括保存当前运行任务的运行现场信息、插入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行 快速的任务上下文切换是嵌入式实时操作系统的重要特征之一,较短的中断延迟时间 中断延迟(Interrupt Latency)时间是指中断发生到开始执行中断处理程序的时间 较短的最大中断延迟时间也
6、是嵌入式实时操作系统的重要特征之一,典型的嵌入式实时操作系统 VxWorks pSOS QNX Nucleus C/OS等,(2)嵌入式非实时操作系统 又称为“嵌入式软实时操作系统”典型代表是嵌入式分时操作系统 也是一种多任务操作系统 任务调度采用时间片轮转方式 大的任务吞吐量,典型的嵌入式软实时操作系统 Windows CE Palm OS EPOC Embedded Linux,2.按购买方式分类 商用型 免费型,(1)商用型嵌入式操作系统 特点 功能稳定、可靠 提供完整方便的开发调试工具 配套完善的技术支持和售后服务 但往往价格昂贵 典型代表VxWorks、pSOS、QNX、Nucleu
7、s、Window CE、Palm OS、EPOC等,(2)免费型嵌入式操作系统 特点 在价格方面具有优势 一般缺乏完善的集成开发调试工具 稳定性与服务方面存在挑战 典型代表Embedded Linux和C/OS,3.按源码是否开放分类按源码是否开放(Open Source)划分为 开放源码型 黑箱型,(1)开放源码型嵌入式操作系统 典型的开放源码型嵌入式操作系统有Embedded Linux和C/OS 商用型嵌入式操作系统Nucleus也出售源代码(2)黑箱型嵌入式操作系统 大部分商用型嵌入式操作系统为黑箱型嵌入式操作系统 例如pSOS、Window CE等,4.按知识产权分类 按是否拥有自主
8、知识产权划分为 国外嵌入式操作系统 自主知识产权型嵌入式操作系统,(1)国外嵌入式操作系统 目前国外嵌入式操作系统在嵌入式操作系统市场占有较大份额 常见的有VxWorks、pSOS、QNX、Nucleus、C/OS、Window CE、Embedded Linux、Palm OS、EPOC等,(2)自主知识产权型嵌入式操作系统 Hopen 针对微软的“维纳斯计划”推出的“女娲计划”的核心产品,由凯思集团研制开发成功 运行在32位微处理器上,由一个体积很小的内核和一些可以根据需要进行定制的系统模块组成 DeltaOS(中文名为“道系统”)北京科银京成技术有限公司研制开发,嵌入式操作系统的特征,嵌
9、入式操作系统负责嵌入系统的全部软、硬件资源的分配、调度工作,控制协调并发活动。嵌入式操作系统体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。,可定制性开放性、可伸缩性的体系结构。可移植性嵌入式操作系统能够支持多种嵌入式硬件,可以应用于不同的嵌入式微处理器。强实时性。EOS实时性一般较强,可用于各种设备控制当中。低资源占有性嵌入式设备的硬件资源有限,一般只配置少量的RAM、频率较低的微处理器,最小的嵌入式操作系统内核只有几百千 字节,在运行期间,内核能够通过一系列手段释放内存,使应用程序和应用软件得到更多的运行空间。,固化代码在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式
10、系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。强稳定性,弱交互性嵌入式系统一旦开始运行就不需要用户过多的干预,要求负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务。,嵌入式操作系统的功能,多任务管理对嵌入式系统中的运行软件进行描述和管理,并完成处理机资源的分配与调度存储管理如何来提高内存的利用率,方便用户的使用,并提供足够的存储空间设备管理方便设备的使用,提高CPU和输入/输出设备的利用率中断管理负责中断的初始化安装、现场的保存和恢复、中
11、断栈的嵌套管理,嵌入式操作系统的演变,*Percent of total software supplied by RTOS vendor in a typical embedded device,Application,Application,Application,Application,在嵌入式系统的发展过程中,从操作系统的角度来看,大致经历了以下几个阶段:无操作系统阶段简单操作系统阶段实时操作系统阶段面向Internet的阶段,体系结构是操作系统的基础,它定义了硬件与软件的界限、内核与操作系统其它组件(文件、网络、GUI等)的组织关系、系统与应用的接口。体系结构是确保系统的性能、可靠性
12、、灵活性、可移植性、可扩展性的关键。,3.2 嵌入式操作系统体系结构,操作系统是计算机系统的重要组成部分,是用户与计算机系统的接口。在进行操作系统设计前,首先要明确操作系统的设计目标。嵌入式操作系统是操作系统的一个分支,所以设计目标首先应满足一般操作系统的设计目标。,一般操作系统的设计目标和特点,可靠性可靠性包含了正确性和健壮性两个方面的含义。影响操作系统正确性的因素有很多,最主要的是并发、共享以及随之带来的不确定性。可靠性包括能在预期的环境条件下完成所期望的功能的能力。高效性操作系统的一个重要目标,是提高系统中各种资源的利用率,即提高系统的运行效率。一个计算机系统在其运行过程中或者处于目态,
13、或者处于管态。处于目态的时候为用户服务,处于管态时既可能为用户服务,也可能做系统维护工作。,只能执行非特权指令,访问规定的寄存器和存储区;用户程序运行在用户态,能执行一切指令,访问所有寄存器和存储区;操作系统运行在核心态,易维护性易维护性包括易读性、易扩充性、易剪裁性、易修改性等含义。为了对操作系统实施增、删、改等维护操作,必须首先了解系统,为此要求操作系统具有良好的可读性。可移植性可移植性是指把一个程序系统从一个计算机系统环境中移到另一个计算机系统环境中并能正常运行的特性。在操作系统的设计中,影响可移植性的最大因素就是系统和计算机硬件有关的部分的处理。通常操作系统与硬件有关的部分被设计在操作
14、系统程序的底层,在进行操作系统的移植时,只需修改操作系统的底层这一部分。,安全性操作系统的安全性是整个计算机系统安全性的基础,它为保护用户的程序和数据提供了最基本的安全机制。在网络环境中,操作系统的安全性更为重要。简明性如果一个操作系统没有简明性,那么该操作系统的设计和开发人员在工作中就很难清晰地了解和掌握该操作系统的设计。如果一个操作系统缺乏简明性,那么在系统的修改和维护过程中,将会产生许多意想不到的困难。,嵌入式操作系统的设计目标和特点,低资源占有性开放性、可伸缩的体系结构高可靠性满足实时性要求较强的网络功能固化代码功能,操作系统的体系结构问题讨论的是如何把操作系统这一大型软件划分成若干较
15、小的模块以及如何设计模块间接口的问题。,通用操作系统的体系结构,无序模块结构分层结构虚拟机结构客户端/服务器结构,无序模块结构,采用这种结构的操作系统是一个整块结构,内部分为若干模块,每个模块可以是一个子程序。模块之间直接相互调用,不分层次,形成网状调用模式。在无序模块结构的系统中,为了构造最终的目标操作系统程序,开发人员首先将一些独立的模块进行编译,然后用链接程序将其链接在一起,成为一个单独的目标程序。适用于模块比较少的小型系统中。,硬 件,系统服务,用户态,核心态,应用程序,应用程序,无序模块结构,分层结构,分层结构操作系统按功能把系统分成若干基本模块,再根据模块的作用和相互关联分为不同的
16、层次,各层次之间单向依赖或单向调用。尽可能地减少各模块间的相互调用,使模块间的无序调用变为有序调用。操作系统在设计时,可以从最底层,向上一层扩充功能,最终形成面向应用层。,分层结构,优点:把整体问题局部化把各模块间的组织结构和依赖关系进行了清晰的划分,把原来的无序任意调用变为有序、有组织和有限制的调用各层之间相对独立,增加或删除某一层时,可以不影响其他层,便于系统的修改、扩充,THE系统为荷兰制造的Electrologica X8计算机配备的一个简单的批处理系统。,虚拟机结构,VM/370系统一个提供多道程序特性的分时系统,一个具有比裸机更方便的、界面扩展的计算机,VM/370系统的核心称作虚
17、拟机监控程序,在裸机上运行并具备多道程序功能,向上层提供若干台虚拟机。VM/370系统仅仅是裸机的精确复制,包含核心态/用户态、I/O功能、中断以及真实硬件具有的全部内容。每台虚拟机可以运行裸机能够运行的任何操作系统,不同的虚拟机可以运行不同的操作系统。,客户端/服务器结构,运行在核心态的内核提供所有操作系统基本都具有的操作,一般采用层次结构设计,构成基本的操作系统,更多的功能留给进程层去实现。运行在用户态并以客户端/服务器方式运行的进程层。进程层分为服务器进程和客户端进程。每个服务进程间相互独立,各自实现一组服务;客户端进程可以是一个应用程序,也可以是另外一个服务进程。,硬 件,进程服务,用
18、户态,核心态,应用程序客户,内存服务,微内核,文件服务,网络服务,显示服务,发送,应答,客户端/服务器结构(微内核结构),运行方式:为了获取某项服务,用户进程将此请求以消息的方式发送给一个服务器进程,但服务器进程并不能直接收到客户端发送的消息,因为每个进程属于不同的地址空间,它们不能直接进行通信。消息先发送给内核,内核再将消息发给服务器进程,服务器进程执行相应的操作后,其结果又通过内核以消息的方式返回给用户进程。,优点:强的可靠性适用于分布式系统,性能问题:通过微内核构造和发送信息、接受应答并解码所花费的时间比进行一次系统调用的时间多很大程度取决于微内核的大小和功能,嵌入式操作系统体系结构,目
19、前嵌入式操作系统主要采用分层和模块化相结合的结构或微内核结构。分层和模块化结合的结构将操作系统分为硬件无关层、硬件抽象层和硬件相关层,每层再划分功能模块。移植工作集中在硬件相关层,与其余两层无关,功能的伸缩集中在模块上,从而确保其具有良好的可移植性和可伸缩性。采用微内核结构,则可利用其可伸缩的特点适应硬件的发展,便于扩展。,中间件和设备驱动程序通常集成在系统内核中。整个系统只有一个可执行文件,里面包含了所有的功能组件。系统的结构就是无结构,整个操作系统由一组功能模块组成,这些功能模块之间可以相互调用。性能较好,系统的各个模块之间可以相互调用,通信开销比较小体积庞大,高度集成,相互关联,在系统剪
20、裁、修改和调试等方面较为困难,单体结构,操作系统被划分为若干个层次(0N),各个层次之间的调用关系是单向的。系统的开发和维护较为简单开销比较大,影响系统的规模和性能,分层结构,微内核结构的操作系统是指在内核当中,把操作系统的大部分功能都剥离出去,只保留最核心的功能单元。易于扩展、调试方便、移植性好运行速度比较慢,微内核结构,内核比通用操作系统更小,将更多的功能放在外部进程实现大多数嵌入式操作系统采用了微内核的结构,内核只提供最基本的功能。采用模块化的设计,使系统可配置性增强嵌入式操作系统一般都采用模块化的结构设计,是一个可配置的软件模块集。从结构设计上要使平台独立性更强,系统易于向其他平台移植
21、从处理器到目标机,嵌入式操作系统面临的是一个多变的硬件环境。,结构设计:系统体系结构对不同处理器的支持,实现包括编码差异和指令系统定向的支持一般设计在CSP层驱动程序实现对不同目标机主板的支持,一般设计在BSP层BSP按照给定的编程规范来完成,保证了嵌入式操作系统可以在新推出的微处理器硬件平台上运行。,硬件抽象层接口的定义和代码设计特点:硬件抽象层具有与硬件密切相关性硬件抽象层具有与操作系统无关性接口定义的功能应包含硬件或系统所需硬件支持的所有功能接口定义简单明了,太多接口函数会增加软件模拟的复杂性具有可测性的接口设计有利于系统的软/硬件测试和集成。,应用程序,任务管理,硬 件,用户扩展处理,
22、调度管理,硬件抽象层,应用编程接口,内存管理,中断管理,时钟/定时器管理,I/O管理,出错处理,同步、通信管理(消息队列,信号量,事件,异步信号)),DeltaCORE的体系结构:层次模块结构,分层次,模块化,用户模式,应用,应用,应用,网络管理器,图形管理器,设备管理器,文件系统管理器,网络驱动,图形驱动,设备驱动,文件系统驱动,硬件,内核模式 内核(微内核),QNX4.25的体系结构:客户/服务器结构,Windows CE.NET 操作系统模型,什么是Windows CE.NET适于嵌入式产品的、小映像尺寸的、32位实时,多任务,抢占式嵌入式操作系统。Win32 API子集高度组件化和可配
23、置对标准硬件和特定硬件都可定制,设计目标:适应小型系统支持多种处理器和计算机结构,并支持多种设备接口遵循Windows平台的应用开发规范操作系统各部分模块化,可选择定制提供网络通信、图形用户界面、数据库、文件系统等支持支持高要求的实时应用提供高级电源管理,特点:灵活的电源管理功能,包括睡眠/唤醒模式使用了对象存储技术,包括文件系统、注册表及数据库良好的通信能力256个中断优先级别,支持嵌套更好的线程响应能力出色的图形界面多任务处理能力内置的多媒体处理功能,系统模型分层模型组件模型迁移模型应用迁移模型系统迁移模型,分层模型,从接口的角度讲,Windows CE.NET具备面向应用开发和面向系统两
24、个界面。有一个层次实现硬件特点与操作系统本身特性的隔离,以便于实现系统的移植。底层是具体的硬件设备,顶层是具体的应用程序。,组件模型,OEM层模块:OAL模块包括和硬件相关的功能引导程序负责将操作系统核心调入内存配置文件根据不同硬件系统的特点,进行相关文件的配置驱动程序使操作系统能驱动不同的硬件,既而实现了操作系统与具体硬件的分离,操作系统层模块CoreDLL对外部调用系统功能进行代理,实现系统API的管理和按名调用实现字符串处理、随机数生成、时间计算等基本支持函数核心Windows CE.NET操作系统的核心在系统运行时体现为nk.exe,一个占用空间很小的核心文件,设备管理模块Window
25、s CE.NET操作系统对设备进行管理的核心模块,运行时表现为device.exe。提供基本的设备列表管理、即插即用管理、I/O资源管理以及设备驱动程序工作的基本机制图形窗口和事件系统模块Windows CE.NET与微软通用桌面操作系统区别较大的一个模块,运行时表现为gwes.exe。实现基本的绘图引擎、窗口管理、界面的事件机制,通信和网络服务模块在Windows CE.NET操作系统中是相对最为独立的一个模块完成Windows CE.NET操作系统与外界网络的通信功能,为操作系统上层提供网络服务对象存储模块对象存储是指Windows CE.NET的存储内存空间。包括三种类型的数据:Wind
26、ows CE.NET文件系统,包括数据文件和程序、系统注册表、Windows CE.NET数据库,应用和服务开发模块包括WIN32系统服务模块Windows CE.NET对应用程序的接口在应用开发和服务开发时,系统利用这一模块完成开发者的系统调用。,系统模型,应用迁移模型,系统迁移模型,3.3 常用嵌入式操作系统,嵌入式实时操作系统嵌入式软实时操作系统,嵌入式实时操作系统,VxWorks pSOS C/OS,VxWorks,1VxWorks概述 美国Wind River公司于1983年设计开发 高实时性和稳定性的微内核、友好的用户开发环境、良好的持续发展能力,全球商用市场占有量排名第一 广泛应
27、用于通信、军事、航空、航天等高精尖技术及实时性要求高的工业控制领域 美国F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上 1997年和2004年两次在火星表面登陆的火星探测器 商业用户包括Cisco systems、Bay Networks、3Com、Fore systems、HP、Lucent、Qualcomm、以及国内的华为、东方电子等,2VxWorks基本特征(1)高实时性、高稳定性的微内核 内核Wind:微内核结构,最小8KB 实时性基于优先级的抢占式调度辅以时间片轮转 及时响应高优先级的任务,同级任务可选择时间片轮转而并发执行快速的任务上下文切换,较小的中断延时 相应措施
28、如采用中断处理与任务在不同栈中处理,使得中断的产生只会引发一些关键寄存器的存储而不会导致任务的上下文切换在中断服务程序只完成在最小时间内中断发生通告,而将其它费时的处理过程尽量放在被引发的其它任务中完成(类比:参加展会)高稳定性,(2)丰富的外挂组件模块 基本外挂组件模块各种设备驱动(字符型/块型设备,同步/异步设备)、文件系统(如DosFs、RawFs、TapeFs、CdromFs、TSFS等)、网络协议栈、以及POSIX1003.1b标准和ANSI C等兼容组件模块 附加组件模块如Flash文件系统、图形界面管理等,(3)可裁减性 粒度极小的配置裁减性能微内核结构,最简内核(只负责任务的管
29、理与调度,称为纳核)只有8KB 其它所有基本外挂组件和附加组件均为可选组件,并且这些组件本身也是可裁减的 方便友好的配置裁减环境图形化自动裁减特性,自动分析功能,(4)对多种硬件平台的可移植性 支持ARM、PowerPC、68K、CPU32、SPARC、i960、X86、MIPS等众多嵌入式处理器,并提供相应的BSP模板 提供了数量众多的串口、并口、网口、存储卡控制器、实时时钟等外围硬件设备的驱动程序,(5)友好、开放的集成开发环境 Tornado的可视化图形操作界面,可运行在多种主机硬件平台和操作系统上支持的主机硬件平台:Sun、HP、IBM-rs6000、Mips等支持的主机操作系统:Un
30、ix、WindowsNT/95/98等 Tornado的IDE集成了编辑器、编译器、链接器、调试器(命令行和图形界面两类调试器)、软件仿真器、工程项目管理器等系列开发工具 Tornado的开放性能与第三方开发工具进行集成,(6)持续的新技术跟踪和版本升级维护能力 表现最早实现捆绑集成交叉开发环境 最早在其内核中加入TCP/IP网络协议 又率先宣布支持网络文件系统NFS 在集成最新网络协议方面也一直保持良好的势头,原因收购在相关领域有优势的公司收购开发pSOSystem嵌入式实时操作系统的ISI,VxWorks在其5.5版本中加入了与pSOSystem类似的任务间的事件(Event)通讯机制,并
31、进行了进一步改进,从而弥补了VxWorks5.5版本以前任务间无事件通讯机制的缺陷 通过收购Rapid Logic公司的RapidControl,VxWorks迅速推出了Embeded Web Server组件,(7)价格较高 较高的开发购买价格 在运行使用方面,VxWorks采用的是出售Licence的销售策略,3VxWorks其它特色 相对pSOSystem等较优秀的嵌入式实时操作系统,VxWorks还具有4项显著优点,(1)优秀的项目管理能力 开发环境Tornado引入的项目(Projects)的概念,使源代码和整个目标映象生成的组织管理工作条理化、方便化 配套相应的项目管理工具可自动生
32、成编译使用的Makefile文件(2)支持应用程序动态链接和动态下载 使开发者在调试阶段省去了每次调试都需将应用程序和操作系统进行链接和下载的步骤,缩短了编辑/调试的周期,(3)提供目标机仿真器 VxSim使开发者可独立于硬件环境而先行开发应用程序,实现并行开发模式,有效缩短研发时间和硬件方面的开销(4)支持系统级和任务级两种调试方式 方便了多任务程序的调试,如跟踪任务间的通讯状况、任务间的同步与互斥关系,pSOS,ISI公司(Integrated System Inc.)1980年研制 集成了一整套嵌入式软件模块、工具和服务 几年前销售额占世界第一,在中国市场占有率曾经也是最高的主要应用领域
33、包括通讯、航天、信息家电以及工业控制,例如华为早期的路由器、烟台东方电子的RTU、株洲电力机车研究所的DTECS控制器等 现被WindRiver收购,C/OS,1C/OS概述 C/OS是micro Control OS的缩写,即微控制器操作系统 由美国人Jean Labrosse 1992年完成,1998年C/OS推出C/OS-II版本,目前版本是C/OS-II V2.61 源码公开、免费(WWW.C/OS-II.COM),2C/OS的特点(1)内核方面 任务的调度与管理方面 C/OS-II管理64个任务,其中保留8个给系统,应用程序最多可以有56个任务 多任务的调度采用基于优先级的抢占式调度
34、算法,且全部系统函数调用与服务的执行时间具有可确定性,因此C/OS具有优良的实时性能,不支持时间片轮转调度 现实世界有些任务无法区分出优先级高低,需要交替执行。例:用单片机控制两小块显示屏时,任务间的的通讯机制方面 提供经典操作系统任务间通信方法,包括信号量、邮箱、事件标志和消息队列 时钟管理方面 提供系统时钟中断 没有提供用户使用的定时器 内核具有较高的稳定性和可靠性,(2)功能模块方面 C/OS本质是一个实时多任务内核 目前已扩充了一些简单的文件系统(FS)、TCP/IP协议栈、图形用户接口(GUI)等功能模块软件包,(3)可裁减性 C/OS内核结构小巧 具有可裁减性,(4)对不同硬件平台
35、的可移植性 移植到不太常用的嵌入式微处理器上时,必自己编写BSP程序没有提供功能强大的驱动软件包,通常需要自行编写,(5)提供的集成开发环境 无(6)服务与价格方面 技术服务方面C/OS不如商用嵌入式实时操作系统那样得到专门人员的持续更新研究和升级服务另一方面,由于其源码公开,用户可以根据自己的需要对它进行修改 价格方面:仅内核免费,3C/OS小结 优点 实时性能优良、执行效率高、占用空间小 内核免费 对小型企业具有较大的吸引力,一般适用于中小型嵌入式应用和对实时性能要求较高的低端嵌入式控制系统产品中(如由51系列的8位单片机系统构成的控制系统产品)内核源码开放,可作为科学研究的典范,缺点 任
36、务调度仅支持优先级的抢占式,不支持时间片,造成多任务划分不方便 未提供用户使用的定时器和集成开发环境 移植到不同硬件平台时,用户工作量大 技术服务不如商用嵌入式实时操作系统那样能得到专门人员的持续更新研究和升级,嵌入式软实时操作系统,PalmOS Windows CE EPOC Embedded Linux,Palm OS,1Palm OS概述 由Palm Computing公司出品 PDA市场占有量较大,发展历史 1992年,Palm Computing 公司成立,最初只是想把自己开发的手写识别软件Graffiti(一种PDA速记输入法)卖给Apple1993年Apple发布了第一款Newt
37、on 掌上电脑,使用自己开发的操作系统,也是世界上第一款没有键盘而使用触控笔来操作的掌上电脑,这种全新的硬件形式也确定了今后掌上电脑的发展方向,成为现代掌上电脑的鼻祖Newton 最终以失败而告终,但它不愧为一款具有划时代意义的产品,带来了“PDA”和“手持”这两个计算机术语 随之而来的PalmOS获得了空前成功,其代表性掌上电脑产品有PalmPilot和Palm IIIx等,2Palm OS的特点(1)内核方面 属于32位嵌入式操作系统 内核较小,应用程序通常也只有几十KB 基于PalmOS的PDA配置较低,内存2MB12MB即可 内核采用抢占式多任务管理方式,但不向开发者提供与多任务有关的
38、APIs,(2)功能模块方面 支持PalmOS的应用程序十分丰富约5000套,包括个人信息管理、办公软件、数据库支持、电子邮件等 操作界面采用触控式 支持PalmOS的产品的系统耗电量极小以Palm x为例,两节7号碱性电池一般可使用两个月,无录音、MP3播放功能等多媒体功能,仅支持256色以下彩色图形显示 仍然要使用中文外挂平台,有相当部分依然是以英文界面为主,(3)可裁减性 采用微内核结构,各功能模块具有可裁减性(4)可移植性 支持的嵌入式处理器 Motorola的DragonBall(PalmOS5.0前版本)ARM(PalmOS5.0版本)PalmOS阵营里使用四种不同的内存扩展技术
39、Palm、Handspring、TRGpro、Sony四家公司 无法相互使用扩充资源Palm的劣势,(5)提供的集成开发工具 有多种集成开发工具可供选择,例如PalmOS SDK、CodeWarrior、Visual Form Design等 PalmOS SDK 由PalmOS开发商提供 提供PalmOS Emulator,能够模拟多种型号的Palm掌上设备,可用于程序的测试和除错,CodeWarrior 是Windows或Mac OS平台上最流行的集成开发环境 集成了C/C+编译器、源代码和汇编级调试器、可视化模板拖放式用户开发界面,可快速设计用户界面,简单易学 Palm公司定期推出配合C
40、odeWarrior使用的开发工具,(6)服务与价格 免费提供PalmOS的开发工具PalmOS SDK PalmOS较同档次的其它PDA操作系统略低,3Palm OS小结 优点 占用存储空间小、执行速度快、功耗较低 简单、实用、高效 目前在PDA应用领域拥有较大的市场份额,不足 用户应用程序不支持多任务编程 多媒体功能弱 支持的处理器硬件平台种类少 集成扩展性能差等,Windows CE,1Windows CE概述 Windows操作系统家族的新成员 应用领域为多媒体信息设备代表产品如康柏iPAQPocketPCH3630、联想天玑3000、惠普Jornada545掌上电脑等 版本Windo
41、ws CE3.0、Windows CE-NET、Pocket PC2002、SmartPhone2002等,WindowsCE不是WindowsNT或Windows9x的一部份或缩减版本 是为有限资源、微处理器可移植性的硬件平台设计的多线程嵌入式操作系统 具备独立开发的内核和独一无二的设备驱动程序模型 当然,WindowsCE仍然享有WindowsNT和Windows9x的部分关键功能特 如承袭Windows的一贯风格,提供强大的图形用户界面和多媒体功能,2Windows CE的特点(1)内核方面 属于32位、多线程的嵌入式操作系统 内核提供多线程调度管理、同步原语、中断处理、定时器、内存管理
42、等服务 基于优先级的多线程抢占调度管理方式但实时性能仍欠佳,属于软实时操作系统 内核本身较大,对嵌入式处理器要求高,需要使用的内存容量大,(2)功能模块 主要功能模块包括:对象存储模块、图形窗口事件子系统(GWES)模块和通信模块 对象存储模块:用于永久存储,包括文件系统、注册表和数据库 GWES(Graphics Windowing and Events Subsystem)模块:相当于桌面Windows的图形设备接口GDI和用户库 通信模块:负责与桌面PC、其它CE设备和因特网的互联,具有录音、音视频播放等多媒体功能 集成的应用程序 Word、Excel 和Outlook 等针对手持设备的
43、Pocket OFFICE 软件 专门用于手持设备的浏览器Pocket IE。能耗方面明显逊于Palm0S Windwos CE支持彩色显示 Windows CE本身对于资源的巨大吞噬作用,(3)可裁剪性 模块化结构 每个模块又分成许多小组件具有可裁减性,(4)对不同硬件平台的可移植性 已支持一定数量的嵌入式微处理器体系结构,但仍不够广泛 目前支持X86、ARM、MIPS和SH等系列 还可通过OEM适配层OAL适配到任何硬件平台 OAL(OEM Abstraction Layer)是驻留在CE内核和硬件之间的代码层 原始设备制造商使用这些代码把CE适配到自己的硬件上,OAL链接CE的内核和定制
44、的硬件,(5)提供的集成开发工具 Windows CE Platform Builder 3.0,包括 Windows CE Add-on Pack(插件包)Embedded Visual Tools由面向嵌入式系统开发而进行优化的Embedded Visual Basic和Embedded Visual C+、编程工具、交叉编译器、汇编程序组成 还包括一个用于应用程序开发的扩展仿真环境 各种调试工具,(6)服务与价格 在技术服务方面,WindowsCE努力寻求第三方的支持鼓励第三方独立软件供货商(ISV,Independent Software Vendor)去开发和销售能在各种设计之间平衡
45、的软件ISV软件已日益增多,有开发工具、设备驱动程序、应用程序和组件 在价格方面,WindowsCE作为一套商业型嵌入式操作系统,不能免费提供,3Windows CE小结 优点 提供的功能模块组件丰富,尤其是在图形界面接口GUI和多媒体方面具有明显优势,适用于信息设备 提供与Windows平台相似的集成开发环境和API接口函数,使Windows C/C+开发人员能够迅速的转到嵌入式系统的开发上来,极大减少了开发者对新工具和新环境的学习掌握时间和费用,不足之处 内核仍较大,对硬件要求高,消耗资源多,耗电量大 支持的嵌入式微处理器种类和提供的设备驱动程序不够丰富 微软自身投入的Windwos CE
46、售后技术支持服务力量较弱,EPOC,1EPOC概述 EPOC是一个稳定的无线操作系统使用 C+语言编写,采用完全面向对象的设计方法 分为三种类型:PearlQuartzCrystal分别对应普通手机、智能手机、Hand Hold PC场合的应用,因此可以满足从低端的无线电话应用到多功能无线个人通信器的需求 目前EPOC拥有超过70的智能手机市场占有率,EPOC 名称由来的两种解释 一种说法:EPOC是取“Electronic Piece of Cheese”第一个字母而来,即“使用电子产品时可以像吃奶酪一样简单”EPOC在系统设计时所坚持的理念 另一种说法:EPOC来自“Epoch”,即纪元、
47、时代的意思,体现了其公司的野心,EPOC的历史:EPOC、Pison和Symbian Pison最初创立了 Pison Software公司,它在20年前就开发出了EPOC的前身,用于该公司开发的个人组织器(Personal Organizer)上 1998年,Pison Software 将EPOC这个操作系统独立出来,并联合Nokia、Ericsson、Motorola以及Panasonic、Siemens、Samsung等大型移动通讯设备商出资组建了一家新公司 Symbian。该公司得到 Pison sofware 的授权,在 EPOC系统的基础上开发用于第三代无线智能型电话和终端的无线
48、操作系统,当前,EPOC32操作系统已从一个用于结构较简单的个人组织器的无线操作系统,发展成为现在完全具有多任务处理能力的32位操作系统。EPOC的设计目标与现在用于蜂窝电话的操作系统类似,其重点放在电源管理、对内存和执行速度的的设计等方面上,2EPOC 的模块化结构 EPOC 分为独立的四层:核心层 服务器层 系统层 应用层,(1)核心层与可移植性 EPOC 的核心层也称基层(Base Layer)核心层主要功能 多线程调度:高优先级的线程首先运行 内存的使用保护机制:被一个任务占用的内存不可以再被其它任务访问 节省能源:空线程请求CPU进入电源节省状态 提供 EPOC 易于移植到新硬件的功
49、能:提供硬件抽象层和各种设备的驱动程序,(2)服务器层 采用客户/服务器的框架结构,提供的服务器:窗口服务器 字库/位图服务器 过程服务器 套接服务器 声音服务器 数据库服务器 文件服务器 报警服务器等,(3)系统层 定义与用户接口相关的功能,如对话框、菜单、工具条、图标、列表控制和编辑控制等 定义了几类基本的显示和输入设备 640240像素 显示设备与之配套的键盘 240320像素 指示设备,310120 像素 的显示设备与指示设备 200200像素输入面板。前两类主要应用在个人通信器中,后二者主要用于智能电话。EPOC 要求各独立软件厂商(ISV)提供的软件必须兼容上述标准 为了保持系统的
50、灵活性,EPOC 系统层还提供了一个设备系列参考设计(DFRD)6,(4)应用层 主要定义能够在EPOC操作系统上使用的各种应用,如浏览器、字处理软件、画图等 还定义了 EPOC 使用的应用编程接口(API)使用了一个 Java 虚拟机(JVM),具有独特的“一次编程,到处运行”的特性 因此,使用无线 Java API 开发某种移动设备的EPOC应用并可以直接用在其它类型设备上,将会大大提高开发效率,3EPOC小结 EPOC在智能移动终端上拥有强大通信能力以及应用程序,包括:一个健全的核心 企业用标准通信传输协议 Sun java语言 与他人互相分享信息、浏览网页、传输、接收电子信件、传真以及