Windows CE嵌入式導航系統研究(軟體平台的選擇)

來源:互聯網
上載者:User
1.1.1 軟體平台的選擇1. 作業系統的選擇

儘管嵌入式系統有著無比廣闊的市場需求和發展前景,但嵌入式系統的發展多年來卻經曆了一個曲折和痛苦的曆程。隨著微處理器的產生,價格低廉、結構小巧的CPU和外設串連提供了穩定可靠的硬體架構,那麼限制嵌入式系統發展的瓶頸就突出表現在了軟體方面。從八十年代末開始,陸續出現了一些嵌入式作業系統,比較著名的有Tornado/VxWorkx、pSOSystem、Neculeus和Windowss CE、QNX、VRTX,以及沸沸揚揚的“女媧計劃”,中國人自己的嵌入式作業系統HOPEN和現在談論最多的嵌入式Linux作業系統等等。可用於嵌入式系統軟體開發的作業系統很多,但關鍵是如何選擇一個適合你所開發項目的作業系統,我們認為應該從以下幾點進行考慮;

(1) 作業系統提供那些開發工具。有些即時作業系統(RTOS)只支援該系統拱應商的開發工具。也就是說,還必須向作業系統供應商擷取編譯器、調試器等。而有些作業系統使用廣泛且有第三方工具可用,因此,選擇的餘地比較大。

(2) 作業系統向硬體介面移植的難度。作業系統到硬體的移植是一個重要的問題。它是關係到整個系統能否按期完工的一個關鍵因素。因此我們要選擇那些可移植性程度高的作業系統。從而避免作業系統難以向硬體移植而帶來的種種困難,加速系統的開發進度。

(3) 作業系統的記憶體要求。均衡考慮是否需要額外花錢去購買RAM或EEPROM來迎合作業系統對記憶體的較大要求。有些作業系統對記憶體的要求是target dependent。如Tornado/VxWorkx,開發人員能按照應用需求分配所需的資源,而不是為作業系統分配資源。從需要幾K位元組儲存區的嵌入設計到需求更多的作業系統功能的複雜的高端即時應用,開發人員可任意選擇多達80種不同的配置。

(4) 開發人員是否熟悉此作業系統及其提供的API。

(5) 作業系統是否有提供硬體的驅動程式,如網卡等。

(6) 作業系統是否具有可剪裁性,即能否根據實際需要進行系統功能的剪裁。有些作業系統具有較強的可剪裁性,如嵌入式Linux、Tornado/VxWorks等等。

(7) 作業系統的即時性。即時性分為:軟即時和硬即時。有些嵌入式作業系統只能提供軟即時,如WindowsCE。作為微軟大名鼎鼎的“維那斯”,Microsoft Windows CE 2.0 是32位, Windows相容,小核心,可伸縮即時作業系統,滿足大部分嵌入式和非嵌入式應用的需要。但不夠即時,屬於軟即時嵌入式作業系統。

2. 程式設計語言的選擇

(1) 通用性。隨著微處理器技術的不斷髮展,其功能越來越具體,種類越來越多,但不同種類的微處理器都有自己專用的組合語言。這就為系統開發人員設定了一個巨大的障礙,使得系統編程更加困難,軟體重用無法實現,而進階語言一般和具體機器的硬體結構聯絡較少,比較流行的進階語言對多數微處理器都有良好的支援,通用性較好

(2) 可移植性程度。由於組合語言和具體的微處理器密切相關,為某個微處理器設計的程式不能直接移植到另一個不同種類的微處理器上使用,因此,移植性差;而進階語言對所有微處理器都是通用的,因此,程式可以在不同的微處理器上運行,可移植性較好。這是實現軟體重用的基礎。

(3) 執行效率。一般來說,越是進階的語言,其編譯器和開銷就越大,應用程式也就越大、越慢。但單純依靠低級語言,如組合語言來進行應用程式的開發,帶來的問題是編程複雜、開發週期長。因此存在一個開發時間和運行效能間的權衡。

(4) 可維護性。低級語言如組合語言,可維護性不高。進階語言程式往往是模組化設計,各個模組之間的介面是固定的。因此,當系統出現問題時,可以很快地將問題定位到某個模組內,並儘快得到解決。另外,模組化設計也便於系統功能的擴充和升級。

(5) 基本效能。在嵌入式系統開發過程中使用的語言種類很多,比較廣泛應用的進階語言有:Ada、C/C++、Modula-2和JAVA等。Ada語言定義嚴格,易讀易懂,有較豐富的庫程式支援,目前在國防、航空、航天等相關領域應用比較廣泛,未來仍將在這些領域佔有重要地位。C語言具有廣泛的庫程式支援,目前在嵌入式系統中是應用最廣泛的程式設計語言,在將來很長一段時間內仍將在嵌入式系統應用領域占重要地位。C++是一種物件導向的程式設計語言,目前在嵌入式系統設計也得到了廣泛的應用,如GNU C++。Visual C++,是一種整合式開發環境,支援可視化編程,廣泛應用於GUI程式開發。但C與C++相比,C++的目標代碼往往比較龐大和複雜,在嵌入式系統應用中應充分考慮這一因素。Modula-2定義清晰,支援豐富,具有較好的模組化結構,在教學科研方面有較廣泛的應用。雖然該語言的開發應用一直比較平緩,但近兩年在歐洲有所複蘇。Java語言相對年輕,但有很強的跨平台特性,目前發展勢頭較為強勁。它的一次編程,到處可用的特性使得它在很多領域倍受歡迎。隨著網路技術和嵌入式技術的不斷髮展,Java及嵌入式Java的應用也將越來越廣泛。

3. 開發工具的選擇

(1) 系統調試器的功能。系統調試特別是遠端偵錯是一個重要的功能。

(2) 支援庫函數。許多開發系統提供大量使用的庫函數和模板代碼。如大家 比較熟悉的C++編譯器就帶有標準的模板庫,它提供了一套用於定義各種有用的集裝、儲存、搜尋、排序對象。

(3) 編譯器開發商是否持續升級編譯器。

(4) 串連程式是否支援所有的檔案格式和符號格式。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.