學(xué)習(xí)啦 > 論文大全 > 學(xué)科論文 > 計(jì)算機(jī)論文 > Linux嵌入式系統(tǒng)開發(fā)平臺選型探討論文

Linux嵌入式系統(tǒng)開發(fā)平臺選型探討論文

時(shí)間: 謝樺657 分享

Linux嵌入式系統(tǒng)開發(fā)平臺選型探討論文

  嵌入式系統(tǒng)開發(fā)就是對于除了電腦之外的所有電子設(shè)備上操作系統(tǒng)的開發(fā),開發(fā)對象有手機(jī),掌上電腦,機(jī)電系統(tǒng)等。以下是學(xué)習(xí)啦小編今天為大家精心準(zhǔn)備的:Linu_嵌入式系統(tǒng)開發(fā)平臺選型探討修改論文。內(nèi)容僅供參考,歡迎閱讀!

  Linu_嵌入式系統(tǒng)開發(fā)平臺選型探討全文如下:

  摘要:使用進(jìn)行嵌入式產(chǎn)品開發(fā)有一個(gè)很大的優(yōu)勢,就是開發(fā)資源豐富,且成本低廉;但是,技術(shù)路線復(fù)雜多樣,專業(yè)人才相對匱乏是Linu_嵌入式系統(tǒng)開發(fā)面臨的一個(gè)難題。本文從實(shí)際應(yīng)用的角度,探討和研究Linu_嵌入式系統(tǒng)開發(fā)中的平臺選型問題,以期望對各位Linu_開發(fā)研究者有些許裨益。

  關(guān)鍵詞:嵌入式系統(tǒng) Linu_開發(fā)平臺 選型

  1 嵌入式系統(tǒng)與Linu_

  按照電氣工程師協(xié)會的一個(gè)定義:嵌入式系統(tǒng)是用來控制或監(jiān)視機(jī)器、裝置或工廠等的大規(guī)模系統(tǒng)的設(shè)備。具體說來,它是電腦軟件和硬件的綜合體;是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁減,從而能夠適應(yīng)實(shí)際應(yīng)用中對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。一般來說,嵌入式系統(tǒng)不能使用通用型計(jì)算機(jī),而且運(yùn)行的是固化的軟件,終端用戶很難或者不可能改變固件。而Linu_也早已成為IT界家喻戶曉的一個(gè)名字。概括說來,將Linu_應(yīng)用于嵌入式系統(tǒng)的開發(fā)有如下一些優(yōu)點(diǎn):

  ① Linu_自身具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并且可以跨越在嵌入式系統(tǒng)開發(fā)中仿真工具(ICE)的障礙。

 ?、?內(nèi)核的完全開放,使得可以自己設(shè)計(jì)和開發(fā)出真正的硬實(shí)時(shí)系統(tǒng);對于軟實(shí)時(shí)系統(tǒng),在Linu_中也容易得到實(shí)現(xiàn)。

 ?、?強(qiáng)大的網(wǎng)絡(luò)支持,使得可以利用Linu_的網(wǎng)絡(luò)協(xié)議棧將其開發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。

  2 嵌入式系統(tǒng)設(shè)計(jì)的過程

  按照嵌入式系統(tǒng)的工程設(shè)計(jì)方法,嵌入式系統(tǒng)的設(shè)計(jì)可以分成三個(gè)階段:分析、設(shè)計(jì)和實(shí)現(xiàn)。分析階段是確定要解決的問題及需要完成的目標(biāo),也常常被稱為“需求階段”;設(shè)計(jì)階段主要是解決如何在給定的約束條件下完成用戶的要求;實(shí)現(xiàn)階段主要是解決如何在所選擇的硬件和軟件的基礎(chǔ)上進(jìn)行整個(gè)軟、硬件系統(tǒng)的協(xié)調(diào)實(shí)現(xiàn)。在分析階段結(jié)束后,通常開發(fā)者面臨的一個(gè)棘手的問題就是硬件平臺和軟件平臺的選擇,因?yàn)樗暮脡闹苯佑绊懼鴮?shí)現(xiàn)階段的任務(wù)完成。

  通常硬件和軟件的選擇包括:處理器、硬件部件、操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件調(diào)試工具、軟件組件等。

  在上述選擇中,通常,處理器是最重要的,同時(shí)操作系統(tǒng)和編程語言也是非常關(guān)鍵的。處理器的選擇往往同時(shí)會限制操作系統(tǒng)的選擇,操作系統(tǒng)的選擇又會限制開發(fā)工具的選擇。

  3 硬件平臺的選擇

  3.1 處理器的選擇

  嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器。據(jù)不完全統(tǒng)計(jì),目前全世界嵌入式處理器的品種總量已經(jīng)超過1000多種,流行體系結(jié)構(gòu)有30幾個(gè)系列。但與全球PC市場不同的是,沒有一種微處理器和微處理器公司可以主導(dǎo)嵌入式系統(tǒng),僅以32位的CPU而言,就有100種以上嵌入式微處理器。由于嵌入式系統(tǒng)設(shè)計(jì)的差異性極大,因此選擇是多樣化的。

  調(diào)查上市的CPU供應(yīng)商,有些公司如Motorola、Intel、AMD很有名氣,而有一些小的公司,如QED(Santa Clara.CA)雖然名氣很小,但也生產(chǎn)很優(yōu)秀的微處理器。另外,有一些公司,如ARM、MIPS等,只設(shè)計(jì)但并不生產(chǎn)CPU,他們把生產(chǎn)權(quán)授予世界各地的半導(dǎo)體制造商。ARM是近年來在嵌入式系統(tǒng)有影響力的微處理器制造商,ARM的設(shè)計(jì)非常適用于小的電源供電系統(tǒng)。Apple在Newton手持計(jì)算機(jī)中使用ARM,另外有幾款數(shù)字無線電話也在使用ARM。

  設(shè)計(jì)者在選擇處理器時(shí)要考慮的主要因素有:

 ?、?處理性能。一個(gè)處理器的性能取決于多個(gè)方面的因素,如時(shí)鐘頻率,內(nèi)部寄存器的大小,指令是否對等處理所有的寄存器等。對于許多需用處理器的嵌入式系統(tǒng)設(shè)計(jì)來說,目標(biāo)不是在于挑選速度最快的處理器,而是在于選取能夠完成作業(yè)的處理器和I/O子系統(tǒng)。如果是面向高性能的應(yīng)用設(shè)計(jì),那么建議考慮某些新的處理器,其價(jià)格相對低廉,如IBM和Motorola Power PC。

  ② 技術(shù)指標(biāo)。當(dāng)前,許多嵌入式處理器都集成了外圍設(shè)備的功能,減少了芯片的數(shù)量,降低了整個(gè)系統(tǒng)的開發(fā)費(fèi)用。開發(fā)人員首先考慮的是,系統(tǒng)所要求的一些硬件能否無需過多的膠合邏輯(GL,Glue Logic)就可以連接到處理器上。其次是考慮該處理器的一些支持芯片,如DMA控制器,內(nèi)存管理器,中斷控制器,串行設(shè)備、時(shí)鐘等的配套。

 ?、?功耗。嵌入式微處理器最大并且增長最快的市場是手持設(shè)備、電子記事本、PDA、手機(jī)、GPS導(dǎo)航器、智能家電等消費(fèi)類電子產(chǎn)品。這些產(chǎn)品中選購的微處理器,典型的特點(diǎn)是要求高性能、低功耗。許多CPU生產(chǎn)廠家已經(jīng)進(jìn)入了這個(gè)領(lǐng)域。今天,用戶可以買到一顆嵌入式的微處理器,其速度像筆記本中的Pentium一樣快;而它僅使用普通電池供電即可,并且價(jià)格很便宜。如果用于工業(yè)控制,則對這方面的考慮較弱。

 ?、?軟件支持工具。僅有一個(gè)處理器,沒有較好的軟件開發(fā)工具的支持也是不行的,因此選擇合適的軟件開發(fā)工具對系統(tǒng)的實(shí)現(xiàn)會起到很好的作用。

 ?、?是否內(nèi)置調(diào)試工具。處理器如果內(nèi)置調(diào)試工具可以大大縮小調(diào)試周期,降低調(diào)試的難度。

 ?、?供應(yīng)商是否提供評估板。許多處理器供應(yīng)商可以提供評估板來驗(yàn)證理論是否正確,決策是否得當(dāng)。

  3.2 硬件部件選擇的其它因素

 ?、?生產(chǎn)規(guī)模。打算做1套?多套?還是規(guī)模生產(chǎn)?如果生產(chǎn)規(guī)模比較大,可以自己設(shè)計(jì)和制備硬件,這樣可以降低成本。反之,最好從第三方購買主板和I/O板卡。

 ?、?開發(fā)的市場目標(biāo)。如果想使產(chǎn)品盡快發(fā)售,以獲得競爭力,此時(shí)要盡可能買成熟的硬件;反之,可以自己設(shè)計(jì)硬件,降低成本。

 ?、?軟件對硬件的依賴性。軟件是否可以在硬件沒有到位的時(shí)候并行設(shè)計(jì)或先行開發(fā)。

 ?、?只要可能,盡量選擇使用普通的硬件。在 CPU 及架構(gòu)的選擇上,一個(gè)原則是:只要有可替代的方案,盡量不要選擇 Linu_ 尚不支持的硬件平臺。

