1. 程式人生 > >UCOS_II與ecos之對比(轉)

UCOS_II與ecos之對比(轉)

個人覺得用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最大的特點是配置靈活,適合於用在一些商業級或工業級的嵌入式系統,如一些消費電子、汽車領域等等。總之,選用什麼樣的作業系統,要根據目標系統的硬體條件和使用者應用程式的複雜度來確定。