嵌入式開發(fā)工具發(fā)展趨勢
近年來嵌入式領(lǐng)域得到了迅猛發(fā)展,嵌入式系統(tǒng)已經(jīng)無處不在,嵌入式系統(tǒng)的開發(fā)也變得越來越復(fù)雜,軟硬件的復(fù)雜度都大幅度增加。而市場對于嵌入式系統(tǒng)的開發(fā)周期要求也越來越高,這對于嵌入式開發(fā)工具提出了新的挑戰(zhàn)。
1 嵌入式開發(fā)工具面臨的挑戰(zhàn)
嵌入式開發(fā)過程相對PC應(yīng)用程序開發(fā)而言,具有其特殊的復(fù)雜性,涉及更多的硬件以及操作系統(tǒng)底層的知識,缺乏統(tǒng)一的軟硬件平臺,系統(tǒng)建模、工程管理和項目管理的工具也非常缺乏。隨著32位嵌入式處理器的應(yīng)用越來越廣泛,市場對于嵌入式系統(tǒng)的性能要求不斷提高。當前嵌入式系統(tǒng)的復(fù)雜程度已不是過去8位單片機系統(tǒng)所能比擬的了,這對項目的開發(fā)、測試、管理都提出了新的要求,過去的嵌入式開發(fā)工具已經(jīng)越來越無法適應(yīng)新的需求??傮w上講,當前的嵌入式開發(fā)對工具提出了以下新需求:
(1)如何從4/8/16位處理器過渡到32位處理器?
中國很多嵌入式工程師都具有8位處理器的開發(fā)經(jīng)驗,多數(shù)高校畢業(yè)生在學校也是接受8位處理器的培訓。目前,8位處理器在微控制器領(lǐng)域仍具有重要的地位,但是2008年32位微控制器的全球出貨量第一次超過了8位。引起這一市場變化的原因有兩個:其一是市場需要性能更高、功能更復(fù)雜的產(chǎn)品,8位處理器在功能上已經(jīng)無法滿足要求;其二是32位RISC微處理器價格已經(jīng)非常便宜了,例如ST公司基于Cortex—M3的STM32處理器,最便宜的僅僅1美元。
32位處理器與8位處理器在體系結(jié)構(gòu)上還是有著很大區(qū)別的,如何讓熟悉8位處理器的工程師迅速熟悉并能進行32位處理器的開發(fā)非常重要。這就需要為那些熟悉8位處理器開發(fā)的工程師提供一種界面、接口他們都熟悉的32位處理器開發(fā)工具。ARM公司推出的RealViewMDK是一個典型范例:MDK的IDE采用了中國工程師非常熟悉的μVision(Keil),內(nèi)部則使用了ARM公司的專業(yè)編譯工具RVCT,這樣熟悉8位處理器的工程師可以非常平滑地過渡到32位處理器開發(fā)中。
(2)如何加快開發(fā)周期?
嵌入式系統(tǒng)現(xiàn)在越來越復(fù)雜,硬件復(fù)雜性和軟件復(fù)雜性大大增加。由于很多硬件已經(jīng)高度集成,這導(dǎo)致在目前的嵌入式系統(tǒng)開發(fā)中,軟件開發(fā)占80%以上的工作量。因此現(xiàn)在某些嵌入式軟件開發(fā)已經(jīng)逐步達到中型軟件項目的程度,而隨著軟件規(guī)模的增大,軟件按時交付率將會下降。但是市場對嵌入式系統(tǒng)開發(fā)周期要求卻越來越短。
嵌入式開發(fā)中軟件和硬件的依賴性非常高,軟件開發(fā)和硬件開發(fā)需要協(xié)同進行。如果能減少兩者之間的依賴性,尤其是軟件開發(fā)對硬件開發(fā)的依賴,那么將可以大大加快開發(fā)周期。
(3)各類工具之間如何配合?
嵌入式開發(fā)過程中會使用到各種工具,包括IDE環(huán)境、編譯工具、軟硬件調(diào)試工具、操作系統(tǒng)等。根據(jù)項目的需求,往往會選擇來自不同廠商的工具進行組合。如果能非常方便地將這些不同廠商的工具無縫地配合起來,則可以大大減少不必要的工作,這對于開發(fā)人員而言很重要。
(4)如何調(diào)試復(fù)雜的系統(tǒng)?
嵌入式系統(tǒng)越來越復(fù)雜,很多嵌入式系統(tǒng)都開始使用各種操作系統(tǒng),并使用多核結(jié)構(gòu)。但是傳統(tǒng)的JTAG調(diào)試方法能力非常有限,尤其是當目標設(shè)備實時運行的時候,開發(fā)人員通常只能使用串口打印輸出的方法來做調(diào)試。當需要分析內(nèi)存錯誤、多任務(wù)之間關(guān)系、異?;蛑袛嗵幚?、睡眠模式等情況時,目前的調(diào)試方法基本無效,系統(tǒng)實時運行時基本是黑箱運行。這就需要更加強大的調(diào)試工具和手段來為開發(fā)復(fù)雜的嵌入式應(yīng)用提供支持。
(5)如何提高編譯性能?
新的商業(yè)應(yīng)用嵌入式系統(tǒng)中,多處理器系統(tǒng)和各種多核處理器已經(jīng)成為趨勢,這些新的硬件架構(gòu)會帶來非??捎^的效益。但是這種多核和多處理器的結(jié)構(gòu)給編譯系統(tǒng)提出了非常高的要求。例如一個ARM+DSP的系統(tǒng),如何將工作合理地分配給ARM處理器和DSP處理器,這非常重要。優(yōu)秀的編譯工具,應(yīng)該能使它們能實現(xiàn)“1+1>2”。
(6)如何實現(xiàn)圖形化開發(fā)?
圖形化開發(fā)在計算機軟硬件開發(fā)中已不是新問題了。圖形化的開發(fā)方法能大大減少開發(fā)工作量和復(fù)雜程度。[!--empirenews.page--]
2 基于Eclipse平臺的開發(fā)工具
2001年11月IBM將新一代開發(fā)工具項目Eclipse開源,并建立了Eclipse社區(qū)。Eclipse是替代IBM VisualAge for Java的下一代IDE開發(fā)環(huán)境,但其目標不僅是成為專門開發(fā)Java程序的IDE環(huán)境,而是用戶可以根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,擴展到任何語言的開發(fā),甚至成為圖片繪制的工具。
Eclipse最有魅力的地方就是其插件體系結(jié)構(gòu)。E—clipse平臺類似PC機的主板,插件類似于PC機的擴展卡。由于Eclipse這種開發(fā)的積木式體系結(jié)構(gòu),使其發(fā)展得非常迅猛。很多行業(yè)軟件提供商,例如IBM、Intel、Sybase、Borland、BEA、WindRiver等公司都成為了Eclipse會員;Eclipse下載量已經(jīng)超過3 000萬人次,遍布120個國家;50個著名IT企業(yè)已經(jīng)提供了超過600個各種插件,有了C、Ja—va、COBOL、Perl、Python、XML等語言開發(fā)插件,還有建模、數(shù)據(jù)庫、GUI等開發(fā)插件,甚至圖形編輯的插件;在J2EE開發(fā)方面,Eclipse更是以90%的速度增長。
嵌入式系統(tǒng)開發(fā)往往需要多種工具配合,如果采用Eclipse平臺,各種工具都以插件的方式出現(xiàn),則開發(fā)人員非常容易定制自己的開發(fā)工具集。從編輯、建模、編譯、仿真、調(diào)試、測試工具到操作系統(tǒng)定制、版本管理、項目管理工具都可以無縫集成,構(gòu)建成一個界面風格完全統(tǒng)一的開發(fā)工具集合。
目前,嵌入式工具提供商已經(jīng)開始提供大量的嵌入式開發(fā)Eclipse插件。例如,ARM公司的RVDS 3.2模塊就有很大部分是Eclipse插件;MIPS公司的開發(fā)環(huán)境Sourecery G++基于GNU工具鏈和Eclipse IDE;WindRiver公司的WindRiver Workbench 2.O則完全基于E—clipse平臺,該IDE同時支持VxWorks、Linux和其他專用操作系統(tǒng);很多芯片廠商例如ADl、TI、Xilinx等公司都開始提供各種針對自已芯片的Eclipse插件工具;著名的CPLD/FPGA開發(fā)工具商Altera推出的Nios II IDE也是基于Eclipse平臺的;而Nokia也推出了稱為Nokia Widget的Eclipse插件,用于開發(fā)Nokia手機上的應(yīng)用程序。另外,國內(nèi)嵌入式工具公司Embest也推出了完全基于Eclipse的ADl處理器開發(fā)工具BDT。總之,在整個嵌入式系統(tǒng)開發(fā)的領(lǐng)域中,從硬件FPGA的設(shè)計工具到軟件的編譯工具、應(yīng)用層開發(fā)工具已經(jīng)都有了相應(yīng)的Eclipse插件,而且這一趨勢正在迅猛擴展。預(yù)計,在未來的2~3年內(nèi)中國的嵌入式開發(fā)工程師也將開始普遍使用基于Eclipse平臺的開發(fā)工具,定制適合自身的開發(fā)工具,進行更加復(fù)雜的嵌入式系統(tǒng)開發(fā)。
3 CoreSight調(diào)試體系結(jié)構(gòu)
2004年ARM公司推出了一種新的調(diào)試體系結(jié)構(gòu)CoreSight,以獲得更為強大的調(diào)試能力。CoreSight體系結(jié)構(gòu)支持多核系統(tǒng)的調(diào)試,能對全系統(tǒng)進行高帶寬的實時跟蹤,包括對系統(tǒng)總線的跟蹤與監(jiān)視。CoreSight體系結(jié)構(gòu)非常靈活,其中各個部件可以根據(jù)處理器廠商的需要進行組合。圖1是一個典型的CoreSight調(diào)試結(jié)構(gòu),其組成部分很多,主要分為4類。
(1)控制訪問部件
用于配置和控制跟蹤數(shù)據(jù)流的產(chǎn)生、獲取跟蹤數(shù)據(jù)流,但不產(chǎn)生也不處理跟蹤數(shù)據(jù)流,典型的有:
①DAP(Debug Access Port),可以實時訪問AMBA總線上的系統(tǒng)內(nèi)存、外設(shè)寄存器,以及所有調(diào)試配置寄存器,而無需掛起系統(tǒng);
②ECT(Embedded CrOSS Trigger),包含CTI(CrossTrigger Interface)和CTM(Cross Trigger Matrix),為ETM(Embedded Trace Macrocell)提供一個接口,用于將一個處理器的調(diào)試事件傳遞到另一個處理器。
(2)源部件
用于產(chǎn)生向ATB(AMBA Trace Bus)發(fā)送的跟蹤數(shù)據(jù),典型的有:
①HTM(AHB Trace Maerocell),用于獲取AHB總線跟蹤信息,包括總線的層次、存儲結(jié)構(gòu)、時序、數(shù)據(jù)流和控制流等;
②ETM(Embedded Trace Macrocell),用于獲取處理器核的跟蹤信息;
③ITM(Instrumentation Trace Macrocell),是一個由軟件驅(qū)動跟蹤源,其輸出的跟蹤信息可以由軟件設(shè)置,包括Printf類型的調(diào)試信息、操作系統(tǒng)以及應(yīng)用程序的事件信息等。
(3)連接部件
用于實現(xiàn)跟蹤數(shù)據(jù)的連接、觸發(fā)和傳輸,典型的有:
①ATB 1:1 bridge,具有2個ATB接口,用于傳遞跟蹤源發(fā)出的控制信號;
②Replicator,可以讓來自同一跟蹤源的數(shù)據(jù)同時寫到2個不同的匯集點去;
③Trace Funnel,用于將多個跟蹤數(shù)據(jù)流組合起來,在ATB總線上傳輸。
(4)匯集點
是芯片上跟蹤數(shù)據(jù)的終點,典型的有:
①TPIU(Trace Port Interface Unit),將片內(nèi)各種跟蹤源獲取的信息按照TPIU幀的格式進行組裝,然后通過Trace Port傳送到片外;
②ETB(Embedded Trace Buffer),一個32位的RAM,作為片內(nèi)跟蹤信息緩沖區(qū);
③SWO(Serial wire Output),類似TPIU,但僅輸出ITM單元的跟蹤信息,只需要一個引腳來實現(xiàn)。
對于帶有CoreSight調(diào)試體系結(jié)構(gòu)的處理器,工程師可以實現(xiàn)實時調(diào)試,當應(yīng)用程序在處理器上全速運行時,可以透明地觀察并記錄處理器中的各種事件,包括內(nèi)存單元讀寫、中斷異常的發(fā)生與處理、操作系統(tǒng)任務(wù)之間的觸發(fā)關(guān)系與運行過程等等。這一新的調(diào)試體系結(jié)構(gòu)將嵌入式系統(tǒng)調(diào)試從黑盒變成了白盒,使工程師有能力應(yīng)付更復(fù)雜系統(tǒng)的設(shè)計與調(diào)試。
使用Trace Port接口進行調(diào)試還需要專用的跟蹤器(Tracer)。如圖2所示,ARM公司的開發(fā)工具RVDS中RVT(RealView Tracer)就是這種跟蹤器,其價格較為昂貴,因此RVDS更適合SoC的設(shè)計和開發(fā)。如圖3所示,為了提供廉價的實時調(diào)試工具,ARM公司在其針對MCU的開發(fā)工具RealView MDK中,增加了圖l中的SWO接口完成實時跟蹤的功能;使用仿真器ULINK 2的JTAG接口中的2根引腳作為SWO接口,可以對Correx—M3處理器實時調(diào)試分析,能從ITM單元中實時獲取內(nèi)存單元讀寫信息、Printf打印信息、操作系統(tǒng)任務(wù)信息等。
[!--empirenews.page--]4 軟件仿真技術(shù)
通過軟件仿真的方式來進行嵌入式系統(tǒng)的設(shè)計一直是嵌入式開發(fā)工具的重點發(fā)展方向。軟件仿真可以加快軟件開發(fā)進度,使得軟件工程師對硬件工程師的依賴減弱,同時還減少了對硬件損傷的機會。另外給學習者提供了廉價的學習方法,降低了學習門檻。目前,軟件仿真技術(shù)在嵌入式的各個層面都取得了長足的發(fā)展。
(1)OPLD/FPGA設(shè)計的仿真
CPLD/FPGA的設(shè)計是嵌入式系統(tǒng)硬件設(shè)計的重要部分,而且隨著SoC系統(tǒng)設(shè)計的增長,EDA在硬件設(shè)計中所占的比例將越來越大,也越來越復(fù)雜。目前的商用EDA設(shè)計軟件已普遍具有功能強大的邏輯仿真工具,能進行完備的電路功能仿真和時序邏輯仿真,對時序和關(guān)鍵路徑延時分析已經(jīng)非常精確。
例如,Altera公司的設(shè)計工具Quartus II就具備以下強大的仿真及驗證工具:TimeQuest時序分析器、PowerPlay功耗分析器、芯片規(guī)劃器、SignalTap II嵌入式邏輯分析器、RTL查看器/技術(shù)映射查看器,還能對第三方驗證工具提供支持。
(2)單元模塊設(shè)計的仿真
單元模塊的驅(qū)動設(shè)計是嵌入式系統(tǒng)軟件設(shè)計的最底層,是嵌入式系統(tǒng)軟硬件結(jié)合處。過去的嵌入式開發(fā)工具所具備的仿真功能都只是局限于對處理器內(nèi)和指令集的仿真。而近年來出現(xiàn)的一些仿真工具,已經(jīng)大大擴大了仿真范圍,能仿真各種處理器片上單元模塊,支持各種外部輸入信號的仿真,并可以根據(jù)仿真的結(jié)果對應(yīng)用程序進行性能分析,幫助程序員優(yōu)化軟件設(shè)計。
例如ARM公司的RealView MDK,充分發(fā)揮了Keil公司μVision的模塊仿真優(yōu)勢,支持外部信號仿真、快速指令集仿真、中斷仿真、片上外設(shè)(ADC、DAC、EBI、Tim—ers、UART、CAN、I2C等)仿真等功能,并可將仿真結(jié)果以圖形化的方式呈現(xiàn)出來,例如邏輯分析儀、通信終端等。
(3)操作系統(tǒng)設(shè)計的仿真
操作系統(tǒng)在嵌入式系統(tǒng)軟件中占有重要地位,操作系統(tǒng)之上的應(yīng)用層軟件設(shè)計往往與PC機上的應(yīng)用軟件設(shè)計區(qū)別不大。嵌入式系統(tǒng)的操作系統(tǒng)通常需要根據(jù)處理器以及硬件來進行定制。目前,嵌入式操作系統(tǒng)的移植工作都需要在對硬件細節(jié)充分了解的情況下才能進行,這使研發(fā)工作常常會陷入具體硬件細節(jié)中不能自拔,硬件不穩(wěn)定的情況,所花費的時間更是無法預(yù)計。
如果能建立一個嵌入式操作系統(tǒng)仿真平臺,使嵌入式操作系統(tǒng)的設(shè)計和移植工作不用過于考慮底層硬件的細節(jié),只需要知道處理器的體系結(jié)構(gòu)即可開始工作,這將大大加快嵌入式操作系統(tǒng)設(shè)計移植和應(yīng)用層軟件開發(fā)的進度,也可以為初學者提供一個良好的平臺。在x86結(jié)構(gòu)的PC機上,已經(jīng)出現(xiàn)了一些商業(yè)的操作系統(tǒng)仿真軟件,例如vmware和virtualPC等,能完全仿真一個真實的PC,用戶可以在其上安裝各種操作系統(tǒng)。目前,在嵌入式領(lǐng)域還沒有出現(xiàn)商業(yè)的操作系統(tǒng)仿真平臺,但已經(jīng)出現(xiàn)了一些嵌入式操作系統(tǒng)仿真平臺的自由軟件。
例如,清華大學陳渝博士于2002年底開始組建的開源項目SkyEye,已經(jīng)可以模擬基于ARM內(nèi)核的CPU,包括ARM7TDMI、ARM720T、ARM9TDMI、ARM9xx、ARMlOxx、StrongARM、XScale等,并擴展了一些處理器的內(nèi)存控制和各種I/O控制器,μClinux、μC/OS—II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件(如TCP/IP、圖形子系統(tǒng)、文件子系統(tǒng)等)可以在該平臺上進行仿真運行,并能對它們進行源碼級的分析和測試。SkyEye項目組,近期已經(jīng)開始了加入MIPS處理器內(nèi)核的工作。
5 圖形化設(shè)計方法
圖形化開發(fā)在嵌入式領(lǐng)域已經(jīng)越來越多,從硬件設(shè)計到軟件編程的各個環(huán)節(jié)都已經(jīng)有了非常多的優(yōu)秀工具。例如RealView MDK的啟動代碼生成器,通過圖形對話框可以非常容易地生成上百行的匯編代碼,大大提高了效率,尤其是對于新手而言。但是這些圖形化設(shè)計工具都是針對嵌入式系統(tǒng)設(shè)計的某個環(huán)節(jié)而言的。
將整個嵌入式系統(tǒng)的設(shè)計圖形化是未來嵌入式系統(tǒng)設(shè)計的另一個新趨勢。加州大學伯克利分校的EdwardLee提出,現(xiàn)在嵌入式系統(tǒng)的開發(fā)手段——如基于文本編程和面向?qū)ο蟮墓ぞ摺茧y以用來構(gòu)建嵌入式實時系統(tǒng),因為面向?qū)ο蠛茈y直觀地表達時間和并行性,而時間和并行性在現(xiàn)在的嵌入式系統(tǒng)中是必不可少的。EdwardLee因此提出了面向角色的圖形化方法,它能夠更好地表達整個系統(tǒng),減少與特定硬件以及操作系統(tǒng)的相關(guān)性,這使更多的軟件設(shè)計和算法易于理解并被重復(fù)使用,更適合嵌入式系統(tǒng)設(shè)計。
結(jié) 語
綜上所述,可以預(yù)計在未來2~3年內(nèi),Eclipse將成為嵌入式工具的通用平臺,多種嵌入式工具將在其上無縫結(jié)合,用戶可以定制自己的開發(fā)工具、管理工具;Core—Sight調(diào)試體系結(jié)構(gòu)帶來的實時調(diào)試分析手段,將成為開發(fā)更復(fù)雜嵌入式系統(tǒng)的技術(shù)保障;軟件仿真技術(shù)和圖形化開發(fā)方法目前盡管還只是在部分層面和部分環(huán)節(jié)上有效,但是它們已經(jīng)開始改變嵌入式設(shè)計的過程,而這一趨勢終將帶來嵌入式系統(tǒng)設(shè)計方法及過程的重大變革。