Linux嵌入式系統(tǒng)開發(fā)平臺選型探討論文

  4 軟件平臺的選擇

  圖1所示的嵌入式軟件的開發(fā)流程,主要涉及到代碼編程、交叉編譯、交叉連接、下載到目標(biāo)板和調(diào)試等幾個(gè)步驟,因此軟件平臺的選擇也涉及到以下幾個(gè)方面。

  4.1 操作系統(tǒng)的選擇

  (1)操作系統(tǒng)選擇應(yīng)考慮的因素

  硬件方案確定之后,操作系統(tǒng)的選擇就相對輕松了。硬件的不同,會影響操作系統(tǒng)的選擇。低端無MMU(Memory Management Unit,存儲器管理單元)的CPU,要使用uClinu_ 操作系統(tǒng);而相對高端的硬件,則可以用普通的嵌入式 Linu_ 操作系統(tǒng)。uClinu_ 和普通的 Linu_ 有各自的優(yōu)勢和缺點(diǎn)??捎糜谇度胧较到y(tǒng)軟件開發(fā)的操作系統(tǒng)很多,但關(guān)鍵是如何選擇一個(gè)適合開發(fā)項(xiàng)目的操作系統(tǒng)。經(jīng)過多年的開發(fā)實(shí)踐,筆者認(rèn)為應(yīng)該從以下幾點(diǎn)進(jìn)行考慮:

 ?、?操作系統(tǒng)提供的開發(fā)工具。有些實(shí)時(shí)操作系統(tǒng)(RTOS)只支持該系統(tǒng)供應(yīng)商的開發(fā)工具,因此,還必須向操作系統(tǒng)供應(yīng)商獲取編譯器、調(diào)試器等;而有些操作系統(tǒng)使用廣泛,且有第三方工具可用,因此,選擇的余地比較大。

  ② 操作系統(tǒng)向硬件接口移植的難度。操作系統(tǒng)到硬件的移植是一個(gè)重要的問題,是關(guān)系到整個(gè)系統(tǒng)能否按期完工的一個(gè)關(guān)鍵因素。因此,要選擇那些可移植性程度高的操作系統(tǒng),避免操作系統(tǒng)難以向硬件移植而帶來的種種困難,加速系統(tǒng)的開發(fā)進(jìn)度。

 ?、?操作系統(tǒng)的內(nèi)存要求。均衡考慮是否需要額外花錢去購買RAM或EEPROM來迎合操作系統(tǒng)對內(nèi)存的較大要求。

 ?、?開發(fā)人員是否熟悉此操作系統(tǒng)及其提供的API。

  ⑤ 操作系統(tǒng)是否提供硬件的驅(qū)動程序,如網(wǎng)卡等。

 ?、?操作系統(tǒng)的可剪裁性。有些操作系統(tǒng)具有較強(qiáng)的可剪裁性,如嵌入式Linu_、Tornado/V_Works等等。

 ?、?操作系統(tǒng)的實(shí)時(shí)性能。

  (2)幾類嵌入式Linu_系統(tǒng)的比較

  嵌入式Linu_系統(tǒng)方面的產(chǎn)品主要分為三類:

  第一類是專門為Linu_的嵌入式應(yīng)用而做的。如何讓Linu_更小、更容易嵌入到體積要求和功能、性能要求更高的硬件中去,是他們的產(chǎn)品開發(fā)方向,如MontaVista的MontaVista Linu_等。第二類是專門為Linu_的實(shí)時(shí)特性設(shè)計(jì)的產(chǎn)品。將Linu_開發(fā)成實(shí)時(shí)系統(tǒng)尤其是硬實(shí)時(shí)系統(tǒng),應(yīng)用于一些關(guān)鍵的控制場合(不僅僅是信息電器)。如,F(xiàn)smlabs公司開發(fā)出來的RT-Linu_產(chǎn)品已經(jīng)用在工業(yè)控制的很多方面;葡萄牙的Coimbra大學(xué)已經(jīng)利用RT-Linu_實(shí)現(xiàn)了化工生產(chǎn)控制廠里用來控制反應(yīng)和程序控制的系統(tǒng)。第三類的產(chǎn)品是將實(shí)時(shí)性和嵌入式方案結(jié)合起來的方案。很多公司都這么做,并且提供集成化的開發(fā)方案,如Lineo、TimeSys等等。

  因此選擇操作系統(tǒng)時(shí),要根據(jù)自己的嵌入式要求和實(shí)時(shí)性要求,選擇適合自己的嵌入式Linu_;同時(shí),和選擇硬件的原則一樣,如果可能,盡量選擇使用普通的嵌入式 Linu_ 系統(tǒng)。

  4.2 編程語言的選擇

  編程語言的選擇主要考慮以下因素:

  ① 通用性。不同種類的微處理器都有自己專用的匯編語言。這就為系統(tǒng)開發(fā)者設(shè)置了一個(gè)巨大的障礙,使得系統(tǒng)編程更加困難,軟件重用無法實(shí)現(xiàn)。而高級語言一般和具體機(jī)器的硬件結(jié)構(gòu)聯(lián)系較少,多數(shù)微處理器都有良好的支持,通用性較好。

 ?、?可移植性程度。匯編語言和具體的微處理器密切相關(guān),為某個(gè)微處理器設(shè)計(jì)的程序不能直接移植到另一個(gè)不同種類的微處理器上使用,移植性差;而高級語言對所有微處理器都是通用的,程序可以在不同的微處理器上運(yùn)行,可移植性較好。

  ③ 執(zhí)行效率。一般來說,越是高級的語言,其編譯器和開銷就越大,應(yīng)用程序也就越大、越慢;但單純依靠低級語言,如匯編語言來進(jìn)行應(yīng)用程序的開發(fā),帶來的問題是編程復(fù)雜、開發(fā)周期長。因此,存在一個(gè)開發(fā)時(shí)間和運(yùn)行性能間的權(quán)衡問題。

 ?、?可維護(hù)性。低級語言如匯編語言,可維護(hù)性不高。高級語言程序往往是模塊化設(shè)計(jì),各個(gè)模塊之間的接口是固定的。當(dāng)系統(tǒng)出現(xiàn)問題時(shí),可以很快地將問題定位到某個(gè)模塊內(nèi),并盡快得到解決。另外,模塊化設(shè)計(jì)也便于系統(tǒng)功能的擴(kuò)充和升級。

  幾種開發(fā)語言的比較:

  在嵌入式系統(tǒng)開發(fā)過程中使用的語言種類很多,比較廣泛應(yīng)用的高級語言有:Ada、C/C++、Modula-2和Java等。Ada語言定義嚴(yán)格,易讀易懂,有較豐富的庫程序支持,目前在國防、航空、航天等相關(guān)領(lǐng)域應(yīng)用比較廣泛,未來仍將在這些領(lǐng)域占有重要地位。C語言具有廣泛的庫程序支持,目前在嵌入式系統(tǒng)中是應(yīng)用最廣泛的編程語言,在將來很長一段時(shí)間內(nèi)仍將在嵌入式系統(tǒng)應(yīng)用領(lǐng)域占重要地位。C++是一種面向?qū)ο蟮木幊陶Z言,目前在嵌入式系統(tǒng)設(shè)計(jì)中也得到了廣泛的應(yīng)用,如GNU C++。Visual C++,是一種集成開發(fā)環(huán)境,支持可視化編程,廣泛應(yīng)用于GUI程序開發(fā)。但C與C++相比,C++的目標(biāo)代碼往往比較龐大和復(fù)雜,在嵌入式系統(tǒng)應(yīng)用中應(yīng)充分考慮這一因素。Modula-2定義清晰,支持豐富,具有較好的模塊化結(jié)構(gòu),在教學(xué)科研方面有較廣泛的應(yīng)用。雖然該語言的開發(fā)應(yīng)用一直比較平緩,但近兩年在歐洲有所復(fù)蘇。Java語言相對年輕,但有很強(qiáng)的跨平臺特性,目前發(fā)展勢頭較為強(qiáng)勁。Java語言的“一次編程,到處可用”的特性,使得它在很多領(lǐng)域備受歡迎。隨著網(wǎng)絡(luò)技術(shù)和嵌入式技術(shù)的不斷發(fā)展,Java及嵌入式Java的應(yīng)用也將越來越廣泛,但是Java消耗硬件資源較大。

  4.3 集成開發(fā)環(huán)境考慮的因素

  集成開發(fā)環(huán)境IDE(Integrated Development Environment)應(yīng)考慮以下因素:

 ?、?系統(tǒng)調(diào)試器的功能。系統(tǒng)調(diào)試特別是遠(yuǎn)程調(diào)試是一個(gè)重要的功能。

 ?、?支持庫函數(shù)。許多開發(fā)系統(tǒng)提供大量使用的庫函數(shù)和模板代碼,如大家比較熟悉的C++編譯器就帶有標(biāo)準(zhǔn)的模板庫。它提供了一套用于定義各種有用的集裝、存儲、搜尋、排序?qū)ο?。與選擇硬件和操作系統(tǒng)的原則一樣:除非必要,盡量采用標(biāo)準(zhǔn)的 glibc。

 ?、?編譯器開發(fā)商是否持續(xù)升級編譯器。

 ?、?連接程序是否支持所有的文件格式和符號格式。

  4.4 硬件調(diào)試工具的選擇

  好的軟件調(diào)試程序可以有效地發(fā)現(xiàn)大多數(shù)的錯誤,但是如果再選擇一個(gè)好的硬件調(diào)試就會達(dá)到事半功倍的效果。常用的硬件調(diào)試工具有以下幾種:

 ?、?實(shí)時(shí)在線仿真器(ICE,In-Circuit Emulator)。用戶從仿真插頭向ICE看,ICE應(yīng)是一個(gè)可被控制的MCU。ICE是通過一根短電纜連接到目標(biāo)系統(tǒng)上的。該電纜的一端有一個(gè)插件,插到處理器的插座上,而處理器則插到這個(gè)插件上。ICE支持常規(guī)的調(diào)試操作,如單步運(yùn)行、斷點(diǎn)、反匯編、內(nèi)存檢查、源程序級的調(diào)試等等。

  ② 邏輯分析儀。邏輯分析儀最常用于硬件調(diào)試,但也可用于軟件調(diào)試。它是一種無源器件,主要用于監(jiān)視系統(tǒng)總線的事件.

 ?、?ROM仿真器。ROM仿真器用于插入目標(biāo)上的ROM插座中的器件,用于仿真ROM芯片??梢詫⒊绦蛳螺d到ROM仿真器中,然后調(diào)試目標(biāo)上的程序,就好像程序燒結(jié)在PROM中一樣,從而避免了每次修改程序后直接燒結(jié)的麻煩。

  ④ 在線調(diào)試OCD或在線仿真(on-chip emulator)

  特別的硅基材料以及定制和CPU引腳的串行連接,在這種特殊的CPU芯片上使用OCD (On-Chip Debugging),才能發(fā)揮出OCD的特點(diǎn)。用低端適配器就可以把OCD端口和主工作站以及前端調(diào)試軟件連接起來。從OCD的基本形式看來,它的特點(diǎn)和單一的ROM監(jiān)測器是一致的,但是不像后者那樣,需要專門的程序以及額外的通信端口。

  4.5 軟件組件的選擇

  有些軟件組件是免費(fèi)的,有些軟件組件是授權(quán)的。授權(quán)軟件組件的費(fèi)用一般都很高,但大都經(jīng)過嚴(yán)格的測試,可靠性高,調(diào)試時(shí)間短?,F(xiàn)在也有一些免費(fèi)的自由軟件組件,它們的性能、可靠性也很好。因此開發(fā)人員在選擇的時(shí)候要加以權(quán)衡,確定哪種方案更好。

  5 展 望

  國外的開發(fā)已經(jīng)如火如荼,國內(nèi)的開發(fā)也不甘示弱。Linu_在嵌入式系統(tǒng)中具有強(qiáng)大的生命力和利用價(jià)值,很多公司和大學(xué)都不同程度地表現(xiàn)出對這個(gè)方面的興趣。有理由相信,嵌入式Linu_的發(fā)展將帶領(lǐng)我們進(jìn)入嵌入式系統(tǒng)的新時(shí)代!

364074