用一種技術(shù)統(tǒng)一企業(yè)級(jí)軟件和嵌入式軟件的方法
嵌入式軟件開發(fā)有別于企業(yè)級(jí)或桌面軟件開發(fā),而且它們采用的軟件開發(fā)技術(shù)也各有不同。一些嵌入式軟件公司試圖采用Visual Studio這樣的企業(yè)級(jí)解決方案實(shí)現(xiàn)用戶界面友好的開發(fā)環(huán)境,但是多主機(jī)、多目標(biāo)機(jī)、RTOS識(shí)別以及嵌入式連接等需求使得集成方案周期很長(zhǎng),難度大,而且不能被IDE制造商完全支持。另一些嵌入式軟件公司選擇編寫或獲取他們自己的IDE,而這樣做又會(huì)導(dǎo)致私有接口,降低嵌入式供應(yīng)商的核心競(jìng)爭(zhēng)力,使支持更加困難。
要改變上述狀況,就要采用一種開放源碼IDE。盡管其源于并應(yīng)用于企業(yè)領(lǐng)域,但由于具有靈活的技術(shù)和授權(quán)模式,因而能使嵌入式供應(yīng)商創(chuàng)建用戶友好的嵌入式工具。這種開放源碼IDE名為Eclipse。在過去幾年中,大部分嵌入式開發(fā)人員已經(jīng)轉(zhuǎn)向Eclipse作為他們選擇的平臺(tái)方案。大多數(shù)RTOS供應(yīng)商擁有Eclipse開發(fā)環(huán)境,而且大多數(shù)芯片/內(nèi)核供應(yīng)商已經(jīng)為那些希望開發(fā)自有架構(gòu)的軟件開發(fā)人員提供Eclipse鏈接。
從專有IDE向開放標(biāo)準(zhǔn)IDE轉(zhuǎn)移的動(dòng)力來自嵌入式軟件開發(fā)人員和嵌入式供應(yīng)商。嵌入式軟件開發(fā)人員受挫于必須為每個(gè)芯片或每個(gè)RTOS改變開發(fā)環(huán)境,而嵌入式供應(yīng)商也同樣受挫于必須建立和維護(hù)IDE。Eclipse環(huán)境能提供與處理器架構(gòu)、主機(jī)平臺(tái)或嵌入式RTOS無關(guān)的標(biāo)準(zhǔn)接口。
Eclipse的出現(xiàn)在嵌入式領(lǐng)域中具有重要的意義,具體表現(xiàn)為:
1. 主機(jī)、語言和環(huán)境的獨(dú)立性。大多數(shù)企業(yè)級(jí)開發(fā)工具都是專用于在某個(gè)平臺(tái)上開發(fā)特定類型應(yīng)用程序,通常要采用某種專用語言。而Eclipse是一種可滿足多種開發(fā)需求的IDE,這也是它適合嵌入式開發(fā)的原因之一。Eclipse有此功能得益于插件概念。Eclipse平臺(tái)本身不是專用于任何語言、主機(jī)或應(yīng)用開發(fā),但可通過滿足特殊要求的插件工具實(shí)現(xiàn)專用開發(fā)。
2. 項(xiàng)目模板。盡管Eclipse框架不是專用于某類型的應(yīng)用開發(fā),但有很多開放源碼Eclipse項(xiàng)目可提供很好的新產(chǎn)品開發(fā)切入點(diǎn)。這些項(xiàng)目利用Eclipse插件機(jī)制可進(jìn)行特定應(yīng)用程序開發(fā)。由于這些項(xiàng)目采用與Eclipse平臺(tái)相同的開放源碼授權(quán)方式,因此可以被下載,用作滿足特殊應(yīng)用要求的樣例、模板或啟動(dòng)代碼庫。嵌入式樣例請(qǐng)參考后文有關(guān)Eclipse項(xiàng)目的表述和圖例。
3. Eclipse公共許可(EPL)。EPL允許商業(yè)公司出售集成了開放源碼平臺(tái)和項(xiàng)目的開發(fā)工具,而非暗示這些開發(fā)工具應(yīng)免費(fèi)提供。這意味在面臨嵌入式開發(fā)需求的變化,以及嵌入式產(chǎn)業(yè)新技術(shù)快速發(fā)展時(shí),那些需要不斷完善和維護(hù)的復(fù)雜軟件能通過銷售而收回開發(fā)成本。
4. Eclipse的七大支柱。如上所述,由于企業(yè)級(jí)產(chǎn)品和嵌入式產(chǎn)品開發(fā)有所不同,因而企業(yè)級(jí)軟件提供商很難支持嵌入式需求,產(chǎn)品也很難反映開發(fā)人員的需求。而Eclipse的情況則不然。目前,Eclipse基金會(huì)約三分之一的成員公司或是嵌入式公司,或是在積極地服務(wù)于嵌入式產(chǎn)業(yè)。其中包括RTOS公司、芯片公司和嵌入式工具提供商。
由于認(rèn)識(shí)到嵌入式軟件開發(fā)人員的需求對(duì)Eclipse基金會(huì)的重要性,嵌入式領(lǐng)域現(xiàn)已被公認(rèn)為Eclipse基金會(huì)的七大支柱之一(如圖1所示)。這七大支柱表明了使用Eclipse的關(guān)鍵應(yīng)用類型。對(duì)嵌入式領(lǐng)域而言,關(guān)鍵項(xiàng)目中的可視性將確保這種技術(shù)能持續(xù)滿足嵌入式需求。
圖1:Eclipse平臺(tái)的七大支柱。
Eclipse的架構(gòu)被設(shè)計(jì)成可以接受任何數(shù)量的插件。插件可以是完整的環(huán)境、獨(dú)立的應(yīng)用程序或只是現(xiàn)有插件中的附加窗口。編寫插件有嚴(yán)格的指南,以確保在不同應(yīng)用中的一致性。另外還有向?qū)?、模板、菜單和例子等形式的幫助,以使?shí)際的API部分更為簡(jiǎn)單明了。Eclipse框架和插件的GUI部分都是用Java語言編寫的,而且Eclipse開發(fā)環(huán)境還提供了若干有用的工具套件。
Eclipse項(xiàng)目
開放源碼組織正在Eclipse平臺(tái)上開發(fā)大量的項(xiàng)目和子項(xiàng)目。這些項(xiàng)目滿足軟件開發(fā)的通用或特殊要求,并由這些特殊領(lǐng)域中擁有豐富經(jīng)驗(yàn)的公司管理或領(lǐng)導(dǎo)。對(duì)于那些想要通過設(shè)計(jì)自己的商用(或免費(fèi))產(chǎn)品以補(bǔ)足其核心技術(shù)的公司,這些項(xiàng)目可用作樣例或庫。
C/C++ Dev工具(CDT項(xiàng)目)是許多基于Eclipse的嵌入式軟件開發(fā)工具的基礎(chǔ)。該項(xiàng)目采用Eclipse平臺(tái)和相應(yīng)的項(xiàng)目導(dǎo)航作為IDE,其內(nèi)置的建立和生成GUI包括了GNU C/C++編譯器,允許方便地連接到其它嵌入式交叉編譯器。這個(gè)項(xiàng)目被用作標(biāo)準(zhǔn)Eclipse平臺(tái)上的插件,因此其它工具易于插入,并形成完整的嵌入式系統(tǒng)開發(fā)環(huán)境,從而使許多構(gòu)建和調(diào)試單元能夠充分利用開放源碼帶來的好處。
圖2:顯示頂層項(xiàng)目的Eclipse機(jī)構(gòu),綠色部分與嵌入式開發(fā)的關(guān)系密切。
設(shè)備軟件開發(fā)平臺(tái)(DSDP)是相對(duì)較新的一個(gè)項(xiàng)目,該項(xiàng)目考慮了調(diào)試一個(gè)嵌入式系統(tǒng)的諸多方面。最初的DSDP專注于為目標(biāo)管理、設(shè)備調(diào)試、移動(dòng)Java和嵌入式GUI建立基礎(chǔ)架構(gòu)。該項(xiàng)目還包含eRCP,它能與運(yùn)行在嵌入式系統(tǒng)上的Eclipse平臺(tái)精簡(jiǎn)版相接,并為運(yùn)行嵌入式應(yīng)用提供基于Java的平臺(tái)。
Enterprise插件
真正使人感興趣的是企業(yè)級(jí)軟件和嵌入式軟件開發(fā)之間的交疊。由于我們確信可以使用相同的Eclipse環(huán)境,因此我們可以著眼于不專用于任何一種開發(fā)、但對(duì)嵌入式領(lǐng)域極有價(jià)值的開發(fā)工具。例如源碼和版本管理。有許多工具能夠?qū)崿F(xiàn)代碼的跟蹤、版本化和管理,這些工具可以在源文件上使用,而與使用的語言、目標(biāo)處理器或編譯及建立工具無關(guān)。有許多工具將Eclipse插件用作前端,可被“插入”或使用,相鄰嵌入式開發(fā)工具也有Eclipse前端。每個(gè)工具通常有它自己的透視圖(perspective),這是Eclipse中的術(shù)語,代表Eclipse框架中的一系列窗口集合,從一個(gè)透視圖移動(dòng)到另一個(gè)透視圖(如從建立透視圖到調(diào)試)只需簡(jiǎn)單地按一下按鍵即可。訪問Eclipse平臺(tái)和Eclipse項(xiàng)目可登錄www.eclipse.org。訪問商用和開放源碼插件可登錄www.eclipseplugincentral.com。
本文小結(jié)
本文所述的Eclipse是實(shí)用的嵌入式開發(fā)環(huán)境。今后開發(fā)人員和嵌入式工具供應(yīng)商能充分利用其真正的即插即用特性為嵌入式開發(fā)創(chuàng)建更多樣例。企業(yè)級(jí)系統(tǒng)正被連接到越來越多的嵌入式系統(tǒng),因此能夠跨接兩個(gè)系統(tǒng)的環(huán)境變得非常重要,企業(yè)級(jí)與嵌入式工具的結(jié)合和開發(fā)將變得更為緊密。[!--empirenews.page--]