嵌入式開發(fā)工具發(fā)展趨勢
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手機上的應用程序。另外,國內(nèi)嵌入式工具公司Embest也推出了完全基于Eclipse的ADl處理器開發(fā)工具BDT??傊?,在整個嵌入式系統(tǒng)開發(fā)的領(lǐng)域中,從硬件FPGA的設計工具到軟件的編譯工具、應用層開發(fā)工具已經(jīng)都有了相應的Eclipse插件,而且這一趨勢正在迅猛擴展。預計,在未來的2~3年內(nèi)中國的嵌入式開發(fā)工程師也將開始普遍使用基于Eclipse平臺的開發(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)存、外設寄存器,以及所有調(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ū)動跟蹤源,其輸出的跟蹤信息可以由軟件設置,包括Printf類型的調(diào)試信息、操作系統(tǒ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)試,當應用程序在處理器上全速運行時,可以透明地觀察并記錄處理器中的各種事件,包括內(nèi)存單元讀寫、中斷異常的發(fā)生與處理、操作系統(tǒng)任務之間的觸發(fā)關(guān)系與運行過程等等。這一新的調(diào)試體系結(jié)構(gòu)將嵌入式系統(tǒng)調(diào)試從黑盒變成了白盒,使工程師有能力應付更復雜系統(tǒng)的設計與調(diào)試。
使用Trace Port接口進行調(diào)試還需要專用的跟蹤器(Tracer)。如圖2所示,ARM公司的開發(fā)工具RVDS中RVT(RealView Tracer)就是這種跟蹤器,其價格較為昂貴,因此RVDS更適合SoC的設計和開發(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)任務信息等。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論