如何選擇一個(gè)ARM CPU嵌入式操作系統(tǒng)
使用Linux在嵌入式系統(tǒng)中有兩種途徑。
第一是用戶自己裝配(稱為DIY內(nèi)核),你可以在www.kernel.org找到全部Linux代碼,或直接到ARM CPU的源代碼樹下www.ARMLinux.org.uk找到你需要的Linux版本在ARM下的移植,或者某些半導(dǎo)體公司,如三星、Motorola 也在自己的網(wǎng)站或銷售自己的ARM評(píng)估板的時(shí)候送給一張CD,里面含有一個(gè)可以支持他們?cè)u(píng)估板的最小Linux內(nèi)核系統(tǒng)。如果這個(gè)最小內(nèi)核沒有包含 GCC/GDB工具鏈,你可能還要到GNU的網(wǎng)站下載全部的源代碼,然后再編譯生成你需要版本的ARM工具鏈和應(yīng)用程序庫,這個(gè)過程是相當(dāng)耗時(shí)和困難的。還需要指出,這種DIY內(nèi)核的配置,添加應(yīng)用和驅(qū)動(dòng)程序也是不標(biāo)準(zhǔn)的和復(fù)雜的,這是嵌入式系統(tǒng)的特殊性所在,比如說,有的基于ARM的應(yīng)用是網(wǎng)絡(luò)上的小型互連設(shè)備,他需要多個(gè)以太網(wǎng)、USB主機(jī)、小型的NOR Flash文件系統(tǒng),而一個(gè)ARM手持終端,它關(guān)心的是LCD的觸屏、紅外或藍(lán)牙的接口、USB用戶端、快速的啟動(dòng),動(dòng)態(tài)的電源管理和NADA FLASH,這樣,你就需要在數(shù)十家Linux相關(guān)網(wǎng)站下載各種補(bǔ)丁,應(yīng)用和工具,把它們和你拿到的這個(gè)內(nèi)核進(jìn)行反復(fù)的編譯和調(diào)試,確信它們之間以及它們?cè)谀闼玫腁RM CPU硬件評(píng)估板上是穩(wěn)定可靠工作的,這個(gè)過程是在沒有任何技術(shù)支持下完成的。當(dāng)然,如果可以從某家半導(dǎo)體公司或開源的網(wǎng)站能夠得到“最小內(nèi)核”,它所包含的組件(如驅(qū)動(dòng)、應(yīng)用和文件系統(tǒng))和你的應(yīng)用近似,而且代碼是可靠的,或者你及時(shí)正確得到Linux網(wǎng)友的指導(dǎo),那么你是幸運(yùn)的。據(jù)說,有一個(gè)著名的電信設(shè)備制造商花了2年的時(shí)間和150萬美圓在一個(gè)項(xiàng)目中開發(fā)自己的Linux,而且最后還不得不停止了。
第二是選擇一個(gè)商業(yè)的嵌入式Linux操作系統(tǒng)平臺(tái)。商業(yè)化的嵌入式 Linux版本是針對(duì)嵌入式處理器,如ARM所優(yōu)化設(shè)計(jì)的,已經(jīng)支持了各種半導(dǎo)體廠家的評(píng)估板和主要的設(shè)備驅(qū)動(dòng),商業(yè)化的嵌入式Linux包含了文件系統(tǒng)、應(yīng)用、實(shí)時(shí)性擴(kuò)展和技術(shù)支持培訓(xùn)服務(wù),現(xiàn)今國外著名的商業(yè)化嵌入式Linux產(chǎn)品有:MontaVista Linux, Bluecat Linux, Timesys Linux, Metrowork Linux(原Lineo), Vlinux(韓國)和Redhat Linux等,國內(nèi)也有紅旗、中軟、新華嵌入式Linux。
MontaVista Linux是MontaVista軟件公司于99年推出的,它是目前全球最優(yōu)秀的嵌入式Linux操作系統(tǒng)和工具供應(yīng)商,MontaVista在嵌入式 Linux的實(shí)時(shí)性、交叉開發(fā)工具、高可用性、動(dòng)態(tài)電源管理等Linux技術(shù)要點(diǎn)方面具有世界領(lǐng)先地位。
MontaVista Linux最新版本是5。0,采用Linux 2.6.18,針對(duì)8種CPU系列(包含ARM和Xscale)優(yōu)化定制的商業(yè)化版本,包含了最新O(1)實(shí)時(shí)調(diào)度器,可搶占的內(nèi)核,微秒級(jí)的高分辨定時(shí)器,基于Eclipse的DevRocket 5開發(fā)環(huán)境,支持應(yīng)用、內(nèi)核和文件系統(tǒng)(固化)的配置和調(diào)試,以及測(cè)試和分析工具,純Windows, Linux和Solaris開發(fā)主機(jī),200余種評(píng)估板和應(yīng)用系統(tǒng)的設(shè)備驅(qū)動(dòng)支持。
選擇象MontaVista Linux這樣商業(yè)化嵌入式Linux,可以讓用戶把時(shí)間和資金放在應(yīng)用軟件和特定的硬件接口和設(shè)備驅(qū)動(dòng)程序,使用商業(yè)嵌入式Linux,可以得到一定時(shí)間(一般是1年)的技術(shù)支持,升級(jí)和培訓(xùn)(這很重要,因?yàn)長(zhǎng)inux是每天都在變化的)。
商業(yè)嵌入式Linux目前除國內(nèi)的產(chǎn)品外,價(jià)格還是很昂貴的,根據(jù)配置和服務(wù)時(shí)間,大約從幾千到幾萬美圓,多數(shù)國內(nèi)用戶從資金和心理上還很難承受,商業(yè)嵌入式Linux開發(fā)工具相對(duì)于Microsoft和象 Tornado/VXWORK的開發(fā)工具,在易于使用和豐富性方面還待于提高和改進(jìn)。
同作為L(zhǎng)inux操作系統(tǒng),我是推薦使用帶有MMU 的 Linux ,而不是μCLinux,因?yàn)榻^大多數(shù)新的ARM CPU 都是AMR9核,他們都帶有MMU 了,無論是開放源碼的LINUX 社區(qū)還是商業(yè)的嵌入式LINUX 公司的支持和維護(hù)都比μCLinux,要好,快和豐富的多。
結(jié)束語
前面我們對(duì)三種在ARM CPU上較為流行的嵌入式操作系統(tǒng)作了詳細(xì)的分析,在進(jìn)入一個(gè)總結(jié)之前,我還想提到幾個(gè)在國際上很有名氣的嵌入式操作系統(tǒng),它們是Windriver公司的Vxworks、ATI的Nucleus、日本人的iTron和WinCE。
Windriver 的Vxworks在兩三年前曾經(jīng)是最具影響力的嵌入式操作系統(tǒng),幾乎主要的通信設(shè)備制造商都是采用PowerPC+Vxworks這種組合,但是在ARM CPU上,Vxworks的應(yīng)用并不多見;ATI的Nucleus(現(xiàn)在已經(jīng)是Mentor的嵌入式部門)曾經(jīng)作為最有名氣的源代碼、沒有版稅的嵌入式操作系統(tǒng)而在北美和亞洲臺(tái)灣流行,最成功的設(shè)計(jì)范例是各種GSM移動(dòng)電話,Nucleus只是一個(gè)實(shí)時(shí)內(nèi)核,用戶需要再購買它的TCP/IP,GUI,文件系統(tǒng)和設(shè)備驅(qū)動(dòng)才能形成一個(gè)功能完整的嵌入式系統(tǒng),這使它在近些年失去了優(yōu)勢(shì);日本人的iTron是在日本幾乎家喻戶曉的嵌入式內(nèi)核,標(biāo)準(zhǔn)的編程接口、低廉的價(jià)格(1~3千美圓)、沒有版稅、支持幾乎所有的CPU(尤其是支持很多日本的CPU),但在除日本之外,iTron好象毫無建樹;微軟的 WinCE,幾乎所有高端PDA都是采用它,它們使用的是 Xscale或ARM9這樣的CPU,但微軟只是關(guān)心有產(chǎn)量象PC一樣巨大的嵌入式設(shè)備制造商,所以他并沒有把自己的WinCE象Linux一樣易于移植到不同的CPU和增加設(shè)備驅(qū)動(dòng)程序,微軟更愿意象Windows一樣自己把所有事情做好,你只是拿去用好了,如果你沒有相當(dāng)?shù)募?jí)別,很難獲得它的個(gè)性化定制服務(wù)。
最后我們歸納一下選擇一個(gè)合適的ARM CPU的嵌入式操作系統(tǒng)的幾個(gè)重要因素。
第一是應(yīng)用。如果你想開發(fā)的嵌入式設(shè)備是一個(gè)和網(wǎng)絡(luò)應(yīng)用密切相關(guān)或者就是一個(gè)網(wǎng)絡(luò)設(shè)備,那么你應(yīng)該選擇用嵌入式Linux或者μCLinux,而不是μC/OS-II,因?yàn)長(zhǎng)inux不僅為你集成了TCP/IP協(xié)議,還有很豐富的其它網(wǎng)絡(luò)協(xié)議,如DHCP Server,PPPoe,webserver等等。
第 二是實(shí)時(shí)性。沒有一個(gè)絕對(duì)的數(shù)字可以告訴你什么是硬實(shí)時(shí),什么是軟實(shí)時(shí),它們之間的界限也是十分模糊的,這與你選擇什么樣的ARM CPU,它的主頻,內(nèi)存等參數(shù)有一定的關(guān)系,象Intel Xscale這樣的處理器,即使配合普通Linux的內(nèi)核,內(nèi)核的搶占延時(shí)最壞情況也只有1.743毫秒,而99.9%的情況是1.42毫秒,而如果你使用加入實(shí)時(shí)補(bǔ)丁等技術(shù)的嵌入式Linux如MontaVista Linux(2.4.17版本內(nèi)核),最壞的情況只有436微秒,而99.9%的情況是195微秒,上面的數(shù)字以及考慮到最新的Linux在實(shí)時(shí)性方面的改進(jìn)(如低延時(shí)O(1)調(diào)試器,微秒級(jí)的高分辨率POSIX定時(shí)器),嵌入式Linux可以適合于90~95%的各種嵌入式系統(tǒng)應(yīng)用。當(dāng)然,你如果希望更高數(shù)量級(jí)的實(shí)時(shí)響應(yīng),如高速的A/D轉(zhuǎn)換需要幾個(gè)微秒以內(nèi)的中斷延時(shí),要求一個(gè)毫秒級(jí)沒有DMA方式的異步串行實(shí)時(shí)處理器等類似的應(yīng)用,可能是采用 μC/OS-II是合適的。當(dāng)然,你采用象Vxworks這樣傳統(tǒng)的嵌入式操作系統(tǒng)也可以滿足這樣的強(qiáng)實(shí)時(shí)性要求。
第三是開發(fā)工具。坦言說,目前μC/OS-II、μCLinux和嵌入式Linux的開發(fā)工具與商業(yè)嵌入式操作系統(tǒng)工具還有一些差距,目前在ARM CPU上廣泛流行和使用的是ARM公司SDT/ADS工具鏈,產(chǎn)品無論在功能、穩(wěn)定性和眾多的第三方廠商支持方面,都很好,唯一不足的是缺少對(duì)嵌入式操作系統(tǒng)的支持,SDT/ADS的升級(jí)產(chǎn)品RealView計(jì)劃支持GCC和嵌入式Linux,但目前還沒有看到,μC/OS-II可以使用ARM SDT/ADS,但沒有OS調(diào)試功能。如果希望支持OS調(diào)試,可以使用IAR或Nohan調(diào)試器,μCLinux的調(diào)試除GDB外還有第三方調(diào)試器,并配合Cygwin形成Windows環(huán)境下μCLinux開發(fā)環(huán)境,象Aiji的 Spider和Micetek 的Hitool。
第四是你所選擇 的ARM CPU和參考板,象ARM7TDMI和ARM940T(如S3C2500/2510)核是不能使用嵌入式Linux(MMU),如果你想用Linux,只能用μCLinux,如果你想用Vxworks,你需要了解一下提供評(píng)估板的公司是否有BSP(板支持包),Vxworks自己只有少數(shù)ARM公司評(píng)估板的支持。
最后是價(jià)格和技術(shù)服務(wù)。中國工程師的薪水大約是歐美日等國的十分之一, 所以在考慮購買商業(yè)嵌入式操作系統(tǒng)時(shí),會(huì)遇到是買還是自己做的問題,這是很正常的,尤其是在采用開放源代碼技術(shù)時(shí),這個(gè)問題就就更加突出。有一點(diǎn)需要注意的是,有些產(chǎn)品如Vxworks 是既按用戶數(shù)(有License保護(hù)鎖)收取開發(fā)費(fèi),也按你產(chǎn)品售出的實(shí)際數(shù)量收取每個(gè)Vxworks軟件運(yùn)行的版稅。 μC/OS-II只是收取每種產(chǎn)品一次性版稅(不限數(shù)量)。Nucleus和Threadx是一次性收取開發(fā)加上生產(chǎn)的費(fèi)用。Linux無論是 μCLinux還是嵌入式Linux(即使是商業(yè)版本象MontaVista Linux)是不收版稅的,商用嵌入式Linux是以服務(wù)費(fèi)或訂閱方式收取開發(fā)時(shí)的費(fèi)用。很明顯,國外產(chǎn)品價(jià)格是貴一些(主要是他們?nèi)肆Τ杀靖撸?,但不能不承認(rèn)他們?cè)谇度胧讲僮飨到y(tǒng)的技術(shù)已經(jīng)遠(yuǎn)遠(yuǎn)走在了前方。值得提醒大家的是在ARM開發(fā)工具和評(píng)估板的眾多國內(nèi)供應(yīng)商中,有不少已經(jīng)做了開放源碼操作系統(tǒng)的移植和示范性的Demo,但應(yīng)該注意他們多數(shù)不具有維護(hù)和支持操作系統(tǒng)平臺(tái)的能力和經(jīng)驗(yàn),過多地依賴他們是有風(fēng)險(xiǎn)的。
品種眾多,價(jià)格適宜的ARM CPU加上開放源碼嵌入式操作系統(tǒng)為中國嵌入式系統(tǒng)和設(shè)備制造商的發(fā)展創(chuàng)造了一個(gè)有利的時(shí)機(jī),正確迅速地使用這些技術(shù),可以加快我們具有競(jìng)爭(zhēng)力的新一代電子產(chǎn)品上市的時(shí)間和提高產(chǎn)品的檔次。
參考資料:
李善平,《Linux與嵌入式系統(tǒng)》
王學(xué)龍,《嵌入式Linux系統(tǒng)設(shè)計(jì)與應(yīng)用》
馬忠梅,《ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)》
邵貝貝,《嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II》第二版
何小慶,《嵌入式Linux:通信設(shè)備中的主流操作系統(tǒng)》,電子設(shè)計(jì)應(yīng)用,2003年第4期。
關(guān)鍵詞:
ARMCPU嵌入式操作系
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論