選擇ARM CPU的作業系統(轉)

BSDLite發表於2007-08-15
選擇ARM CPU的作業系統(轉)[@more@]  摘 要: 本文就目前國內在ARM CPU上廣泛採用的三種嵌入式作業系統μC/OS-II、μCLinux和嵌入式Linux作分析,提供選擇一個合適的嵌入式作業系統的依據。

  關鍵詞: 嵌入式作業系統;μC/OS-II;μCLinux;嵌入式Linux

嵌入式作業系統是ARM CPU的軟體基礎,從8位/16位微控制器發展到以ARM CPU核為代表的32位嵌入式處理器,嵌入式作業系統將替代傳統的由手工編制的監控程式或排程程式,成為重要的基礎元件。更重要的是嵌入式作業系統對應用程式可以起到遮蔽的作用,使應用程式設計師面向作業系統級開發應用軟體,並易於在不同的ARM核的嵌入式處理器上移植。

嵌入式作業系統都具有一定的實時性,易於裁剪和伸縮,可以適合於從ARM7到Xscale各種ARM CPU和各種檔次的應用,嵌入式作業系統可以使用廣泛流行的ARM開發工具,如ARM公司的SDT/ADS和RealView等,也可以使用開發軟體,如GCC/GDB、KDE或Eclipe開發環境,市場上還有專用的開發工具,如Tornado、μC/View、μC/KA、CODE/Lab、Metroworks等。

本文就目前國內在ARM CPU上廣泛採用的三種嵌入式作業系統(μC/OS-II、μCLinux和嵌入式Linux)作分析。

  μC/OS-II嵌入式實時核心

全世界數百種裝置已經在使用μC/OS-II,包括手機、路由器、不間斷電源、飛行器、醫療裝置和工業控制裝置。μC/OS-II已經有ARM7TDMI、ARM9和Strong ARM等各種ARM CPU的移植,支援包含Atmel、Hynix、Intel、Motorola、Philips、Samsung、Sharp等公司的ARM核的CPU。μC/OS-II的移植也相當容易,與CPU相關的程式碼包裝在三個檔案中,它們是os_cpu.h、os_cpu_a.asm和os_cpu_c.c。

μC/OS-II有60多個系統呼叫,覆蓋任務、定時器、訊號量、事件標誌、郵箱、佇列和記憶體管理,已經包含了傳統嵌入式作業系統核心(如PSOS,VRTX)的功能,還支援互斥型訊號量,這是90年代的嵌入式作業系統核心,如VxWorks和VRTXsa才有的技術。

μC/OS-II因為是可搶佔的實時核心,所以μC/OS-II與商業嵌入式實時核心在效能上沒有什麼差異,μC/OS-II沒有使用者態和核心態,任務(執行緒)或中斷和任務切換的響應可以很快,主要是和ARM CPU相關的。最新的2.7x版本還增加了演算法以避免在移植中修改堆疊指標,這樣可以保證μC/OS-II在不同的CPU上執行更穩定,移植更方便。μC/OS-II目前除了核心外還有商業化檔案系統μC/FS,圖形系統μC/GUI以及任務除錯工具μC/KA和μC/View,但是μC/OS-II自己目前還沒有TCP/IP協議系統。

總的來說,μC/OS-II是一個非常容易學習,結構簡單,功能完備和實時性很強的嵌入式作業系統核心,適合於各種嵌入式應用以及大專院校教學和科研。最後需要說明,μC/OS-II不是免費軟體,任何人學習使用μC/OS-II需要購買《嵌入式實時作業系統μC/OS-II》一書,使用μC/OS-II的產品需要購買產品生產授權,購買了此授權的還可以得到開發期間的技術支援和升級服務。

  μCLinux作業系統

μCLinux是Linux小型化後,適合於沒有MMU(記憶體管理單元)的微處理器晶片而裁剪成的作業系統,如果ARM CPU系列中的ARM7 TDMI、ARM940T等產品希望使用Linux作業系統,只能用μCLinux,當然,μCLinux也支援Motorola Dragonball、Coldfire等其它中低端嵌入式處理器。

μCLinux保持了傳統Linux作業系統的主要特性,包括穩定、強大的網路和檔案系統的支援,μCLinux裁剪了大量的Linux核心以縮小尺寸,適合象512k/b RAM、1M/b Flash這樣小容量、低成本的嵌入式系統。μCLinux系統小型化的另一簡化是採用了μCLib庫替代Linux的Glib庫,使用μCLib可以大大減少應用程式的程式碼尺寸,對於中小型嵌入式應用,μCLib功能可以滿足需要,所以目前即使是某些採用Linux 2.4

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-959846/,如需轉載,請註明出處,否則將追究法律責任。

相關文章