2007年5月19日 星期六

透過單一技術統合企業級軟體和嵌入式軟體

電子工程專輯

嵌入式軟體的開發有別於企業級或桌上型軟體,同時它們採用的軟體開發技術也各不相同。一些嵌入式軟體公司試圖運用Visual Studio這類企業級解決方案實現用戶友善的用戶開發環境,但是多主機、多目標、RTOS識別以及嵌入式連接等需求不斷拉長整合方案週期,並提高難度,同時也無法獲得IDE製造商的完整支援。另一些嵌入式軟體公司選擇撰寫或獲得自有的IDE,但這種做法會導致專有介面,降低嵌入式供應商的核心競爭力,使支援更加困難。

要改變上述狀況,就必須採用開放原始碼IDE。儘管其源於並應用於企業領域,但由於具備靈活的技術和授權模式,能使嵌入式供應商製作友善的嵌入式工 具。這種開放原始碼IDE名為Eclipse。過去幾年內,大部份嵌入式開發人員已經轉向Eclipse作為其選擇的平台方案。多數RTOS供應商擁有 Eclipse開發環境,同時多數晶片/核心供應商也已為希望開發自有架構的軟體開發人員提供Eclipse鏈接。

從專有IDE向開放標準IDE轉移的動力來自嵌入式軟體開發人員和嵌入式供應商。嵌入式軟體開發人員對於必須為每個晶片或每個RTOS改 變開發環境深感挫折,而嵌入式供應商也同樣受挫於必須設立和維護IDE。而Eclipse環境能提供一種無需考慮處理器架構、主機平台或嵌入式RTOS的 標準介面。

Eclipse的問世在嵌入式領域中具有重要的意義,包括:

1. 主機、語言和環境的獨立性。大多數企業級開發工具都是專用於某個平台上開發特定類型應用程式,通常須採用某種專用語言。而Eclipse是一種可滿足多種開發需求的IDE,這也是它適合嵌入式開發的原因之一。Eclipse能實現這些功能,主要得益於外掛程式概念。Eclipse平台本身並不專用於任何語言、主機或應用開發,但可透過能滿足特殊需求的外掛程式工具實現專用開發。

2. 專案模板。儘管Eclipse框架並非專用於某類型的應用開發,但許多開放原始碼Eclipse專案可提供很好的新產品開發切入點。這些專案利用 Eclipse外掛程式機制,而後Eclipse環境可透過該專案進行特定應用程式開發。由於這些專案採用與Eclipse平台相同的開放原始碼授權方 式,因此可以被下載,作為滿足特殊應用要求的範例、模板或啟動程式碼。

3. Eclipse公共授權(EPL)。EPL允許企業出售整合了開放原始碼平台和專案的開發工具,而非免費提供。這意味在面臨嵌入式開發需求的變化及嵌入式產業新技術的快速發展時,需要不斷完善和維護的複雜軟體能透過銷售而回收開發成本。

4. Eclipse的七大支柱。如上所述,由於企業級產品和嵌入式產品開發有所不同,企業級軟體供應商很難支援嵌入式需求,產品也很難反映開發人員的需求。而Eclipse則不然。目前,Eclipse基金會約三分之一的成員為嵌入式公司,或是正為嵌入式產業提供服務。其中包括RTOS公司、晶片公司和嵌入式工具供應商。

由於體認到嵌入式軟體開發人員的需求對Eclipse基金會持續發展的重要性,嵌入式社群現已被公認為Eclipse基金會的七大支柱之一(如圖1所示)。

圖1:Eclipse平台的七大支柱。
圖1:Eclipse平台的七大支柱。

這七大支柱顯示了使用Eclipse的關鍵應用類型。對嵌入式領域而言,關鍵專案中的可視性將確保這種技術能持續滿足嵌入式需求。

Eclipse的架構被設計成可接受任何數量的外掛程式。外掛程式可以是完整的環境、獨立的應用程式或只是現有外掛程式中的附加視窗。編寫 外掛程式有嚴格的指導,以確保在不同應用中的一致性。另外還有導引精靈、模板、選單和範例等協助,以讓實際的API更加簡單明瞭。Eclipse框架和外 掛程式的GUI部份均採用Java語言編寫,且Eclipse開發環境還提供了一些有用的工具套件。

Eclipse專案

開放原始碼組織正於Eclipse平台上開發大量的專案和子專案。這些專案能滿足軟體開發的通用或特殊要求,並由這些特殊領域中擁有豐富經驗的公司管理或領導。對於那些想透過設計自己的商用(或免費)產品以補足其核心技術的公司,這些專案可作為其範例或基礎。

C/C++ Dev工具(CDT專案)是許多基於Eclipse之嵌入式軟體開發工具的基礎。該專案採用Eclipse平台和相應的專案瀏覽器(project navigator)作為IDE,並具備一個內含GNU C/C++編譯器的內建GUI,能方便地連接到其它嵌入式交叉編譯器。這個專案被作為標準Eclipse平台上的外掛程式,讓其它工具易於插入,並形成完 整的嵌入式系統開發環境,使許多建構和除錯單元能夠充分利用開放原始碼帶來的好處。

設備軟體開發平台(DSDP)是相對較新的一種專案,該專案對一個嵌入式系統的除錯進行了多方考量。最初的DSDP專注於為目標管理、設 備除錯、行動Java和嵌入式GUI設立基礎架構。該專案還包含eRCP,它能與執行在嵌入式系統上的Eclipse平台精簡版銜接,並為執行嵌入式應用 提供基於Java的平台。

">
圖2:頂層專案的Eclipse組織結構,綠色部份與嵌入式開發的關係最為密切。

Enterprise外掛程式

真正使人感興趣的是企業級軟體和嵌入式軟體開發間的重疊。由於我們確信可以使用相同的Eclipse環境,因此我們可著眼於不專用於任何一 種開發、但對嵌入式領域極有價值的開發工具。例如原始碼和版本管理。有許多工具能實現程式碼的追蹤、版本化和管理,這些工具可以在原始文件上使用,而與使 用的語言、目標處理器或編譯及設立工具無關。有許多工具將Eclipse外掛程式作為前端,可被‘插入’或使用,相鄰嵌入式開發工具也有Eclipse前 端。每個工具通常有它自己的透視圖(perspective),這是Eclipse中的術語,代表Eclipse框架中的一系列視窗集合,從一個透視圖移 動到另一個透視圖(如從設立透視圖到除錯)只需簡單地按一下按鍵即可。

本文小結

本文描述了一種實用的Eclipse嵌入式開發環境。未來開發人員和嵌入式工具供應商將能充分利用其真正的即插即用特性,為嵌入式開發製作 更多範例。企業級系統正被連接到越來越多的嵌入式系統,因此,能跨接兩個系統的環境變得非常重要,企業級與嵌入式工具的結合和開發將更加緊密。

作者:Robert Day

行銷副總裁

LynuxWorks公司

沒有留言: