四种常用嵌入式RTOS的比较与选择.ppt
《四种常用嵌入式RTOS的比较与选择.ppt》由会员分享,可在线阅读,更多相关《四种常用嵌入式RTOS的比较与选择.ppt(48页珍藏版)》请在冰点文库上搜索。
四种常用嵌入式RTOS的比较与选择,华南理工大学自动化系,一:
综述,1.嵌入式系统与嵌入式操作系统2.嵌入式操作系统的特点3.实时操作系统(RTOS)4.四种常用的嵌入式RTOS,1.嵌入式系统与嵌入式操作系统简介,嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。
嵌入式操作系统EOS(EmbeddedOperatingSystem),负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
一:
综述,2.嵌入式操作系统的特点,可装卸性。
开放性、可伸缩性的体系结构。
强实时性。
EOS实时性一般较强,可用于各种设备控制当中。
统一的接口。
提供各种设备驱动接口。
操作方便、简单、提供友好的图形GUI。
提供强大的网络功能。
支持TCP/IP协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
强稳定性,弱交互性。
嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。
嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
固化代码。
在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。
更好的硬件适应性。
也就是良好的移植性。
一:
综述,3.实时操作系统(RTOS),RTOS与其他操作系统不同的一个特征是:
它们必须至少有一个中断,其服务能保证在一个给定的时间内完成,而不论是否发生其他事情。
一:
综述,4.四种常用的嵌入式RTOS,RT-LinuxQNXVxworksNucleus,二:
如何选择嵌入式实时操作系统?
1实时操作系统对我来说真的必要吗?
2工具的相互关系3RTOS的选择准则4内核要求的最小存储器大小5性能6软件组件和设备驱动程序7调试工具8标准兼容性9技术支持10源代码还是目标代码?
11许可12声誉,1.实时操作系统真的必要吗?
为什么需要实时操作系统?
对于商用多任务OS,其目的是方便用户管理计算机资源,追求系统资源最大利用率;而RTOS追求的是实时性、可确定性、可靠性。
二:
如何选择RTOS,微处理器、在线仿真器(ICE)、编译器、汇编器、连接器、调试器以及模拟器都这样或那样地影响着操作系统。
在线仿真器(ICE)和良好的集成开发环境对嵌入式开发有至关重要的作用。
2工具的相互关系,二:
如何选择RTOS,3RTOS的选择准则,评价与选择一个实时操作系统一般可以从任务调度、内存管理、任务通讯、内存开销、任务切换时间、最大中断禁止时间等几个方面来衡量。
(1)任务调度机制:
RTOS的实时性和多任务能力在很大程度上取决于它的任务调度机制。
(2)内存管理:
分实模式与保护模式。
(3)最小内存开销:
RTOS的设计过程中,最小内存开销是一个较重要的指标,它涉及到嵌入式的成本。
(4)最大中断禁止时间:
(5)任务切换时间:
4内核要求的最小存储器大小,实时操作系统可以装入小得令人惊讶的内存中。
最小的内核经常是仅仅支持很少的特性,而典型的配置可能产生大得多的内核。
一般情况下,供应商可以提供一份详细的列表,说明了创建包含不同服务的内核分别需要多大的RAM和ROM。
二:
如何选择RTOS,5性能,对所有的项目来说,性能无不是个大问题。
但是要了解RTOS对系统的影响却不那么容易。
当比较供应商提供的benchmark时要明白他们是要测试什么?
供应商使用的是什么评估板?
微处理器的时钟频率是多少?
使用的什么存储系统?
存储器访问使用了几个等待周期?
只有弄清楚了这些才能作出公平的对比。
6软件组件和设备驱动程序,嵌入式系统应该通过各种标准加大开发需求的互操作性,开发者可能要依赖于他人开发的组件。
若应用需要通信协议、服务、库或者其他组件(如TCP/IP、HTTP、ftp、telnet、SNMP、CORBA和图形),从哪里获得它们得事先弄清楚。
不同操作系统供应商提供这些特性或驱动程序的方式可能不同,有的作为操作系统的一部分,有的作为可选配件。
二:
如何选择RTOS,7调试工具,一个良好的集成开发环境和调试工具有助于开发者提高开发速度、发现开发中的错误(如死锁、忘了放信号灯)等。
8标准兼容性,标准兼容性好的RTOS利于别的开发软件的移植。
RTOS服务有一个POSIX标准。
10技术支持,技术支持包含哪些内容:
培训、文档、电话和电子支持等?
这对RTOS上开发很重要,良好的技术支持可以使开发者少走很多弯路。
二:
如何选择RTOS,11源代码还是目标代码?
有些供应商提供给全部源代码。
而其他的仅提供目标代码。
这两种方式都能开发出优秀的产品。
对那些没有源代码的来说,也不必担心无法配置内核。
供应商会在头文件中给出必要的常量使开发者可以根据需要微调内核。
12许可,购买某些高级的RTOS属于重大的商业事务,有许多费用要考虑。
有的供应商一次性地收取一大笔费用,而有的供应商的收费遍及每用户、每平台、每产品、每位置。
这需要了解清楚。
二:
如何选择RTOS,13声誉,还有一点是要了解该RTOS供应商的声誉。
如:
技术支持如何?
稳定的商务活动开始多久了?
公司有多少职员?
供应商的网站上有有价值的信息吗?
这种RTOS在哪个行业表现最好?
公司的质量系统状况如何?
公司通过了ISO9001认证吗?
三:
四种嵌入式RTOS各自的特点,弄清了以上的一些问题之后,初步得到了一个选择的依据。
下面,在这个依据的基础上,把Linux,QNX,Vxworks和Nucleus这四种嵌入式RTOS各自的特点和各种性能指标作一个罗列,从而达到对它们有个大致的了解。
提纲:
(一)开发环境及其工具
(二)RTOS的性能指标(三)内核(四)软件组件和设备驱动程序(五)硬件支持(六)标准兼容性(七)技术支持(八)源代码还是目标代码(九)价格,许可,声誉综合评价。
Linux,
(一)开发环境及其工具Linux有着非常优秀的完整开发工具链,有十几种集成开发环境,其中很多是免费的,大大降低了开发费用。
右图是一个典型的嵌入式Linux开发环境,它包括主机(工作站或者PC)支持GDB的调试工具,目标板和网络。
Linux的特点,除了硬件环境外,还需要软件开发环境。
基于Linux的开发环境主要包括主机上的Linux操作系统,比如RedHatLinux。
上图是嵌入式Linux开发流程图。
一般的开发过程是,设计目标板,建立嵌入式Linux开发环境,编写、调试BootLoader;编写、调试Linux内核;编写、调试应用程序;编写、调试BSPBoardSupportPackage)。
BootLoader用于初始化目标板,检测目标板和引导Linux内核。
BDM/JTAG用于目标板开发,它可以检测目标板硬件,初始化目标板,调试BootLoader和BSP。
(二)RTOS的性能指标,1.Linux本身不是实时的操作系统。
RT-Linux在Linux的基础上打包实现Linux的实时性。
2.RT-Linux实现了一个小的实时核心,仅支持底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(ISR)和Linux进程。
原来的非实时Linux核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。
它不同于微内核和大型内核,属于实时体系结构。
其可靠性和可维护性对电信服务系统来说都不够理想,但应用于相对小的嵌入式系统性能还行。
3.调度策略RT-Linux在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。
Linux的特点,(三)内核,+-+-+|应用程序层(ApplicationLayout)|级别=3|+-+-+|服务器层(Deamon/ServerLayout)|=2|+-+-+|设备驱动层(DriversManager)|=1|+-+-+|进程管理层(ProcessManager)|=0|+-+-+|硬件(裸机)|+-+-+,Linux的特点,Linux采用的是带保护的平行内核体系(见上图)。
其优点是:
(1)采用平行内核,因为各层次间以及同层次间的实现比较独立,这种体系的稳定性就要好的多,如果一个子系统崩溃,系统一般不会全部瘫痪;
(2)可以更容易地添加新服务模块,Linux甚至无须重新启动。
缺点是:
(1)当高层模块(如加减设备,服务器时)更新时,往往更新了特权任务表的内容,所以内核需要重新编译.
(2)这种体系的底层代码和硬件直接关联,且功能越强,这种关联越紧,再加上核心比微内核体系要大得多,所以移植也要费事。
(四)软件组件和设备驱动程序,Linux具有完善的网络通讯、图形、文件管理机制。
网络是Linux的强项,Linux还支持多种文件和图形系统。
同时,Linux上的驱动已经非常丰富了,它们支持各种主流硬件设备和最新硬件技术。
Linux的系统服务:
近来,很多基于Linux的实时应用被开发出来,它具有成熟和丰富的资源。
UNIX用户的开发工具和应用软件都可移植到Linux上。
TCP/IP网络协议。
各种Internet客户/服务端软件。
XWindow。
C/C、Java等语言编译器。
Linux的特点,(五)硬件支持:
支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等目前,Linux已经被移植到数十种硬件平台上,几乎支持所有流行的CPU。
Linux的特点,(六)标准兼容性:
Linux可作为一个嵌入式操作系统,它支持POSIX.1b标准。
(七)技术支持,Linux具有开放性:
(1)用户可得到UNIX的全部开发工具。
(2)可使用市场上便宜又常见的硬件。
Linux的特点,(八)源代码还是目标代码,Linux是源代码完全公开的。
Linux的内核映像bzImage.bin大小为569,764大小。
加上其他应用程序,其大小可在2M左右。
(九)价格,许可,声誉:
Linux的最大优势便是经济,免费,源代码公开,是最吸引人的。
毫无疑问,这会节省大量的开发费用。
同时,它也可以随意地配置不需要任何的许可证或商家的合作关系。
市场上的带有Linux的2410评估板已经大量出现,据目前情况所了解,合肥市的华恒科技公司的评估板需:
2,500元,内带Linux操作系统,评估板中有USB接口,以太网接口,串口和3.5寸64K色彩屏,提供底板的原理图。
同康科技公司的评估板需:
9,600元,配置和华恒公司的类似,带有Linux操作系统,并提供全部电路原理图。
Linux的特点,综合评价:
正如上所述,Linux最大的优势经济,免费,源代码公开,可以节省大量的开发费用,并且,它本身内置网络支持,高度的模块化使添加部件非常容易。
Linux在中国蓬勃发展起来,基于Linux的嵌入式评估板具有价格低、可选性强、技术支持多样化等优点。
同时Linux的评估板集中了各种各样的资源,如网口、液晶屏、触摸屏,USB口的驱动等。
选择2410的嵌入式Linux软件开发平台和OEM板。
可以帮助我们在应用项目立项前,评估项目的可行性。
在应用项目立项后,使软件开发和硬件开发同步进行。
极大地缩短应用产品开发周期。
缺点:
开发工具和开发环境不尽人意,如单步仿真,这增加开发的难度。
Linux的特点,QNX,
(一)开发环境及其工具QNXMomentics开发系统在集成环境下提供无缝连接的工具链和各种板级支持包、库函数、源码开发工具。
QNXMomentics开发系统很容易学。
最重要的是,QNXMomentics开发系统提供各种各样的选择:
构建各种目标(如x86,MIPS,PowerPC,ARM,StrongARM,Xscale)、选择语言(如C,C+或JAVA)、开发系统宿主(windows或Neutrino自宿主)。
(二)RTOS的性能指标,调度策略:
QNX提供POSIX.1b标准进程调度:
32个进程优先级;抢占式的、基于优先级的正文切换;可选调度策略:
FIFO、轮转策略、适应性策略。
(三)内核,QNX的瘦微内核体系+-+-+|应用程序层(UtilitiesProcess)|+-+-+|系统进程层(SystemProcess)|+-+-+|核心层(OSKernel)|+-+-+|硬件(裸机)|+-+-+,QNX的特点,QNX是一个微内核实时操作系统,其核心仅提供4种服务:
进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。
所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。
优点是:
(1)有微内核体系的一切优点,另外,将来移植到SMP体系时,只要把核心层重写就是了.
(2)移植到其他硬件体系甚至非PC设备,比较容易,开发难易度应该是最低的.缺点是:
(1)系统的稳定性不是很高.
(2)因为应用程序调用的是系统进程的过程,再由核心进行处理(如需要IPC等),所以效率不会很高.,(四)软件组件和设备驱动程序,多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如WindowsNT/95、LANManager等)的透明访问的SMB文件系统、DOS文件系统、CDROM文件系统等。
设备管理。
在进程和终端设备间提供大吞吐量、低开销接口服务。
图形窗口支持。
包括QNXWindows、XWindowSystemforQNX、对MSWindowsNT/95和XWindow系统的远程图形连接。
TCP/IPforQNX。
高性能、容错型QNX网络FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。
透明的分布式处理。
FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络IPC统一起来,使得网络对IPC而言是透明的。
QNX的特点,(五)硬件支持:
声卡、字符I/O、嵌入式板级支持包、文件系统、输入设备、网络、PC_Card、处理器与平台、打印、显卡、USB,QNX的特点,(六)标准兼容性,QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。
它遵循POSIX.1(程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。
它最早开发于1980年,到现在已相当成熟。
(七)技术支持,中国地区总代理:
北京领先实时科技有限责任公司。
2002年8月底以前,北京领先实时科技有限责任公司原则上不能在南方进行QNX业务。
因此,QNX在南方用户较少。
目前QNX在中国的用户相对较少,根据北京领先实时科技有限责任公司的网页所列举出的名称共有25家。
主要为北方用户,南方有三家,深圳两家用户:
深圳视听达电子公司、深圳穗彩和香港一家用户:
香港城市大学。
技术方面的支持主要是:
去北京领先实时科技有限责任公司培训,之后主要用电话和Email进行联系。
目前,技术支持人员仅有两名。
在北京领先实时科技有限责任公司的网站的QNX论谈上其注册的用户仅100来人。
QNX的特点,(八)源代码还是目标代码:
不提供操作系统的源代源。
QNX的特点,(九)价格,许可,声誉价格:
标准版:
50,000元专业版:
100,000,须支付License。
专业版提供集成开发环境,分析器等。
分析器为:
内存分析器、进程分析器、实时分析器等。
没有2410的专业评估板,需要自己把QNX移植到的自己的目标系统中。
另外,目前,其还不直接支持2410这款CPU。
通过电话了解,若将QNX移植到2410评估板上,其公司技术人员估计为:
几个星期。
综合评价,优点:
QNX是一个符合传统“分布式”概念的操作系统,网络功能强大。
QNX采用瘦微内核体系,小巧灵活、速度快。
移植到其他硬件体系甚至非PC设备,比较容易,开发难易度应该是最低的。
缺点:
QNX在中国,特别是中国的南方的推广还不尽人意,技术支持人员较少。
QNX没有2410的评估板,若将QNX的移植到2410的开发板中,需一定的时间和投入。
除了QNX代理提供的一些资料外,其它有关QNX的技术资料也相对较少。
QNX的特点,VXworks,
(一)开发环境及其工具开发平台:
WindowsNT,HP-UX,Win95等。
1、VxWORKS板支持包(BSP):
VxWorksBSP包含了开发人员要在特定的目标机上运行VxWorks所需要的一切支持。
2、BSP开发包(BSPDevelopersKit):
BSP开发包帮助开发人员把VxWorks移植到客户化硬件平台上。
3、VxVMI:
VxVMI是VxWorks的虚拟内存接口。
在调试阶段和软件运行时都能提供强大的内存管理功能。
4、VxMP:
VxMP是VxWorks多处理器支持扩展包,它允许将任务分布在多个CPU上执行以提高效率。
5、Tornado移植包:
允许把基于VMEexec,pSOS,及其他嵌入式操作系统的应用程序移植到VxWorks上。
它的主要部件为:
WindConfig、Loader、CrossWind、Browser、WindSh、WindView、VxSim、StethoScope。
(二)RTOS的性能指标,Vxworks具有高效的任务管理:
多任务,具有256优先级优先抢占和轮转调度快速,确定的上下文转换微秒中断处理。
灵活的任务间通信:
具有优先级继承的二进制、计数器、互斥的信号量(三种信号灯)消息队列套接字共享内存信号异常处理,Vxworks的特点,(三)内核,+-+-+|应用程序层(ApplicationLayout)|级别=3|+-+-+|保护子系统(ProtectedSubsystem)|=2|+-+-+|设备驱动层(DriversManager)|=1|+-+-+|微内核(Microkernel)|=0|硬件抽象层(HAL)|+-+-+|硬件(裸机)|+-+-+,Vxworks的特点,VxWorks内核:
可裁剪的微内核结构(最小结构8KB)。
VxWorks是带有一个相当小的真正微内核的层次结构。
内核仅提供多任务环境、进程间通信和同步功能。
这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。
通常内核操作对于用户是不可见的。
优点是:
1)采用微内核是该体系的最大特点,当高层模块更新时,内核无须重新编译.2)有一个硬件抽象层,使该OS可以很容易的移植到其它硬件体系,当然,如果连一个POSIX子系统都不肯很好的支持,更别想靠他来实现这个目标了.缺点是:
因为内核是微型核心,所以不可避免的许多工作都要在更高的层次完成,且互相往往是彼此调用的,所以这种体系的稳定性就要差一些,如果一个子系统崩溃,系统将会有瘫痪的危险!
(四)软件组件和设备驱动程序,1.支持多种物理介质及标准的、完整的TCP/IP网络协议2.灵活的引导方式。
支持从ROM、flash、本地盘(软盘或硬盘)或网络引导3.快速、灵活的I/O系统4.支持MS-DOS和RT-11文件系统5.完全符合ANSIC标准6.多于1100种功能例程,Vxworks的特点,(五)硬件支持,支持多处理器并行处理。
支持的处理器有:
x86,68k,PPC,CPU32,i960,SPARC,SPARCLite,SH,ColdFire,R3000,R4000,C16X,ARM,MIPS,(六)标准兼容性,POSIX1003.1b兼容。
VxWorks支持POSIX1003.1b规范以及1003.1规范的基本系统调用。
Vxworks的特点,国内代理有北京奥索电脑有限公司,爱梅格计算机辅助工程有限公司,华力同创科技。
(七)技术支持,(八)源代码还是目标代码,Vxworks一般提供的是内核二进制代码。
Vxworks的特点,(九)价格,许可,声誉,费用:
VxWorks一般价格视所选择的开发包而定。
内核二进制代码约10,000$,再加Tornado大概两万美元。
但是对产品还要收取版费。
综合评价,优点:
VxWorks是可以根据用户需求进行组合的实时操作系统。
其开发环境和开发工具无疑是最强大的。
VxWorks的开放式结构和对工业标准的支持使开发着只需做最少的工作即可设计有效的适合于不同用户要求的实时操作系统。
缺点:
其高昂的价格让用户望而却步。
Vxwork不支持PEG图形库。
Vxworks的特点,Nucleus,
(一)开发环境及其工具NUCLEUS+能够结合Paradigm,SDS以及ATI自己的多任务调试器组成功能强大的集成开发环境,配合相应的编译器和动态联结库以及各类底层驱动软件,用户可以轻松地进行RTOS的开发和调试。
针对不同的CPU类型,NUCLEUS还提供编译器、动态连接库、多任务调试器等相应的工具来配置用户的开发环境。
(二)RTOS的性能指标,多线程调度策略:
固定优先级,轮转调度,时间片,私有权限,afterpriority,协同多任务.优先级倒转防止策略:
proprietary。
相关的技术信息可见下表:
Nucleus的特点,(四)软件组件和设备驱动程序,NUCLEUS+提供种类丰富的功能模块。
如用于通讯系统的局域和广域网络模块,支持图形应用的实时化Windows模块,支持Intnet网的WEB产品模块,工控机实时BIOS模块,图形化用户接口以及应用软件性能分析模块等。
用户可以根据自己的应用来选择不同的应用模块。
存在的主要问题是NucleusGrafix在字体支持、显示效果、响应速度等方面存在一些缺陷。
Nucleus的特点,(三)内核:
见Vxworks,NucleusPLUS是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。
在典型的目标环境中,NucleusPLUS核心代码区一般不超过20K字节大小。
NucleusPLUS的组件包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器及I/O驱动等。
(五)硬件支持,NUCLEUS+的RTOS内核可支持如下类型的CPU:
x86,ColdFire,TIDSP,ARM6/7,StrongARM,H8/300H,PowerPC等。
可以说NUCLEUS+是支持CPU类型最丰富的实时多任务操作系统。
Nucleus的特点,(六)标准兼容性,ATI将其实时内核程序、NucleusPlus,纳入ITRON接口标准,使其用户能自由地将其传统的应用程序转给任务数号的CPU,还有免费提供专利源代码的好处。
(七)技术支持,Nucleus由旋极科技公司独家代理,主要技术支持及培训在北京和上海。
产品升级:
有限免费,Nucleus的特点,(八)源代码还是目标代码,NUCLEUS提供注释严格的C源级代码给每一个用户。
用户能够深入地了解底层内核的运作方式,并可根据自己的特殊要求删减或改动系统软件,用户只需通过DLL动态连接库便可进行任务级调试,无需编写BSP。
这对软件的规范化管理及系统软件的测试都有极大的帮助。
另外,由于提供了RTOS的源级代码,用户不但可以进行RTOS的学习和研究,免去了Royalties,而且产品在量产时也不必支付License,可以省去大量的费用。
(九)价格,许可,声誉:
Nucleus在中国市场增长较快,98年销售一百套左右。
Nucleus的市场售价约为18万人民币左右。
目前Nucleus国内的用户主要分布在航天部,邮电部,总参,航空部,电力部门以及各通讯公司,大专院校等。
没有2410的专业评估板,需要自己把Nucleus移植到的自己的目标系统中。
目前,Nucleus还不直接支持2410这款CPU。
旋极公司ARM9的评估板上的CPU是HP公司的。
三星CPU方面只有ARM7的评估板。
Nucleus的特点,综合评价,N