1. 嵌入式系統開發所面臨的問題
嵌入式軟件開發有別于桌面軟件系統開發的一個顯著的特點,是它一般需要一個交叉編譯和調試環境,即編輯和編譯軟件在主機上進行(如在PC機的Windows操作系統下),編譯好的軟件需要下載到目標機上運行(如在一個PPC的目標機上的VxWorks操作系統下),主機和目標機建立起通訊連接,并傳輸調試命令和數據。由于主機和目標機往往運行著不同的操作系統,而且處理器的體系結構也彼此不同,這就提高了嵌入式開發的復雜性。
總的來說,嵌入式開發所面臨的問題主要表現在以下幾個方面:
1.1涉及多種CPU及多種OS
嵌入式的CPU或處理器可謂多種多樣,這包括了Pentium、MIPS、PPC、ARM,XScale等,而且應用都很廣,在其上運行的操作系統也有不少,如VxWorks、Linux、 Nuclears、WinCE等等,即使在一個公司之內,也會同時使用好幾種處理器,甚至幾種嵌入式操作系統。如果需要同時調試多種類型的板子,每個板子上又運行著多個任務或進程,那復雜性是可想而知的。
1.2 開發工具種類繁多
不僅各種操作系統有各自的開發工具,在同一系統下開發的不同階段也有不同的開發工具。如在用戶的目標板開發初期,需要硬件仿真器來調試硬件系統和基本的驅動程序,在調試應用程序階段可以使用交互式的開發環境進行軟件調試,在測試階段需要一些專門的測試工具軟件進行功能和性能的測試,在生產階段需要固化程序及出廠檢測等等。一般每一種工具都要從不同的供應商處購買,都要單獨去學習和掌握,這無疑增加了整個公司的支出和管理的難度。
1.3 對目標系統的觀察和控制
由于嵌入式硬件系統千差萬別,軟件模塊和系統資源也多種多樣,要使系統能正常工作,軟件開發者必須要對目標系統具有完全的觀察和控制能力,例如硬件的各種寄存器、內存空間,操作系統的信號量、消息隊列、任務、堆棧等。
此外,嵌入式系統變化更新比較快,對開發時間要求比較緊,尤其是消費類產品更是如此,如果有一套功能強大的嵌入式軟件集成開發工具可以滿足嵌入式軟件開發各個階段的需求,同時又使用方便,界面友好,那是最理想不過了。美國風河系統公司新近推出的“Workbench”嵌入式軟件開發平臺正是這樣一個“全能選手”。
2.Workbench嵌入式開發平臺的特點和優勢
風河公司一直致力于嵌入式軟件領域的研究,其Tornado開發環境和VxWorks嵌入式操作系統產品在嵌入式領域中應用非常廣泛。風河公司的新一代Workbench開發平臺繼承了其原有的Tornado集成開發平臺的一貫優勢,并且功能更加強大,由于新采用了先進的Eclipse軟件框架結構,從而使整個系統更加開放和易于擴展。
它的主要優勢表現在:
2.1 以開放的Eclipse平臺為框架,調試環境可充分進行客戶化定制
Eclipse軟件框架結構是一個完整和開放的基礎平臺,它能夠將圖形工具以及任何必須的功能通過標準的接口集成到同一個開發環境中。目前IBM,HP及Borland等商業開發工具提供商均支持Eclipse開發平臺,網上也存在著大量的為Eclipse平臺開發插件的社區。由于Workbench符合Eclipse框架,所以這些商用的和免費的符合Eclipse平臺接口的插件均可以集成到Workbench開發環境中,這極大擴展了Workbench的功能。例如,如果用戶想使用自己熟悉的配置管理工具或者編輯器,就可以找到這樣一個插件并集成進來,這樣用戶就會感到開發過程非常適合自己的需要。
![圖片點擊可在新窗口打開查看](http://image.mcuol.com/News/070904140759340.jpg)
不僅如此,風河公司還對Eclipse做了多方面的增強,從而顯著提高了系統的性能。例如Workbench實現了異步接口功能,需要長時間運行的任務可以在后臺運行,與此同時還能繼續接收開發人員的調試請求,這樣不至于使開發人員做長時間的等待;另外,Workbench還優化了對目標機數據的請求機制,即系統只檢索在集成開發環境的當前視圖中所需要的少量數據,看不見的數據則不向目標機索取,這樣就大大提高了交叉調試時系統的響應速度并減少了系統負荷。
2.2 單一的全功能平臺,涉及到產品的整個開發周期
一個嵌入式產品的軟件開發,其“實質性”的過程包括了從開始的硬件啟動,BSP(板級支持包)及驅動的開發,到應用程序的開發,再到后來的測試、驗證,直至最后的生產階段。一般來說,每個階段都可以找到不同的工具來使用(實際情況也大都如此)。而風河公司的Workbench開發平臺改變了這一現狀,它以一個單一的Workbench平臺,提供了上述開發階段所需要的幾乎所有功能。具體來說,這包括了硬件系統仿真功能(有配套的硬件仿真器),工程管理和構建系統,編輯器,版本管理,命令解釋器,調試工具,系統分析工具,系統觀察工具,FLASH編程工具等等,再加上風河公司自己開發的和第三方廠家提供的各種軟件功能模塊和開發工具的插件,所有這一切,都集成在Workbench這個統一的平臺之下,這必將大大改善嵌入式軟件的開發環境。對一個企業來講,更可以提高效率,減少投資,簡化管理。嵌入式軟件開發的各個階段以及Workbench在各個階段提供的功能如圖2所示。
![圖片點擊可在新窗口打開查看](http://image.mcuol.com/News/070904140759361.jpg)
2.3 廣泛的適用性,特別適合復雜的目標系統
Workbench平臺的廣泛適用性主要體現在七“多”上,即多任務、多目標、多模式、多OS、多CPU、多連接形式、多主機環境。
多任務:在Workbench調試環境下,可以同時連接目標系統上的多個不同的任務(或者進程),每個任務都可以單獨設置斷點,進行單步調試。開發者再也不用象以前那樣,為了調試多個任務,先斷開一個任務的連接,再連接到另外一個任務上去。這就給具有多任務的目標系統開發提供了便利,尤其是需要查看多個任務之間的配合關系時體現的優勢更加明顯;
多CPU:我們知道,風河公司的Tornado開發環境可以說已經支持了全系列的主流CPU(或處理器),而Workbench也將繼承這個傳統,目前推出的Workbench 2.2版本已經可以支持PENTIUM、PPC、MIPS系列的所有主流CPU。對ARM、XSCALE、SH等系列的支持正在移植和測試中,不久即將發布正式版本(Workbench 2.3)。
多OS:目前的Workbench 2.2不僅支持VxWorks嵌入式操作系統(6.0以上版本),而且支持Linux操作系統,這確實給廣大的Linux嵌入式開發人員帶來了福音。大家知道,由于Linux操作系統的“免費”性質,使得其上的軟件開發系統一直比較分散和孤立,用起來不是特別方便,有了Workbench以后,嵌入式Linux的開發就同VxWorks的開發一樣方便和快捷了。并且以后,如果有必要的話,還可以增加對其它類型嵌入式操作系統的支持,因為Workbench本身是開放和可擴展的。
多目標:Workbench對復雜目標系統的強有力的支持還表現在它可以支持同時連接多塊目標板進行調試開發,更為可貴的是這些目標板上處理器可以各不相同,并且在目標板上運行的操作系統也可任意(既可以運行VxWorks,也可以運行Linux),而調試工作都可以在同一個Workbench界面中同時進行,這無疑給一些復雜系統的調試帶來了極大的便利。
多連接:所謂多連接,是指Workbench所在的主機和目標機之間可以有多種連接方式進行通訊,如果目標系統中存在以太網接口,那就應該首選以太網連接,因為這種方式速度比較快;如果目標系統中不存在以太網接口,那也可以選用串行口進行通訊連接,除了速度較慢以外,功能上與以太網連接沒有什么區別。另外,在目標板初始調試階段,還可通過風河的硬件仿真器(WindRiver ICE / WindRiver Probe)進行連接,觀察硬件狀態,以迅速定位硬件問題。
多模式:在Workbench中調試程序,即可以采用任務模式,也可以采用系統模式。所謂任務模式,是指各個任務之間獨立運行,暫停其中一個任務的運行不影響其他任務的運行(主要用于調試各個任務);而系統模式則是指只要暫停了系統的任何一處,整個系統都停止下來(主要用于調試中斷程序)。
多主機:這是指Workbench可以在Windows、Linux、Solaris這三大流行的主機操作系統下運行,這不僅可以適合不同開發者的使用習慣,而且在一定程度上有利于某些目標系統的開發,如使用Linux主機環境調試運行Linux系統的目標板(但這并不是必須的)。
2.4 豐富易用的調試手段,大大加快調試進度
動態鏈接:用過Tornado開發環境的人都對其獨特的分模塊單獨下載、動態鏈接到目標系統的功能深有體會,而Workbench也完全繼承了這個特性。有了這個功能,就使開發者不必將所有應用模塊都編寫完成再進行調試,也不用每次將應用模塊和操作系統編譯到一起然后下載調試,而是編好一個小模塊,如果想進行驗證,只需將這個小模塊(哪怕只是一個函數)編譯然后下載到目標板中就行了,這大大加快了調試驗證的速度,尤其是在目標板和主機之間是低速連接的情況下更能體現出其優勢所在。
目標可視:對目標系統的可視化是每一個嵌入式軟件開發人員都希望得到的功能,為達到這一目的,Workbench除了提供一般的查看內存,積存器、變量、調用樹等的傳統視圖工具外,還提供了幾種增強的系統查看工具:目標瀏覽器、系統觀察器和SCOPETOOLS工具集。目標瀏覽器可以用來查看目標系統每一個系統資源的使用情況和當前狀態,包括系統各個模塊、任務、信號量、消息隊列、內存、堆棧等。
系統觀察器可對系統事件提供詳細的分析和圖形化的可視效果,同時還可展示在目標機上執行的應用程序的相關任務、中斷以及系統對象之間復雜的交互作用。它能夠清楚地顯示上下文變化以及信號量、消息隊列、信號、任務、用戶事件和記時器一類的系統事件,就象一個軟件的“示波器”。應用這些系統查看工具,開發人員可以很容易地去診斷和解決嵌入式系統中存在的調度問題(如死鎖,饑餓和競爭),性能問題(如優先級設置,資源的競爭與互斥),定時問題等。而RTI SCOPETOOLS則是專門為設備類軟件開發提供的一組強大的可視化工具集,用戶可以動態觀察整個系統平臺,包括應用代碼、第三方的庫,甚至操作系統本身。Workbench 2.2中集成進來了用于觀察函數執行效率的ProfileScope工具,用于觀察內存使用效率和檢測內存泄露的MemScope工具,和用于檢測變量或指定內存位置處數值的動態變化情況的StethoScope工具。另外,還有可選的用于實時跟蹤代碼執行情況的TraceScope工具和用于檢測代碼執行覆蓋率的CoverageScope工具。
仿真環境:在目標系統的硬件開發完成之前,往往軟件系統的開發也要同步進行,Workbench提供的模擬仿真環境(只適用于針對VxWorks操作系統的應用軟件開發)就提供了這種同步開發的途徑。VxWorks軟件仿真器運行于主機操作系統環境中,是一種從VxWorks6.0操作系統移植過來的本地應用程序,它能夠精確地實施VxWorks 6.0的高級復雜特性,包括實時進程、內存保護等,它還具有完整的文件系統和網絡功能,并能調用主機系統API。這些特性使得在VxWorks軟件仿真器中開發復雜的系統成為可能。例如,在VxWorks軟件仿真器中可以組建多個網絡,這些網絡不但互相之間可以通訊,還可以通過主機系統的網口與外界相連,實現一個完全真實的網絡環境;再例如,可以利用主機系統的顯示屏幕來開發具有圖形用戶界面的應用程序,這是通過調用主機系統與圖形相關的API來實現的。一般來說,用戶可以為主機系統的任何資源編寫API,而在VxWorks軟件仿真環境中進行調用,這極大地擴展了VxWorks軟件仿真器的功能,也更便于應用軟件的同步開發。
除了以上所提到的需要特別強調的功能外,Workbench的強大調試功能還表現在支持各種類型的斷點設置、方便靈活的操作系統內核配置工具,具有主機Shell和目標機Shell,具有4種命令解釋器,以及豐富的視圖界面等等,詳細情況請參考Workbench的說明及手冊,這里就不多做介紹。總之,使用Workbench給開發人員的感受就是方便靈活,功能強大,幾乎無所不能。
3.Workbench與Tornado的功能對比
Workbench平臺相對于Tornado平臺來說,各項功能均有所增強,也有不少新加入的功能,主要的功能對比如下表所列:
表1 Tornado與Workbench的功能對比
![圖片點擊可在新窗口打開查看](http://image.mcuol.com/News/070904140759372.jpg)
Workbench是對Tornado的一次脫胎換骨的升級,但目前并不能說Workbench就可以完全取代Tornado。這是因為Workbench只對VxWorks6.0以上的版本(具有“進程”的概念)進行支持,如果用戶想使用VxWorks6.0以下的版本(扁平地址空間,應用程序均在內核中運行),那只能用Tornado進行開發。
4.Workbench的當前應用狀況
如上所述,Workbench無疑是當前嵌入式軟件開發領域中功能非常強大的一個集成開發環境,它最適合應用于復雜系統的開發或多個開發團隊的合作開發,比如一個復雜的系統需要用到多種CPU或多種目標操作系統,或者應用軟件本身非常復雜,具有多個任務,并且相互之間關聯緊密,或者多個項目組之間需要進行協同開發和軟件模塊共享,或者企業涉及到了從硬件開發,到軟件開發,再到生產測試的全過程。在這些情況下,考慮使用Workbench平臺則非常合適,因為這樣不僅能快速有效地進行系統開發,并且能夠有效地進行項目的組織和管理,最終從整體上降低企業的成本。
Workbench目前正式發布的版本是2.2版,即將推出的2.3版本則提供了對更多種類處理器和目標操作系統的支持,其功能和適用范圍也將進一步增強。在國內,已經有不少大型企業都正在積極地評估Workbench平臺的使用,并體驗其強大的開發能力和方便靈活的操作過程。在國外,已經有一些企業用Workbench開發出來了自己的產品。相信不久以后,風河公司的Workbench開發平臺將會遍及到嵌入式軟件開發的各個領域,并使嵌入式軟件開發成為一個令人愉悅的過程。