官术网_书友最值得收藏!

1.3 嵌入式操作系統(tǒng)

1.3.1 操作系統(tǒng)的概念

大型嵌入式系統(tǒng)通常需要完成復雜的功能,所以需要操作系統(tǒng)來完成各任務之間的調(diào)度。由于桌面型操作系統(tǒng)的體積及實時性等特性不能滿足嵌入式系統(tǒng)的要求,從而促進了嵌入式操作系統(tǒng)的發(fā)展。

操作系統(tǒng)(Operating System,OS)的基本思想是隱藏底層不同硬件的差異,向在其上運行的應用程序提供一個統(tǒng)一的調(diào)用接口。應用程序通過這一接口實現(xiàn)對硬件的使用和控制,不必考慮不同硬件操作方式的差異。

很多產(chǎn)品廠商選擇購買操作系統(tǒng),在此基礎上開發(fā)自己的應用程序,形成產(chǎn)品。事實上,因為嵌入式系統(tǒng)是將所有程序,包括操作系統(tǒng)、驅(qū)動程序、應用程序的程序代碼全部燒寫進ROM里執(zhí)行的,所以操作系統(tǒng)在這里的角色更像是一套函數(shù)庫(Library)。

操作系統(tǒng)主要完成3項任務:內(nèi)存管理、多任務管理和外圍設備管理。

嵌入式操作系統(tǒng)(Embedded Operating System,EOS)負責嵌入式系統(tǒng)的全部軟/硬件資源的分配、調(diào)度、控制、協(xié)調(diào);它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過加載/卸載某些模塊來達到系統(tǒng)所要求的功能。

EOS是相對于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務調(diào)度、同步機制、中斷處理、文件處理等,還有以下幾個特點。

① 強穩(wěn)定性,弱交互性:嵌入式系統(tǒng)一旦開始運行就不需要用戶過多的干預,這就要求負責系統(tǒng)管理的EOS具有很強的穩(wěn)定性。

② 較強的實時性:EOS實時性一般較強,可用于各種設備的控制中。

③ 可伸縮性:具有開放、可伸縮性的體系結(jié)構(gòu)。

④ 外設接口的統(tǒng)一性:提供各種設備驅(qū)動接口。

嵌入式系統(tǒng)的操作系統(tǒng)核心通常要求體積要很小,因為硬件ROM的容量有限,除了應用程序之外,不希望操作系統(tǒng)占用太大的存儲空間。事實上,嵌入式操作系統(tǒng)可以很小,只提供基本的管理功能和調(diào)度功能,縮小到10~20KB以內(nèi)的嵌入式操作系統(tǒng)比比皆是,相信用慣微軟的Windows系統(tǒng)的用戶,可能會覺得不可思議。

不同的應用場合會產(chǎn)生不同特點的嵌入式操作系統(tǒng),但都會有一個核心(Kernel)和一些系統(tǒng)服務(System Service)。操作系統(tǒng)必須提供一些系統(tǒng)服務供應用程序調(diào)用,包括文件系統(tǒng)、內(nèi)存分配、I/O存取服務、中斷服務、任務(Task)服務、時間(Timer)服務等,設備驅(qū)動程序(Device Driver)則是要建立在I/O存取和中斷服務上的。有些嵌入式操作系統(tǒng)也會提供多種通信協(xié)議,以及用戶接口函數(shù)庫等。

1.3.2 嵌入式Linux

Linux是目前最為流行的一款開放源代碼的操作系統(tǒng),目前正在開發(fā)的嵌入式系統(tǒng)中,70%以上的項目選擇Linux作為嵌入式操作系統(tǒng)。

經(jīng)過改造后的嵌入式Linux具有適合于嵌入式系統(tǒng)的特點:

① 內(nèi)核精簡,高性能、穩(wěn)定;

② 良好的多任務支持;

③ 適用于不同的CPU體系架構(gòu)——支持多種體系架構(gòu),如x86、ARM、MIPS、ALPHA、SPARC等;

④ 可伸縮的結(jié)構(gòu),使Linux適合于從簡單到復雜的各種嵌入式應用;

⑤ 外設接口統(tǒng)一,以設備驅(qū)動程序的方式為應用提供統(tǒng)一的外設接口;

⑥ 開放源代碼,軟件資源豐富,廣泛的軟件開發(fā)者的支持,價格低廉,結(jié)構(gòu)靈活,適用面廣;

⑦ 完整的技術文檔,便于用戶的二次開發(fā)。

1.3.3 ?C/OS-Ⅱ

?C/OS-Ⅱ是Jean J. Labrosse在1990年前后編寫的一個實時操作系統(tǒng)內(nèi)核。它通常也被稱為MUCOS或者UCOS。

嚴格地說,?C/OS-Ⅱ只是一個實時操作系統(tǒng)內(nèi)核,它僅僅包含了任務調(diào)度、任務管理、時間管理、內(nèi)存管理和任務間通信和同步等基本功能,沒有提供輸入/輸出管理、文件管理、網(wǎng)絡等額外的服務。但由于 ?C/OS-Ⅱ良好的可擴展性和源代碼開放,這些功能完全可以由用戶根據(jù)需要自己實現(xiàn)。

