<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 風(fēng)河公司的嵌入式軟件集成開(kāi)發(fā)環(huán)境

風(fēng)河公司的嵌入式軟件集成開(kāi)發(fā)環(huán)境

——
作者:康宇峰 時(shí)間:2007-04-17 來(lái)源:?jiǎn)纹瑱C及嵌入式系統應用 收藏

1 開(kāi)發(fā)所面臨的問(wèn)題
    嵌入式軟件開(kāi)發(fā)有別于桌面軟件系統開(kāi)發(fā)的一個(gè)顯著(zhù)特點(diǎn)是,它一般需要一個(gè)交叉編譯和調試環(huán)境,即編輯和編譯軟件在主機上進(jìn)行(如在PC機的WindOWS操作系統下),編譯好的軟件需要下載到目標機上運行(如在一個(gè)PPC目標機上的VxWorks操作系統下),主機和目標機建立起通信連接,并傳輸調試命令和數據。由于主機和目標機往往運行著(zhù)不同的操作系統,而且處理器的體系結構也彼此不同。這就提高了嵌入式開(kāi)發(fā)的復雜性。
    總的來(lái)說(shuō),嵌入式開(kāi)發(fā)所面.臨的問(wèn)題主要表現在以下幾個(gè)方面。

(1)涉及多種CPU及多種OS

    嵌入式的CPU或處理器可謂多種多樣,包括了Pentium、MIPS、PPC、ARM,XScale等,而且應用都很廣,在其上運行的操作系統也有不少,如VxWorks,Linux,Nucleus,WinCE等,即使在一個(gè)公司之內,也會(huì )同時(shí)使用好幾種處理器,甚至幾種嵌入式操作系統。如果需要同時(shí)調試多種類(lèi)型的板子,每個(gè)板子上又運行著(zhù)多個(gè)任務(wù)或進(jìn)程,那復雜性是可想而知的。

(2)開(kāi)發(fā)工具種類(lèi)繁多

    不僅各種操作系統有各自的開(kāi)發(fā)工具,在同一系統下開(kāi)發(fā)的不同階段也有不同的開(kāi)發(fā)工具。如在用戶(hù)的目標板開(kāi)發(fā)初期,需要硬件仿真器來(lái)調試硬件系統和基本的驅動(dòng)程序;在調試應用程序階段,可以使用交互式的開(kāi)發(fā)環(huán)境進(jìn)行軟件調試;在測試階段需要一些專(zhuān)門(mén)的測試工具軟件進(jìn)行功能和性能的測試;在生產(chǎn)階段需要固化程序及出廠(chǎng)檢測等。一般每一種工具都要從不同的供應商處購買(mǎi),都要單獨去學(xué)習和掌握,這無(wú)疑增加了整個(gè)公司的支出和管理的難度。

(3)對目標系統的觀(guān)察和控制

    由于嵌入式硬件系統千差萬(wàn)別,軟件模塊和系統資源也多種多樣,要使系統能正常工作,軟件開(kāi)發(fā)者必須要對目標系統具有完全的觀(guān)察和控制能力,例如硬件的各種寄存器、內存空間,操作系統的信號量、消息隊列、任務(wù)、堆棧等。
    此外,變化更新比較快,對開(kāi)發(fā)時(shí)間要求比較緊,尤其是消費類(lèi)產(chǎn)品更是如此.如果有一套功能強大的嵌入式軟件集成開(kāi)發(fā)工具可以滿(mǎn)足嵌入式軟件開(kāi)發(fā)各個(gè)階段的需求,同時(shí)又使用方便,界面友好,那是最理想不過(guò)了。美國風(fēng)河系統公司(以下簡(jiǎn)稱(chēng)為“風(fēng)河公司”)推出的Workbench嵌入式軟件開(kāi)發(fā)平臺正是這樣一個(gè)“全能選手”。

