嵌入式作業系統uClinux和eCos的比較

2021-06-03 04:34:47 字數 3379 閱讀 3509

1 兩種開源嵌入式作業系統介紹

uclinux是一種優秀的嵌入式linux版本。uclinux是micro-conrol-linux的縮寫。與標準linux相比,它整合了標準linux作業系統的穩定性、強大網路功能和出色的檔案系統等主要優點。但是由於沒有mmu(記憶體管理單元),故其多工的實現需要一定技巧。

ecos(embedded configurable operating system),即嵌入式可配置作業系統,是redhat的產品,但ecos並不是linux或linux的派生。ecos彌補了linux在嵌入式應用領域的不足,是乙個原始碼開放的可配置、可移植、無版稅、面向深嵌入式應用的實時作業系統。ecos的核心部分是由不同的元件組成的,包括核心、c語言庫和底層執行包等。每個元件能提供大量的可配置選項,利用ecos提供的配置工具可以很方便地進行配置。通過不同的配置使得ecos能夠滿足不同的嵌入式應用。

2 基本操作效能的比較

2.1 應用程式的運算能力

在linux和uclinux作業系統啟動的時候,都會有這樣一句話——calibrating delay 1oop..0k—*** bogomips,這一過程叫作bogomips(讀作bogumips)。linus torvalds引入bogomips主要有兩個目的:①給使用者乙個大概的系統運算能力的概念;②由於系統中有許多**需要精確的軟體延時,通過bogomips來獲得軟體延時每個週期消耗的時間。bogomips的過程就是乙個簡單計數迴圈,看ls可以迴圈多少次,然後除以500000就得到了bogomips的數值。

表1是分別在目標硬體平台上執行ecos和uclinux下的bogomips應用程式得到的結果。我們使用了不同的測試條件,啟用和非啟用at76c120的儲存器緩衝控制器。

從表1可知,開啟緩衝儲存器。對ecos的應用程式效能影響較uclinux的大;反之,關閉緩衝,ecos的應用程式的效能就下降很多。

2.2 儲存器訪問能力

採用一種同時能夠測試緩衝控制器和標準儲存器訪問函式的測試方法來測試儲存器訪問能力。在這裡,選用田納西大學的philip j.mucci等人提出的cachebench方法。其工作原理是,重複順序讀/寫一定長度的儲存器塊的資料,記錄重複n次所用的時問,用總的讀/寫資料除以耗時,得到讀/寫每一位元組所用的時間;同時,通過調整資料塊的長度和不同的讀寫方法(使用標準函式或者使用直接**讀寫),獲得不同條件對儲存器讀/寫的影響。

在實驗中,對於每一種測試模式使用4種不同的塊長度(分別為256、512、1024、2048位元組),以觀察不同的抉長度對儲存器訪問效能的影響。表2是實驗的結果:橫向比較,ecos的儲存器訪問效能從總體上都優於uclinux;縱向比較,5種模式下效能關係大致為緩衝讀》緩衝讀,改寫/寫》緩衝寫》mcmset>mcmcpy。在同一種測試模式下,對於緩衝讀,越大的塊長度,其表現的儲存器訪問效能越好;而其他模式下,儲存器訪問效能基本與塊長度無關。

基於以上結果的分析如下:①造成ecos儲存器訪問能力優於uclinux的原因是,ecos的應用程式獲得的處理器時間較長;②造成讀緩衝模式下,儲存器訪問效能隨塊長度增長而變好,而其他模式下不變的原因是,與at76c120的緩衝控制器的回寫模式有關。由於at76c120的緩衝控制器採用了直接回寫的緩衝回寫模式,緩衝控制器對儲存器寫操作沒有任何緩衝作用,因此當處理器寫儲存器時基本不會享受到由緩衝控制器帶來的好處,相當於直接訪問外部儲存器。

2.3 驅動程式效能測試

為了測試系統的驅動程式效能,選擇cf卡驅動程式作為測試物件。我們的測試方法簡單,就是在應用程式中開啟乙個大檔案(10mb),然後呼叫fread讀檔案,每次讀512位元組到緩衝中,直至將檔案讀完。

表3是測試結果:uclinux的效能優於ecos。這主要是由於uclinux的塊驅動有乙個叫集簇的功能,它可以將對塊裝置的多個請求歸併在一起執行,這樣對於像磁碟這樣反應較慢的裝置可以提高整體的讀/寫速度。