?C/OS-Ⅱ獲得廣泛使用不僅僅是因為它的源代碼開放,還有一個重要原因,就是它的可移植性。?C/OS-Ⅱ的大部分代碼都是用C語言寫成的,只有與處理器的硬件相關的一部分代碼用匯編語言編寫??梢哉f,?C/OS-Ⅱ在最初設計時就考慮到了系統(tǒng)的可移植性,這一點和同樣源代碼開放的Linux很不一樣,后者在開始的時候只是用于x86體系結(jié)構(gòu),后來才將和硬件相關的代碼單獨提取出來。

目前?C/OS-Ⅱ支持ARM、PowerPC、MIPS、68k/ColdFire和x86等多種體系結(jié)構(gòu)。

1.3.4 Windows CE

Windows CE主要應用于PDA及智能電話(Smart Phone)等多媒體網(wǎng)絡產(chǎn)品。微軟于2004年推出了代號為“Macallan”的新版WinCE系列的操作系統(tǒng)。

Windows CE.NET的目的,是讓不同語言所編寫的程序可以在不同的硬件上執(zhí)行,也就是所謂的.NET Compact Framework,在這個Framework下的應用程序與硬件互相獨立無關。而核心本身是一個支持多線程及多CPU的操作系統(tǒng)。在工作調(diào)度方面,為了提高系統(tǒng)的實時性,主要設置了256級的工作優(yōu)先級及可嵌入式中斷處理。

如同在PC Desktop環(huán)境,Windows CE系列在通信和網(wǎng)絡的能力,以及多媒體方面極具優(yōu)勢。其提供的協(xié)議軟件非常完整,甚至還提供了有保密與驗證的加密通信,如PCT/SSL。而在多媒體方面,目前在PC上執(zhí)行的Windows Media和DirectX都已經(jīng)應用到Windows CE 3.0以上的平臺,其主要功能就是對圖形、影音進行編碼譯碼,以及對多媒體信號進行處理。

1.3.5 VxWorks

VxWorks操作系統(tǒng)是美國WindRiver公司于1983 年設計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS),是嵌入式開發(fā)環(huán)境的關鍵組成部分。VxWorks以其高可靠性、實時性和可裁剪性,以及良好的持續(xù)發(fā)展能力、高性能的內(nèi)核及友好的用戶開發(fā)環(huán)境,在嵌入式實時操作系統(tǒng)領域占據(jù)一席之地。因此,它被廣泛地應用在通信、軍事、航空航天等高精尖技術及實時性要求極高的領域中,如衛(wèi)星通信、軍事演習、彈道制導及飛機導航等。在美國的F-16、FA-18 戰(zhàn)斗機、B-2 隱形轟炸機和愛國者導彈上,甚至在1997年4月在火星表面登錄的火星探測器上也使用了VxWorks。

1.3.6 IAR PowerPac

IAR PowerPac是一個具有豐富功能的實時嵌入式操作系統(tǒng)(RTOS),并包含一個高性能的文件管理系統(tǒng)。

IAR PowerPac RTOS的代碼尺寸極?。ㄖ挥?KB),并以合理的價格體系針對低成本的ARM應用市場。更多的模塊將被逐步引入到IAR PowerPac產(chǎn)品家族中,并且將支持非常多的目標芯片。

IAR PowerPac能提供搶占和循環(huán)這兩種方式的任務調(diào)度,能處理無限多的任務、信號量、郵箱和軟件定時器,并可設置255 種不同的優(yōu)先級別。IAR PowerPac能實現(xiàn)完全的中斷,0中斷時延是該產(chǎn)品一個重要的特點。IAR PowerPac還能實現(xiàn)可嵌套的中斷,并且能達到非??斓纳舷挛那袚Q速度。IAR PowerPac文件管理系統(tǒng)能兼容MS-DOS/MS-Windows系統(tǒng),支持FAT12、FAT16 和FAT32 格式,以及支持多種設備驅(qū)動和多種存儲媒介,包括:RAM盤、MMC卡、SD卡、CompactFlash卡、硬盤接口、SMC卡及NOR/NAND閃存,其高度模塊化的結(jié)構(gòu)使得對內(nèi)存的消耗降至最小。

IAR PowerPac for ARM現(xiàn)在已經(jīng)通過IAR的全球網(wǎng)絡進行銷售,并提供下載沒有時間限制的免費學習版(最多可創(chuàng)建3個任務),可供讀者進行實際體驗。

主站蜘蛛池模板: 革吉县| 嘉兴市| 南康市| 绥芬河市| 鄂托克前旗| 兰溪市| 客服| 永德县| 化隆| 舟山市| 渑池县| 绍兴市| 武平县| 镇康县| 师宗县| 子洲县| 措美县| 昌都县| 彭阳县| 陇西县| 乌苏市| 山丹县| 鲁甸县| 江油市| 聂拉木县| 贡嘎县| 鄂温| 米脂县| 鄱阳县| 静乐县| 镇雄县| 盖州市| 方山县| 福泉市| 介休市| 怀集县| 盘山县| 莱州市| 宕昌县| 滦平县| 隆回县|