UCOS_II与ecos之对比

来源:互联网 发布:我的兄弟是逗比网络剧 编辑:程序博客网 时间:2024/05/14 11:41
个人觉得用ecos更有前景,无论是从实时性,还是驱动支持(有网络驱动),以及功能上(支持文件系统),都比uCOS2强,尤其是其灵活,高效的可配置性。当然uCOS_II的确非常适合于用来学习嵌入式实时操作系统的原理。uCOS提供的支持太少,仅仅包括内核一点
而且收费不便宜,光一个2.52的内核商用就要上W,不过用来学习操作系统原来倒是很不错的选择。

μC/OS-II
μC/OS-II的前射是μC/OS,最早出自于1992年美国嵌入式系统专家Jean J.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS的源码发布在该杂志的BBS上。当时就有500多人下载了这份源码。世界上数以千计的工程技术人员将μC/OS应用到了各个领域,如照相机业、发动机控制、网络接入设备、高速公路电话系统、ATM机和工业机器人等。许多大学用μC/OS作教材,用于实时系统教学。1998年,作者决定出版μC/OS的第二本书《μC/OS-II The Real Time Kernel》,并设立了正式的网站:www. ΜC/OS-II.com,给μC/OS-II增加了一些新的功能,并且增加了约200页的解释。
μC/OS和μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。许多移植的范例可以从网站上得到。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS嵌入到开发的产品中。
μC/OS具有执行效率高、占用空间小、实时性能优良和可扩展性能等特点,最小内核可编译至2KB。μC/OS-II已经移植到了几乎所有知名的CPU上。

eCos
eCos(embedded Configurable operating system),即嵌入式可配置操作系统,最初起源于美国的Cygnus Solutions公司。Cygnus公司于1998年11月发布了第一个eCos版本eCos1.1,当时只支持有限的几种处理器结构。1999年11 月,RedHat公司以6.74亿美元收购了Cygnus公司。在此后的几年里,eCos成为其嵌入式领域的关键产品,得到了迅速的发展。2002年, RedHat公司由于财务方面的原因,裁剪了eCos开发队伍,但并没有停止eCos的发展。RedHat公司随后宣称将继续支持eCos的发展,而由原 eCos主要开发人员组建了eCos Centric公司,并于2003年5月正式发布了eCos2.0。
虽然eCos是RedHat 的产品,但是eCos并不是Linux或Linux的派生,eCos弥补了Linux在嵌入式应用领域的不足。目前,一个最小配置的Linux内核大概有 500KB,需要占用1.5MB的内存空间,这还不包括应用程序和其它所需的服务;eCos可以提供实时嵌入式应用所需的基本运行基件,而只占用几十KB 或几百KB的内存空间。eCOS是一个源码开放的可配置、可移植、无版税、面向深嵌入式应用的实时操作系统。从eCOS的名称可以看出,它最大的特点在于它是一个配置灵活的系统。ECOS的核心部分是由不同的组件组成的,包括内核、C语言库和底层运行包等。每个组件以能提供大量的可配置选项,利用eCOS 提供的配置工具可以很方便地进行配置。通过不同的配置使得eCOS能够满足不同的嵌入式应用。
对于以上两种源泉码公开的实时操作系统,我们主要从以下几个方面进行比较。通过比较,能够为大家选择适合自己系统的RTOS提供参考。
4.1 内核调度机制
RTOS内核的核心是调度器。当系统包含多个任务或多个线程时,必须使用调度器来决定当前执行哪一个任务或线程。调度器对线程的运行进行控制,并为线程提供一种同步机制。表1列出了这两种RTOS调度器(调度机制)的比较。

表1 调度器比较
          调度方法                 同优先级调度         优先级数/个         任务数量/个
uC/OS-II固定,优先级,抢占式         无         64(8个保留)         56
eCos         位图                优先级抢占式         无         32         32
         多级队列                优先级抢占式         有         32         无限
         奖券                                     奖券法目前在测试中
μC/OS只支持固定优先级抢占式,不支持时间片轮转调度,调度方法简单、实时性好,用法也简单;eCOS调度方法丰富,适应性好。当然,目前的eCOS只允许在其目标系统中使用一个单独的调度器,未来的版本将可以允许多个调度器协同工作。
任务间同步、通信机制
RTOS的功能一般要通过若干任务和中断服务程序共同完成,任务与任务之间、任务与中断服务程序之间必须协调动作,互相配合,这就牵涉到任务间的同步与通信问题。表2为这两种操作系统同步与通信机制的比较。

表2 同步与通信机制的比较
                                      uC/OS-II                                                                  eCos
同步与通信机制         信号量、邮箱、消息队列         互斥、条件变量、计数型信号量、邮箱和事件标志
4.3 任务切换时间和中断延迟时间
任务切换时间和中断延迟时间是评估RTOS性能的两个重要指标。任务切换时间可以反映出RTOS执行任务的速度,而中断延迟时间可以反映出RTOS对外界变化的反应速度。表3为这两种操作系统任务切换时间和中断延迟时间的比较。

表3 任务切换时间和中断延迟时间的比较
          任务切换时间/us         中断延迟时间/μs         测试环境
μC/OS-II         29.7~34.2                                 78.8                              Intel80186(33MHz)
eCos         15.84                                 19.2                              MPC860A3(33MHz)
4.4 对硬件的支持
μC/OS-II和eCOS支持当前流行的大部分嵌入式CPU,都具有很好的可移植特性。μC/OS-II支持从8位到32位的CPU;而eCOS可以在16位、32位和64位等不同体系结构之间移植。μC/OS-II和eCOS由于本身内核就很小,经过裁剪后的代码最小可以分别为小于2KB和10KB,所需的最小数据RAM空间可以为4KB和10KB,因此它们对硬件的要求很低,具有极高的经济性。

通过比较可以看到:μC/OS-II相对eCOS来说,源代码最小很多,特别适合学习和研究。它最大的特点是小巧,适合应用在一些RAM和ROM有限的小型嵌入式系统中,如单片机系统。 ECOS最大的特点是配置灵活,适合于用在一些商业级或工业级的嵌入式系统,如一些消费电子、汽车领域等等。总之,选用什么样的操作系统,要根据目标系统的硬件条件和用户应用程序的复杂度来确定。