主页 文档 下载 莱特 沙龙 English

RTESM文档
RTEMS精彩应用
RTEMS版权说明
其他RTOS
ARM/DSP专区
AVR/FPGA/PCB
嵌入式文件系统
ARM AVR仿真器DIY
莱特电子工作室
联系我们
 


为何选择RTEMS

作者 Ray

RTEMS版权所有,转载请注明:来源 http://www.rtems.net,作者 Ray

摘要

   为什么RTEMS非常适合嵌入式开发

在概论里面已经介绍过RTEMS的性能,为了连载的完整性,这里再介绍一下实时系统的特性以及为什么选择RTEMS。

在在国内,提到嵌入式系统,人们更多的想到的是Linux和ucOSII,一个是GPL的,一个是简单、开源的。但是另一方面,Linux很多设计理念更适合PC,所以资源占用较多,最后可能导致产品成本过高或者质量不可控。而uCOSII虽然开源,但是如果用于商业用途,则是要每个产品征收相应的费用(和Vxworks类似,但是要便宜不少)。不少人直接把uCOSII放在自己的产品中。而没有申请商业版的Licence,这实际是非法的。(当然,现在盗版光盘也非法,但是也有不少人买卖)

对于RTEMS,很多人都很陌生,其实真是藏在闺中无人识。我不知道上天的神州五号有没有使用RTEMS,但是不少军工项目是基于RTEMS的。国内也有一些单位和个人把RTEMS改装一下,然后号称自主知识产权,骗取xxxx基金。

那么,究竟RTEMS有什么独特之处,使他成为嵌入式系统里面的常青树呢,下面我将逐步介绍。

RTEMS诞生于20世纪80年代,最早用于美国国防部的导弹控制系统,他在诞生时就瞄准了高实时性和高可用性的标准,并且采用了面向对象技术、构件技术等到现在也非常先进的理念构造而成,不但有非常好的实时性和稳定性,也具有非常好的客复用性。当时RTEMS的全称是"实时导弹控制执行体"。现在RTEMS的全称是 "多处理器实时操作系统",是一个纯粹的32位系统(由于充分利用了32位的特性,所以无法像uCOSII那样用于低端的8位系统)。经过了20多年的持续开发,RTEMS拥有非常广泛的客户,也具有丰富的开发资源。尤其在实时性、稳定性、开发速度和多处理器支持上面都是非常优秀的。

实时系统是一种很特殊的系统,他在任务的调度上比普通操作系统如Linux和windows有更为严格的要求。实时系统最为关键的特性是他的实时性,所谓实时性指的是能够在规定的时间内处理外部的信息。有时候需要处理的信息可能是突发的大量信息,既可能是一串毫不相关的信息,也可能是一些相互关联具有同步关系的信息,还可能是循环信息。

实时嵌入式系统里任务的实时性可以分为硬实时和软实时,区分的标准是看任务在规定时间里面没有完成的时候的返回值。对于硬实时任务, 必须在规定时间里面处理完对应的任务,否则可能会会导致系统异常(例如,拦截导弹的系统在规定的时间没能计算出导弹轨道,或者没能发射拦截弹头)。软实时则在任务没有结束的时候会有可供系统处理的返回值。所以硬实时系统多用于对可靠性要求非常高的场合,例如工业控制,军工等。著名的硬实时系统包括ThreadX,MontaVisa, LynxOS 等。软实时系统则有WinCE

实时系统的另外一个特性是管理协调大规模并发进程的能力。任务是并发的,但是处理器以及硬件资源有限,指令只能一条一条的执行。虽然在现在的操作系统理论中提出了很多多进程并发执行的方法,但是多个进程间的同步和异步处理仍然让大多数设计者头疼,如果有了RTOS,设计者的工作就简单了很多。在RTEMS中一个执行程序可以包含了若干的进程,每个进程都是可控的。每个进程在逻辑上都是同步执行。系统组件提供了为多个进程管理协调硬件资源的能力。同时,进程管理组件也能接受硬件中断以及驱动程序中断。经过RTEMS的扩展,实时系统的设计变得简单。

如果有多个处理器,或者一个处理器中有多个内核(比如ARM+DSP),设计就变得更为麻烦。多个处理器间的通信以及多个处理器间的资源共享需要RTOS进行调度,在这一点上面,RTEMS做得比较好。RTEMS的多处理器扩展能协调分布在不同处理器上面的任务。通过扩展,系统的实时性更强,更加有效,也更为可靠。

RTEMS提供了多种API的接口,除了RTEMS本身的API以外,还提供了POSIX接口(Linux以及VxWorks的程序能方便移植),pSOS的API以及ITRON(小日本的咚咚)的API。这些API能让软件设计者摆脱对多任务和多处理器控制的底层细节。此外RTEMS还提供内存管理、消息管理、互斥变量管理、GDB调试等一系列的API。这些API使用户能专心开发应用程序,大大提高了效率。

此外,RTEMS另一个独特之处在于他是面向对象的,RTEMS的是第一个面向对象的实时嵌入式系统。在RTEMS中,任务、中断、内存等等都是对象,RTEMS提供了大量的对象控制API,能动态管理这些对象。这些API能大大缩短程序的代码量和开发周期。

不过RTEMS还是存在不少需要完善的地方,首先,对于消费电子领域,RTEMS用的比较少,所以对消费电子常用的处理器如ARM的支持也比较少。

此外,RTEMS缺乏一个合适的给予图形界面的开发和配置环境,让不少初学者望而却步。

此外,出于保密的要求,不少RTEMS的应用工程师无法将其为RTEMS编写的BSP和应用公布,导致RTEMS可用资源远不及Linux。

 
嵌入式软硬件设计咨询 • 8位 16位 32位 64位 RISC DSP
主页文章 方案 产品 下载反馈
 
2004 RTEMS.NET 版权所有