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