2 Workbench的特點(diǎn)和優(yōu)勢
    風(fēng)河公司一直致力于嵌入式軟件領(lǐng)域的研究,其歷悠久的Tornado開(kāi)發(fā)環(huán)境和VxWorks嵌入式操作系統。品在嵌入式領(lǐng)域中應用非常廣泛,尤其以強實(shí)時(shí)性和穩定性而著(zhù)稱(chēng)于世。風(fēng)河公司的新一代Workbench開(kāi)發(fā)平臺繼承了原有Tornaclo集成開(kāi)發(fā)平臺的一貫優(yōu)勢,并且功能更加強大。由于新采用了先進(jìn)的Eclipoe軟件框架結構,從而使整個(gè)系統更加開(kāi)放和易于擴展。下面介紹它的主要優(yōu)勢。

2.1 開(kāi)放的Eclipse平臺框架

    Eclipse軟件框架結構是一個(gè)完整和開(kāi)放的基礎平臺,如圖1所示,它能夠將圖形工具以及任何必須的功能通過(guò)標準的接口集成到同一個(gè)開(kāi)發(fā)環(huán)境中。目前,IBMHP及Borland等商業(yè)開(kāi)發(fā)工具提供商均支持Eclipse開(kāi)發(fā)平臺,網(wǎng)上也有大量為Eclitpse平臺開(kāi)發(fā)插件的社區,由于Workbench符合Eclipse框架,所以這些商用的和免費的符合Eclipse平臺接口的插件均可以集成到Work-bench開(kāi)發(fā)環(huán)境中,這極大擴展了Workbench的功能。例如,如果用戶(hù)想使用自己熟悉的配置管理工具或者編輯器,就可以找到這樣一個(gè)插件并集成進(jìn)來(lái),這樣用戶(hù)就會(huì )感到開(kāi)發(fā)過(guò)程非常適合自己的需要。

    不僅如此,風(fēng)河公司還對Eclipse做了多方面的增強,從而顯著(zhù)提高了系統的性能。例如Workbench實(shí)現了異步接口功能,需要長(cháng)時(shí)間運行的任務(wù)可以在后臺運行,與此同時(shí)還能繼續接收開(kāi)發(fā)人員的調試請求,這樣不至于使開(kāi)發(fā)人員做長(cháng)時(shí)間的等待;另外,Workbench還優(yōu)化了對目標機數據的請求機制,即系統只檢索在當前視圖中所需要的少量數據,看不見(jiàn)的數據則不向目標機索取,這樣就大大提高了交叉調試時(shí)系統的響應速度并減少了系統負荷。

2.2 單一的全功能平臺

    一個(gè)嵌入式產(chǎn)品的軟件開(kāi)發(fā),其“實(shí)質(zhì)性”過(guò)程包括了從開(kāi)始的硬件啟動(dòng),BSP(板級支持包)及驅動(dòng)的開(kāi)發(fā),到應用程序的開(kāi)發(fā),再到后來(lái)的測試、驗證,直至最后的生產(chǎn)階段。一般來(lái)說(shuō),每個(gè)階段都可以找到不同的工具來(lái)使用(實(shí)際情況也大都如此)。風(fēng)河公司的Workbench開(kāi)發(fā)平臺改變了這一現狀,它以一個(gè)單一的WorkbenCh平臺,提了上述開(kāi)發(fā)階段所需要的幾乎所有功能。具體來(lái)說(shuō),包括了硬件系統仿真功能(有配套的硬件仿真器)、工程管理和構建系統、編輯器、版本管理、命令解釋器、調試工具、系統分析工具、系統觀(guān)察工具、Flash編程工具等,再加上風(fēng)河公司自己開(kāi)發(fā)的和第三方廠(chǎng)家提供的各種軟件功能模塊和開(kāi)發(fā)工具的插件,所有這一切,都集成在Workbench這個(gè)統一的平臺之下,這必將大大改善嵌入式軟件的開(kāi)發(fā)環(huán)境.對一個(gè)企業(yè)來(lái)講,更可以提高效率,減少投資,簡(jiǎn)化管理。嵌入式軟件開(kāi)發(fā)的各個(gè)階段以及Workbemch在各個(gè)階段提供的功能如圖2所示。

