嵌入式操作系統是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。 |