<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 嵌入式系統(tǒng)μC/OS-II與eCos的比較

          嵌入式系統(tǒng)μC/OS-II與eCos的比較

          ——
          作者:吳非 樊曉光 時間:2007-02-28 來源:中華視頻網(wǎng) 收藏

          摘要:敘述嵌入式系統(tǒng)和的概念,簡述嵌入式實時系統(tǒng)的發(fā)展階段。重點介紹μC/OS-II和eCos的發(fā)展歷史,并且對μC/OS-II與eCos進行比較,為大家在選擇時提供參考。

          關鍵詞:嵌入式系統(tǒng) μC/OS-II eCos

          1 背景

            隨著計算機技術的迅速發(fā)展和芯片制造工藝的不斷進步,嵌入式系統(tǒng)的應用日益廣泛:從民用的電視、手機等電路設備到軍用的飛機、坦克等武器系統(tǒng),到處都有嵌入式系統(tǒng)的身影。在嵌入式系統(tǒng)的應用開發(fā)中,采和嵌入式實時操作系統(tǒng)(簡稱RTOS)能夠支持多任務,使得程序開發(fā)更加容易,便于維護,同時能夠提高系統(tǒng)的穩(wěn)定性和可靠性。這已逐漸成為嵌入式系統(tǒng)開發(fā)的一個發(fā)展方向。

          2 概述

            嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應用的操作系統(tǒng)軟件。它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設備驅(qū)動接口、通信協(xié)議、圖形界面、標準化瀏覽器Browser等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點,如能夠有效管理越來越復雜的系統(tǒng)資源;能夠把硬件虛擬化,使得開發(fā)人員從繁忙的驅(qū)動程序移植和維護中解脫出來;能夠提供庫函數(shù)、標準設備驅(qū)動程序以及工具集等。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關依賴性、軟件固態(tài)化以及應用的專用性等方面具有較為突出的特點。

          嵌入式系統(tǒng)的出現(xiàn)至今已經(jīng)有30多年的歷史??v觀嵌入式技術的發(fā)展過程,大致經(jīng)歷了四個階段。

          (1)無操作系統(tǒng)的嵌入式算法階段

          這一階段的嵌入式系統(tǒng)是以單芯片為核心的系統(tǒng),具有與一些監(jiān)測、伺服、指示設備相配合的功能。一般沒有明顯的操作系統(tǒng)支持,而是通過匯編語言編程對系統(tǒng)進行直接控制。主要特點是系統(tǒng)結(jié)構(gòu)和功能都相對單一,針對性強,無操作系統(tǒng)支持,幾乎沒有用戶接口。

          (2)簡單監(jiān)控式的實時操作系統(tǒng)階段

          這一階段的嵌入式系統(tǒng)主要以嵌入式式器為基礎、以簡單監(jiān)控式操作系統(tǒng)為核心。系統(tǒng)的特點是:處理器種類繁多,通用性比較弱;開銷小,效率高;一般配備系統(tǒng)仿真器,具有一定的兼容性和擴展性;用戶界面不夠友好,主要用來控制系統(tǒng)負載以及監(jiān)控應用程序運行。

          (3)通用的嵌入式實時操作系統(tǒng)階段

          以通用型嵌入式實時操作系統(tǒng)為標志的嵌入式系統(tǒng),如VxWorks、pSos、Windows CE就是這一階段的典型代表。這一階段嵌入式系統(tǒng)的特點是:能運行在各種不同的微處理器上;具有強大的能用型操作系統(tǒng)的功能,如具備了文件和目錄管理、多任務、設備驅(qū)動支持、網(wǎng)絡支持、圖形窗口以及用戶界面等功能;具有豐富的API和嵌入式應用軟件。

          (4)以Internet為標志的嵌入式系統(tǒng)

          伴隨著通用型嵌入式實時操作系統(tǒng)的發(fā)展,面向Internet網(wǎng)絡和特定應用的嵌入式操作系統(tǒng)正日益引起人們的重視,成為重要的發(fā)展方向。嵌入式系統(tǒng)與Internet的真正結(jié)合、嵌入式操作系統(tǒng)與應用設備的無縫結(jié)合代表著嵌入式操作系統(tǒng)發(fā)展的未來。

          3 兩種源碼開放的RTOS

          嵌入式實時操作系統(tǒng)有很多,如VxWorks、PalmOS、WindowsCE等。這些操作系統(tǒng)均屬于商品化產(chǎn)品,價格昂貴且由于源泉代碼不公開導致了諸如對設備的支持、應用軟件的移植等一系列的問題;而開放源碼的RTOS在成本和技術上有其特有的優(yōu)勢,在RTOS領域占有越來越重要的地位,本文將介紹μC/OS-II和eCos兩種優(yōu)秀的源碼公開的實時操作系統(tǒng),通過對它們各自的特點和性能進行分析和比較,給出相關的數(shù)據(jù),為選擇一種合適的RTOS提供參考。

          3.1 μC/OS-II

          μC/OS-II的前射是μC/OS,最早出自于1992年美國嵌入式系統(tǒng)專家Jean J.Labrosse在《嵌入式系統(tǒng)編程》雜志的5月和6月刊上刊登的文章連載,并把μC/OS的源碼發(fā)布在該雜志的BBS上。當時就有500多人下載了這份源碼。世界上數(shù)以千計的工程技術人員將μC/OS應用到了各個領域,如照相機業(yè)、發(fā)動機控制、網(wǎng)絡接入設備、高速公路電話系統(tǒng)、ATM機和工業(yè)機器人等。許多大學用μC/OS作教材,用于實時系統(tǒng)教學。1998年,作者決定出版μC/OS的第二本書《μC/OS-II The Real Time Kernel》,并設立了正式的網(wǎng)站:www. ΜC/OS-II.com,給μC/OS-II增加了一些新的功能,并且增加了約200頁的解釋。

          μC/OSμC/OS-II是專門為計算機的嵌入式應用設計的,絕大部分代碼是用C語言編寫的。CPU硬件相關部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU上。許多移植的范例可以從網(wǎng)站上得到。用戶只要有標準的ANSI的C交叉編譯器,有匯編器、連接器等軟件工具,就可以將μC/OS嵌入到開發(fā)的產(chǎn)品中。

          μC/OS具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性能等特點,最小內(nèi)核可編譯至2KB。μC/OS-II已經(jīng)移植到了幾乎所有知名的CPU上。

          3.2 eCos

          eCos(embedded Configurable operating system),即嵌入式可配置操作系統(tǒng),最初起源于美國的Cygnus Solutions公司。Cygnus公司于1998年11月發(fā)布了第一個eCos版本eCos1.1,當時只支持有限的幾種處理器結(jié)構(gòu)。1999年11 月,RedHat公司以6.74億美元收購了Cygnus公司。在此后的幾年里,eCos成為其嵌入式領域的關鍵產(chǎn)品,得到了迅速的發(fā)展。2002年, RedHat公司由于財務方面的原因,裁剪了eCos開發(fā)隊伍,但并沒有停止eCos的發(fā)展。RedHat公司隨后宣稱將繼續(xù)支持eCos的發(fā)展,而由原 eCos主要開發(fā)人員組建了eCos Centric公司,并于2003年5月正式發(fā)布了eCos2.0。

          雖然eCos是RedHat 的產(chǎn)品,但是eCos并不是Linux或Linux的派生,eCos彌補了Linux在嵌入式應用領域的不足。目前,一個最小配置的Linux內(nèi)核大概有 500KB,需要占用1.5MB的內(nèi)存空間,這還不包括應用程序和其它所需的服務;eCos可以提供實時嵌入式應用所需的基本運行基件,而只占用幾十KB 或幾百KB的內(nèi)存空間。eCOS是一個源碼開放的可配置、可移植、無版稅、面向深嵌入式應用的實時操作系統(tǒng)。從eCOS的名稱可以看出,它最大的特點在于它是一個配置靈活的系統(tǒng)。ECOS的核心部分是由不同的組件組成的,包括內(nèi)核、C語言庫和底層運行包等。每個組件以能提供大量的可配置選項,利用eCOS 提供的配置工具可以很方便地進行配置。通過不同的配置使得eCOS能夠滿足不同的嵌入式應用。

          4 μC/OS-II與eCOS的比較

          對于以上兩種源泉碼公開的實時操作系統(tǒng),我們主要從以下幾個方面進行比較。通過比較,能夠為大家選擇適合自己系統(tǒng)的RTOS提供參考。

          4.1 內(nèi)核調(diào)度機制

          RTOS內(nèi)核的核心是調(diào)度器。當系統(tǒng)包含多個任務或多個線程時,必須使用調(diào)度器來決定當前執(zhí)行哪一個任務或線程。調(diào)度器對線程的運行進行控制,并為線程提供一種同步機制。表1列出了這兩種RTOS調(diào)度器(調(diào)度機制)的比較。

          表1 調(diào)度器比較

            調(diào)度方法 同優(yōu)先級調(diào)度 優(yōu)先級數(shù)/個 任務數(shù)量/個
          uC/OS-II 固定
          優(yōu)先級
          搶占式
          64
          (8個保留)
          56
          eCos 位圖 優(yōu)先級
          搶占式
          32 32
          多級隊列 優(yōu)先級
          搶占式
          32 無限
          獎券 獎券法目前在測試中

          μC/OS只支持固定優(yōu)先級搶占式,不支持時間片輪轉(zhuǎn)調(diào)度,調(diào)度方法簡單、實時性好,用法也簡單;eCOS調(diào)度方法豐富,適應性好。當然,目前的eCOS只允許在其目標系統(tǒng)中使用一個單獨的調(diào)度器,未來的版本將可以允許多個調(diào)度器協(xié)同工作。

          4.2 任務間同步、通信機制

          RTOS的功能一般要通過若干任務和中斷服務程序共同完成,任務與任務之間、任務與中斷服務程序之間必須協(xié)調(diào)動作,互相配合,這就牽涉到任務間的同步與通信問題。表2為這兩種操作系統(tǒng)同步與通信機制的比較。

          表2 同步與通信機制的比較

            uC/OS-II eCos
          同步與通信機制 信號量、郵箱、消息隊列 互斥、條件變量、計數(shù)型信號量、郵箱和事件標志

          4.3 任務切換時間和中斷延遲時間

          任務切換時間和中斷延遲時間是評估RTOS性能的兩個重要指標。任務切換時間可以反映出RTOS執(zhí)行任務的速度,而中斷延遲時間可以反映出RTOS對外界變化的反應速度。表3為這兩種操作系統(tǒng)任務切換時間和中斷延遲時間的比較。

          表3 任務切換時間和中斷延遲時間的比較

            任務切換時間/us 中斷延遲時間/μs 測試環(huán)境
          μ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位等不同體系結(jié)構(gòu)之間移植。μC/OS-II和eCOS由于本身內(nèi)核就很小,經(jīng)過裁剪后的代碼最小可以分別為小于2KB和10KB,所需的最小數(shù)據(jù)RAM空間可以為4KB和10KB,因此它們對硬件的要求很低,具有極高的經(jīng)濟性。

          結(jié)語

          通過比較可以看到:μC/OS-II相對eCOS來說,源代碼最小很多,特別適合學習和研究。它最大的特點是小巧,適合應用在一些RAM和ROM有限的小型嵌入式系統(tǒng)中,如單片機系統(tǒng)。 ECOS最大的特點是配置靈活,適合于用在一些商業(yè)級或工業(yè)級的嵌入式系統(tǒng),如一些消費電子、汽車領域等等??傊?,選用什么樣的操作系統(tǒng),要根據(jù)目標系統(tǒng)的硬件條件和用戶應用程序的復雜度來確定。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();