2.3廣泛的適用性
    Workbench平臺的廣泛適用性主要體現在七“多”上,即多任務(wù)、多目標、多模式、多OS、多CPU、多連接形式和多主機環(huán)境。

    ◆多任務(wù)。在workhech調試環(huán)境下,可以同時(shí)連接目標系統上的多個(gè)不同的任務(wù)(或者進(jìn)程),每個(gè)任務(wù)都可以單獨設置斷點(diǎn),進(jìn)行單步調試。開(kāi)發(fā)者再也不用象以前那樣,為了調試多個(gè)任務(wù),先斷開(kāi)一個(gè)任務(wù)的連接,再連接到另外一個(gè)任務(wù)上去。這就給具有多任務(wù)的目標系統開(kāi)發(fā)提供了便利,尤其是需要查看多個(gè)任務(wù)之間的配合關(guān)系時(shí),體現的優(yōu)勢更加明顯。
    ◆多CPU。風(fēng)河公司的Tornado開(kāi)發(fā)環(huán)境可以說(shuō)已經(jīng)支持了全系列的主流CPU(或處理器),而Workbench也將繼承這個(gè)傳統。目前,推出的Workbench2.2版本已經(jīng)可以支持PENTIUM、PPC和MIPS系列的所有主流CPU。對ARM、XSCALE、SH等系列的支持正在移植和測試中,不久即將發(fā)布正式版本(Workbench 2、3)。
    ◆多OS。目前,Workbench2.2不僅支持VxWorks嵌入式操作系統(6.0以上版本),而且支持Linux操作系統,這確實(shí)給廣大的Linux嵌入式開(kāi)發(fā)人員帶來(lái)了福音。由于Linux操作系統的“免費”性質(zhì),使得其軟件開(kāi)發(fā)系統一直比較分散和孤立,用起來(lái)不是特別方便,有了Work-bench以后,嵌入式Linux的開(kāi)發(fā)就同VxWorks的開(kāi)發(fā)一樣方便和快捷了。如果有必要的話(huà),以后還可以增加對其他類(lèi)型嵌入式操作系統的支持,因為Workbench本身是開(kāi)放和可擴展的。
    ◆多目標。Workbench對復雜目標系統的強有力支持還表現在它可以支持同時(shí)連接多塊目標板進(jìn)行調試開(kāi)發(fā)。更為可貴的是,這些目標板上的處理器可以各不相同,并且在目標板上運行的操作系統也可任意(既可以運行VxWorks,也可以運行Linux),而調試工作可以在同一個(gè)Workbench界面中同時(shí)進(jìn)行,這無(wú)疑給一些復雜系統的調試帶來(lái)了極大的便利。
    ◆多連接。所謂多連接,是指Workbench所在的主機和目標機之間可以有多種連接方式進(jìn)行通信。如果目標系統中存在以太網(wǎng)接口,那就應該首選以太網(wǎng)連接,因為這種方式速度比較快;如果目標系統中不存在以太網(wǎng)接口,那也可以選用串行口進(jìn)行通信連接,除了速度較慢以外,功能上與以太網(wǎng)連接沒(méi)有什么區別。另外,在目標板初始調試階段,還可通過(guò)風(fēng)河的硬件仿真器(WlndRiverICE/WindRiver Probe)進(jìn)行連接,觀(guān)察硬件狀態(tài),以迅速定位硬件問(wèn)題。

    ◆多模式。在Workbench中調試程序,即可以采用任務(wù)模式,也可以采用系統模式。所謂任務(wù)模式,是指各個(gè)任務(wù)之間獨立運行,暫停其中一個(gè)任務(wù)的運行不影響其他任務(wù)的運行(主要用于調試各個(gè)任務(wù));而系統模式則是指只要暫停丁系統的任何一處,整個(gè)系統都停止下來(lái)(主要用于調試中斷程序)。
    ◆多主機。這是指Workbench可以在Windows、unux和Solaris這三大流行的主機操作系統下運行,這不僅可以適合不同開(kāi)發(fā)者的使用習慣,而且在一定程度上有利于某些目標系統的開(kāi)發(fā),如使用unux主機環(huán)境調試運行Linux系統的目標板(但這并不是必須的)。