3 綜合應用效能比較

我們知道,乙個影象壓縮和解壓縮的程式往往需要大塊的儲存器訪問操作

、密集的數**算和大量的磁碟訪問。由於現在手持的嵌入式裝置大多需要有這方面的應用需求,因此乙個影象壓縮和解壓縮的應用程式既符合理論研究的要求,又符合實際應用的需求。為此我們選擇gif

的編譯碼的程式作為綜合性能測試的測試程式。測試結果如表4所列。

我們看到,ecos和uclinux解碼速度都很低,主要是因為完全使用了軟體解壓縮;而且由於at76c120的影象顯示格式是ycrcb的,而giflib的解壓縮結果是rgb的,因此必須使用浮點運算將rgb的資料轉換到ycrcb。at76c120的arm7tdmi不支援浮點指令,因此不得不使用軟體**來完成浮點運算,這其中大部分時間被用在了從rgb到ycrcb的轉換上。測試結果基本與前面基本作業系統測試的結果是一致的——ecos在整體上是優於uclinux的。

4 可移植性

ecos的系統一j移植性應該明顯比uclinux的好。在ecos系統中,每乙個硬體平台都用乙個單獨的目錄存放針對這一硬體平台的硬體抽象層的**和配置資訊,較容易讓使用者理解。而uclinux的硬體抽象層的**分布在好幾個目錄中,而且各個平台的**混合在乙個原始檔中,通過#ifdef+#end的方式來選擇不同的硬體平台的**。另外,ecos在移植時所要更改的源**檔案數少於uclinux。

可移植性不應僅僅是作業系統的移植,還應該包含應用程式的移植性。程式的可移植性,是由兩方面決定的。首先,應用程式必須被編寫得可以移植。關於這方面,a.dolenc,a.lemmke和d.keppel在其notes on writingportable programs in c一文中給出了很好的解釋。其次是嵌入式作業系統提供較豐富的系統函式和標準函式庫。乙個系統提供的函式庫越豐富,則越多的應用程式不用進行較大的更改就能直接在其上執行。在標準函式方面,ecos只提供了較為簡單的c標準函式庫和ieee浮點運算數學庫,uclinux則提供了,與linux下的glibc相相容的函式庫,而glibc是大部分開放源**專案的構建基礎。由此可以看出,在應用程式的可移植性上,uclinux的相容性更好。

5 開發模式和開發難易度

ecos的開發模式是一套更接近傳統微控制器的開發模式(如應用程式靜態鏈結),uclinux的開發模式則更接近linux的開發模式。因此可以預見,ecos更受一批從8位微控制器系統開發轉到32位嵌入式系統開發設計人員的歡迎.而uclinux更受熟悉linux的設計人員的青睞。

6 總 結

通過以上比較可知,由於ecos從一開始設汁時就是以嵌入式系統為目標的,因此在效能上,有較大優勢;反之,uclinux則是由linux進化而來的,因此在以速度和優化為主題的嵌入式系統環境中,並不佔優勢。但是由於有linux的強大後盾,其功能的強大和相容性是非常突出的。如果應用程式是從其他系統中移植過來的,或者開發人員有linux的背景,或者開發成本佔總成本的比例較高,則uclinux比較適合;反之,ecos比較適合。

嵌入式作業系統概述

實時作業系統 rtos 設計成提供乙個對真實世界的事件的及時響應 timely response 出現在真實世界中的事件可能有乙個時間限制 deadline 在此期限之前,實時 嵌入式系統必須確保在有限時間內對此事件做出相應的響應。根據相應事件的時間限制,嵌入式實時作業系統可以分為兩類 1 硬實時嵌...

嵌入式作業系統簡介

嵌入式作業系統簡介 商用型系統 vxworks 半開源 wince 半開源 免費型 linux ucosii 只適用於控制,不適合遠端,不自帶網路協議棧 linux模仿unix unix是在於1969年在at t的貝爾實驗室開發 備註 丹尼斯.里奇 unix之父 c語言之父 gpl協議 gpl同其它...

嵌入式作業系統uCOSII

2.4 常用資料結構 2.4.1 程式控制塊 本質上是結構體 typedef struct tbctcb 2.4.2 控制塊的組織 鍊錶 typedef struct tcbtcb 位圖!3 ucossii中的任務 任務組成 任務程式 函式 任務堆疊和任務控制塊 具有私有空間的任務叫做程序,沒有私有...