新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何選擇一個ARM CPU嵌入式操作系統

        如何選擇一個ARM CPU嵌入式操作系統

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

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 城固县| 滕州市| 岳普湖县| 綦江县| 讷河市| 神木县| 铜梁县| 霍州市| 石门县| 边坝县| 正定县| 胶州市| 中西区| 昔阳县| 宁德市| 和平县| 台东县| 巴彦淖尔市| 调兵山市| 荥阳市| 嘉荫县| 铁岭市| 南和县| 天镇县| 盐池县| 镇安县| 新建县| 礼泉县| 夏津县| 凤城市| 辽中县| 同心县| 鹰潭市| 清镇市| 咸阳市| 星座| 邻水| 娄烦县| 内黄县| 大姚县| 民丰县|