2.4 豐富易用的調試手段
(1)動(dòng)態(tài)鏈接

    用過(guò)Tornado開(kāi)發(fā)環(huán)境的人都對其獨特的分模塊單獨下載、動(dòng)態(tài)鏈接到目標系統的功能深有體會(huì ),而Workbench也完全繼承了這個(gè)特性。有了這個(gè)功能,就使開(kāi)發(fā)者不必將所有應用模塊都編寫(xiě)完成再進(jìn)行調試,也不用每次將應用模塊和操作系統編譯到一起然后下載調試??梢跃幒靡粋€(gè)小模塊,如果想進(jìn)行驗證,只需將這個(gè)小模塊(哪怕只是一個(gè)函數)編譯然后下載到目標板中就行了,這大大加快了調試驗證的速度,尤其是目標板和主機之間是低速連接的情況,更能體現出其優(yōu)勢所在。

(2)目標可視

    對目標系統的可視化是每一個(gè)嵌入式軟件開(kāi)發(fā)人員都希望得到的功能,為達到這一目的,Workbench除了提供一般的查看內存、寄存器、變量、調用樹(shù)等的傳統視圖工具外,還提供了幾種增強的系統查看工具:目標瀏覽器、系統觀(guān)察器和SCOPETO0LS工具集。目標瀏覽器可以用來(lái)查看目標系統每一個(gè)系統資源的使用情況和當前狀態(tài),包括系統各個(gè)模塊、任務(wù)、信號量、消息隊列、內存、堆棧等。系統觀(guān)察器可對系統事件提供詳細的分析和圖形化的可視效果,同時(shí)還可展示在目標機上執行應用程序的相關(guān)任務(wù)、中斷以及系統對象之間復雜的交互作用。它能夠清楚地顯示上下文變化以及信號量、消息隊列、信號、任務(wù)、用戶(hù)事件和記時(shí)器一類(lèi)的系統事件,就象一個(gè)軟件的“示波器”。應用這些系統查看工具,開(kāi)發(fā)人員可以很容易地去診斷和解決中存在的調度問(wèn)題(如死鎖,饑餓和競爭)、性能問(wèn)題(如優(yōu)先級設置,資源的競爭與互斥)和定時(shí)問(wèn)題等。RTI SCOPETOOLS是專(zhuān)門(mén)為設備類(lèi)軟件開(kāi)發(fā)提供的一組強大的可視化工具集,用戶(hù)可以動(dòng)態(tài)觀(guān)察整個(gè)系統平臺,包括應用代碼、第三方的庫,甚至操作系統本身。Workbench2.2中,集成進(jìn)來(lái)了用于觀(guān)察函數執行效率的ProfileScope工具,用于觀(guān)察內存使用效率和檢測內存泄露的MemScope工具,以及用于檢測變量或指定內存位置處數值動(dòng)態(tài)變化情況的StethoScope工具。另外,還有可選的用于實(shí)時(shí)跟蹤代碼執行情況的TraceScope工具和用于檢測代碼執行覆蓋率的CoverageScope工具。

