使用圖形化的開發(fā)環(huán)境(06-100)
傳統(tǒng)設(shè)計模式所應對的挑戰(zhàn)
本文引用地址:http://2s4d.com/article/81416.htm嵌入式系統(tǒng)正在滲入現(xiàn)代社會的各個方面,廣泛地應用于航空航天、通信設(shè)備、消費電子、工業(yè)控制、汽車、船舶等領(lǐng)域,據(jù)統(tǒng)計,在美國平均每個中產(chǎn)階級家庭要使用40~50個嵌入式系統(tǒng)。巨大的市場需求推動了嵌入式系統(tǒng)向更高的技術(shù)水平發(fā)展。設(shè)計師們一方面采用性能更強大的嵌入式處理器如32位、64位RISC芯片取代傳統(tǒng)的8位、16位微處理器;另一方面嵌入式系統(tǒng)也由單處理器單操作系統(tǒng)的傳統(tǒng)結(jié)構(gòu)向混合型Multi-core系統(tǒng)發(fā)展,通過采用多個處理器和OS提高系統(tǒng)并行度來提高系統(tǒng)運行效能,并且設(shè)計師們往往同時采用MPU、DSP和FPGA等多種可編程器件來增強處理能力,滿足應用功能的升級。
嵌入式系統(tǒng)復雜性的不斷增加給設(shè)計師們帶來了很大的挑戰(zhàn),代碼長度呈指數(shù)級增加,根據(jù)十年前的估計,嵌入式系統(tǒng)的平均代碼量為10萬行,到2001年實際已經(jīng)超過了100萬,而現(xiàn)在估計為500萬。第三方獨立市場預測機構(gòu)EMF在對900多名嵌入式系統(tǒng)開發(fā)人員進行調(diào)研后指出,超過50%的嵌入式設(shè)計比預期時間晚上市,而平均延遲高達4個月;在已發(fā)布的產(chǎn)品中,有近30%的設(shè)計未達到預期的功能和指標。由此可見,隨著嵌入式系統(tǒng)復雜性的不斷增加,軟件工程的重要性毋庸置疑,而大部分的嵌入式系統(tǒng)開發(fā)人員都缺乏這方面的專業(yè)訓練。與此同時,隨著嵌入式系統(tǒng)的廣泛應用,越來越多領(lǐng)域的專家比如機器人設(shè)計師、控制工程師、測試工程師需要使用嵌入式技術(shù)來構(gòu)建他們的系統(tǒng),他們既缺乏嵌入式系統(tǒng)的專業(yè)知識,也不一定經(jīng)過軟件工程的專業(yè)訓練。因此,無論是嵌入式系統(tǒng)本身的發(fā)展,還是開發(fā)人員的專業(yè)限制,都需要一種新的設(shè)計模式和解決問題的途徑來應對目前的挑戰(zhàn)。
嵌入式系統(tǒng)開發(fā)工具的發(fā)展趨勢
隨著嵌入式系統(tǒng)的快速發(fā)展和復雜性的不斷增加,基于文本的編程方式所面臨的挑戰(zhàn)愈發(fā)嚴峻,這種編程模式在將來不可能徹底解決問題。加州大學伯克利分校嵌入式研究專家Edward Lee博士指出,現(xiàn)有的嵌入式系統(tǒng)的開發(fā)手段如基于文本編程和面向?qū)ο蟮墓ぞ叨茧y以用來構(gòu)建嵌入式實時系統(tǒng),因為面向?qū)ο蠛茈y直觀地表達時間和平行性(parallelism),而時間和平行性或并行(concurrency)在現(xiàn)在的嵌入式系統(tǒng)中是必不可少的。面向角色(actor-oriented)的圖形化方法是更適合嵌入式軟件設(shè)計的工具。
應對嵌入式系統(tǒng)所面臨的挑戰(zhàn),工程師們已經(jīng)有了一些解決的方向,比如采用實時多任務(wù)編程技術(shù)和交叉開發(fā)工具技術(shù)來控制功能復雜性、簡化應用程序設(shè)計、保障軟件質(zhì)量和縮短開發(fā)周期。但是現(xiàn)有的嵌入式系統(tǒng)開發(fā)工具非常多,全世界嵌入式處理器的品種總量已經(jīng)超過1000種,流行體系結(jié)構(gòu)有30多個系列,在其上運行的操作系統(tǒng)環(huán)境也非常多樣化,包括VxWorks、QNX、Linux、 Nuclears、WinCE等等。不僅各種操作系統(tǒng)有各自的開發(fā)工具,在同一系統(tǒng)下開發(fā)的不同階段也有不同的開發(fā)工具。如在用戶的目標板開發(fā)初期,需要硬件仿真器來調(diào)試硬件系統(tǒng)和基本的驅(qū)動程序,在調(diào)試應用程序階段可以使用交互式的開發(fā)環(huán)境進行軟件調(diào)試,在測試階段需要一些專門的測試工具軟件進行功能和性能的測試等等。最合理的解決方案是向基于平臺的工具轉(zhuǎn)移,它能夠更好地表達整個系統(tǒng),減少與特定硬件以及操作系統(tǒng)的相關(guān)性,使更多的軟件設(shè)計和算法容易理解并被重復使用;而從基于文本的工具向圖形化工具的轉(zhuǎn)移則可以直觀地表達系統(tǒng),圖形化系統(tǒng)設(shè)計(Graphical System Design)的理念就是源于這兩大趨勢。通過簡化嵌入式編程的復雜性,降低了對工程師在嵌入式設(shè)計流程中各個步驟的要求;同時提供了從設(shè)計、原型到部署,從軟件調(diào)試、功能測試到生產(chǎn)檢測的統(tǒng)一環(huán)境,使得工程師們可以更快速地進行重復設(shè)計。
在嵌入式系統(tǒng)中實現(xiàn)圖形化已經(jīng)成為大勢所趨,現(xiàn)在市場上的工具都在向圖形化的方向轉(zhuǎn)變,但往往僅限于基于嵌入式操作系統(tǒng)的圖形界面開發(fā);而且由于它們是針對特定硬件或操作系統(tǒng)的工具,與硬件和操作系統(tǒng)平臺有很大的相關(guān)性,這不足以徹底解決行業(yè)將要面臨的挑戰(zhàn)的?,F(xiàn)在市場需要的是一種完全的圖形化編程語言,提供足夠的靈活性和功能,以滿足更廣泛應用的需求。因此,圖形化系統(tǒng)設(shè)計的關(guān)鍵因素是圖形化編程。
對于時間和平行性的支持
20年來,科學家和工程師一直在使用LabVIEW為他們的設(shè)計實驗室、驗證實驗室和生產(chǎn)現(xiàn)場構(gòu)建自動化數(shù)據(jù)采集和儀器控制解決方案,并在這些應用領(lǐng)域成為業(yè)界的事實標準。其核心在于,LabVIEW圖形化編程語言使沒有太多軟件背景的技術(shù)專家能夠快速搭建高級自動化測量和控制系統(tǒng)。和傳統(tǒng)的文本編程相比,LabVIEW天生是一種并行結(jié)構(gòu)的編程語言,而時間和并行性在現(xiàn)在的嵌入式系統(tǒng)中是必不可少的。比如,LabVIEW在已有的定時循環(huán)結(jié)構(gòu)上新加了硬件定時功能,它是一種表示時間和并行的語義,可以設(shè)置操作系統(tǒng)優(yōu)先級、延時、循環(huán)速率等等,如圖1所示。如果我們將圖1所示的兩個并行任務(wù)的執(zhí)行目標擴展到嵌入式對象,比如FPGA或微處理器,就可以發(fā)現(xiàn)通過編程環(huán)境的一致性和可升級性,LabVIEW能夠容易地實現(xiàn)和管理嵌入式系統(tǒng)的并行性?;叵朐谖恼虑懊嫠岬降南蚨嗵幚砥鬓D(zhuǎn)移的趨勢,現(xiàn)在我們可以憧憬使用可擴展的直觀圖形化編程來開發(fā)應用,并將處理過程分配到不同的處理器上。
評論