(3)仿真環(huán)境

    在目標系統的硬件開(kāi)發(fā)完成之前,往往軟件系統的開(kāi)發(fā)也要同步進(jìn)行,Workbench提供的模擬仿真環(huán)境(只適用于針對VxWorks操作系統的應用軟件開(kāi)發(fā))就提供了這種同步開(kāi)發(fā)的途徑。VxWorks軟件仿真器運行于主機操作系統環(huán)境中,是一種從VxWorks 6.0操作系統移植過(guò)來(lái)的本地應用程序,它能夠精確地實(shí)施VxWorks 6.0的高級復雜特性,包括實(shí)時(shí)進(jìn)程、內存保護等。它還具有完整的文件系統和網(wǎng)絡(luò )功能,并能調用主機系統API。這些特性使得在VxWorks軟件仿真器中開(kāi)發(fā)復雜的系統成為可能。例如,在VxWorks軟件仿真器中可以組建多個(gè)網(wǎng)絡(luò ),這些網(wǎng)絡(luò )不但互相之間可以通信,還可以通過(guò)主機系統的網(wǎng)口與外界相連,實(shí)現一個(gè)完全真實(shí)的網(wǎng)絡(luò )環(huán)境。一般來(lái)說(shuō),用戶(hù)可以為主機系統的任何資源編寫(xiě)API,而在VxWorks軟件仿真環(huán)境中進(jìn)行調用,這極大地擴展了VxWorks軟件仿真器的功能,也更便于應用軟件的同步開(kāi)發(fā)。
   
    除了以上所提到的功能外,Workbench的強大調試功能還表現在支持各種類(lèi)型的斷點(diǎn)設置、方便靈活的操作系統內核配置工具,具有主機Sheu和目標機Shell,具有4種命令解釋器,以及豐富的視圖界面等。詳細情況請參考Workbench的說(shuō)明及手冊,這里就不多做介紹??傊?,使用Workbench給開(kāi)發(fā)人員的感受就是方便靈活,功能強大,幾乎無(wú)所不能。

3 Workbench與Tornado的功能對比
    Workbench平臺相對于Tornado平臺來(lái)說(shuō),各項功能均有所增強,也有不少新加入的功能,主要的功能對比如表1所列。

    Workbench是對Tornado一次脫胎換骨的升級,但目前并不能說(shuō)Workbench就可以完全取代Tornado,這是因為Workbench只對VxWorks6.O以上的版本(具有“進(jìn)程”的概念)進(jìn)行支持,如果用戶(hù)想使用VxWorks6.O以下的版本(扁平地址空間,應用程序均在內核中運行),那只能用Tomado進(jìn)行開(kāi)發(fā)。

4 Workbench的當前應用狀況
    如上所述,Workbench無(wú)疑是當前嵌入式軟件開(kāi)發(fā)領(lǐng)域中功能非常強大的一個(gè),它最適合應用于復雜系統的開(kāi)發(fā)或多個(gè)開(kāi)發(fā)團隊的合作開(kāi)發(fā)。比如一個(gè)復雜的系統,需要用到多種CPU或多種目標操作系統,或者應用軟件本身非常復雜,具有多個(gè)任務(wù),并且相互之間關(guān)聯(lián)緊密,或者多個(gè)項目組之間需要進(jìn)行協(xié)同開(kāi)發(fā)和軟件模塊共享,或者企業(yè)涉及到了從硬件開(kāi)發(fā),到軟件開(kāi)發(fā),再到生產(chǎn)測試的全過(guò)程。在這些情況下,考慮使用Work-bench平臺則非常合適,因為這樣不僅能快速有效地進(jìn)行系統開(kāi)發(fā),并且能夠有效地進(jìn)行項目的組織和管理,最終從整體上降低成本。

    Workbench目前正式發(fā)布的是2.2版本,即將推出的2.3版本則提供了對更多種類(lèi)處理器和目標操作系統的支持,其功能和適用范圍也將進(jìn)一步增強。在國內,已經(jīng)有不少大型企業(yè)正在積極評估Workbench平臺的使用,并體驗其強大的開(kāi)發(fā)能力和方便靈活的操作過(guò)程。在國外,已經(jīng)有一些企業(yè)用Woikbench開(kāi)發(fā)出來(lái)了自己的產(chǎn)品。相信不久以后,風(fēng)河公司的Workbench開(kāi)發(fā)平臺將會(huì )遍及到嵌入式軟件開(kāi)發(fā)的各個(gè)領(lǐng)域,并使嵌入式軟件開(kāi)發(fā)成為一個(gè)令人愉悅的過(guò)程。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>