《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > ARM開發(fā)工具綜述

ARM開發(fā)工具綜述

2015-09-28
關(guān)鍵詞: ARM 開發(fā)工具

  ARM應(yīng)用軟件的開發(fā)工具根據(jù)功能的不同,分別有編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、嵌入式實時操作系統(tǒng)、函數(shù)庫、評估板、JTAG仿真器、在線仿真器等,目前世界上約有四十多家公司提供以上不同類別的產(chǎn)品。
  用戶選用ARM處理器開發(fā)嵌入式系統(tǒng)時,選擇合適的開發(fā)工具可以加快開發(fā)進度,節(jié)省開發(fā)成本。因此一套含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理及函數(shù)庫的集成開發(fā)環(huán)境(IDE)一般來說是必不可少的,至于嵌入式實時操作系統(tǒng)、評估板等其他開發(fā)工具則可以根據(jù)應(yīng)用軟件規(guī)模和開發(fā)計劃選用。
  使用集成開發(fā)環(huán)境開發(fā)基于ARM的應(yīng)用軟件,包括編輯、編譯、匯編、鏈接等工作全部在PC機上即可完成,調(diào)試工作則需要配合其他的模塊或產(chǎn)品方可完成,目前常見的調(diào)試方法有以下幾種:
  1、指令集模擬器
  部分集成開發(fā)環(huán)境提供了指令集模擬器,可方便用戶在PC機上完成一部分簡單的調(diào)試工作,但是由于指令集模擬器與真實的硬件環(huán)境相差很大,因此即使用戶使用指令集模擬器調(diào)試通過的程序也有可能無法在真實的硬件環(huán)境下運行,用戶最終必須在硬件平臺上完成整個應(yīng)用的開發(fā)。
  2、駐留監(jiān)控軟件
  駐留監(jiān)控軟件(Resident Monitors)是一段運行在目標板上的程序,集成開發(fā)環(huán)境中的調(diào)試軟件通過以太網(wǎng)口、并行端口、串行端口等通訊端口與駐留監(jiān)控軟件進行交互,由調(diào)試軟件發(fā)布命令通知駐留監(jiān)控軟件控制程序的執(zhí)行、讀寫存儲器、讀寫寄存器、設(shè)置斷點等。
  駐留監(jiān)控軟件是一種比較低廉有效的調(diào)試方式,不需要任何其他的硬件調(diào)試和仿真設(shè)備。ARM公司的Angel就是該類軟件,大部分嵌入式實時操作系統(tǒng)也是采用該類軟件進行調(diào)試,不同的是在嵌入式實時操作系統(tǒng)中,駐留監(jiān)控軟件是作為操作系統(tǒng)的一個任務(wù)存在的。
  駐留監(jiān)控軟件的不便之處在于它對硬件設(shè)備的要求比較高,一般在硬件穩(wěn)定之后才能進行應(yīng)用軟件的開發(fā),同時它占用目標板上的一部分資源,而且不能對程序的全速運行進行完全仿真,所以對一些要求嚴格的情況不是很適合。
  3、JTAG仿真器
  JTAG仿真器也稱為JTAG調(diào)試器,是通過ARM芯片的JTAG邊界掃描口進行調(diào)試的設(shè)備。JTAG仿真器比較便宜,連接比較方便,通過現(xiàn)有的JTAG邊界掃描口與 ARM CPU 核通信,屬于完全非插入式(即不使用片上資源)調(diào)試,它無需目標存儲器,不占用目標系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。另外,由于JTAG調(diào)試的目標程序是在目標板上執(zhí)行,仿真更接近于目標硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數(shù)不匹配,電線長度的限制等被最小化了。使用集成開發(fā)環(huán)境配合JTAG仿真器進行開發(fā)是目前采用最多的一種調(diào)試方式。
  4、在線仿真器
  在線仿真器使用仿真頭完全取代目標板上的CPU,可以完全仿真ARM芯片的行為,提供更加深入的調(diào)試功能。但這類仿真器為了能夠全速仿真時鐘速度高于100MHz的處理器,通常必須采用極其復雜的設(shè)計和工藝,因而其價格比較昂貴。在線仿真器通常用在ARM的硬件開發(fā)中,在軟件的開發(fā)中較少使用,其價格高昂也是在線仿真器難以普及的因素。
  在以下的章節(jié)中,我們選取了ARM SDT、ARM ADS、MULTI 2000、Hitools for ARM、Embest IDE for ARM五種集成開發(fā)環(huán)境向讀者作一個簡單的介紹,這些產(chǎn)品在國內(nèi)有相對較暢通的銷售渠道,用戶容易購買。前三種由國外廠商出品,歷史比較悠久,在全球范圍內(nèi)應(yīng)用較為廣泛,后兩種由國內(nèi)廠商推出,具有很高的性價比。另外選取了國際市場上較流行的兩種JTAG仿真器:EPI公司的JEENI和ARM公司的Multi-ICE。
  二、 ARM SDT
  ARM SDT的英文全稱是ARM Software Development Kit ,是ARM公司(www.arm.com)為方便用戶在ARM芯片上進行應(yīng)用軟件開發(fā)而推出的一整套集成開發(fā)工具。ARM SDT經(jīng)過ARM公司逐年的維護和更新,目前的最新版本是2.5.2,但從版本2.5.1開始,ARM公司宣布推出一套新的集成開發(fā)工具ARM ADS 1.0,取ARM SDT而代之,今后將不會再看到ARM SDT的新版本。
  ARM SDT由于價格適中,同時經(jīng)過長期的推廣和普及,目前擁有最廣泛的ARM軟件開發(fā)用戶群體,也被相當多的ARM公司的第三方開發(fā)工具合作伙伴集成在自己的產(chǎn)品中,比如美國EPI公司的JEENI仿真器。
  ARM SDT(以下關(guān)于ARM SDT的描述均是以版本 2.50為對象)可在Windows95、98、NT以及Solaris 2.5/2.6、HP-UX 10上運行,支持最高到ARM9(含ARM9)的所有ARM處理器芯片的開發(fā),包括StrongARM。
  ARM SDT包括一套完整的應(yīng)用軟件開發(fā)工具:
  ? armcc ARM的C編譯器,具有優(yōu)化功能,兼容于ANSI C。
  ? tcc  THUMB的C編譯器,同樣具有優(yōu)化功能,兼容于ANSI C。
  ? armasm 支持ARM和THUMB的匯編器。
  ? armlink ARM連接器,連接一個和多個目標文件,最終生成ELF格式的可執(zhí)行映像文件。
  ? armsd ARM和THUMB的符號調(diào)試器。
  以上工具為命令行開發(fā)工具,均被集成在SDT的兩個Windows開發(fā)工具ADW和APM中,用戶無需直接使用命令行工具。
  ? APM  Application Project Manageer,ARM工程管理器,完全圖形界面,負責管理源文件,完成編輯、編譯、鏈接并最終生成可執(zhí)行映像文件等功能,見下圖。
  ? ADW  Application Debugger Windows,ARM調(diào)試工具,ADW提供一個調(diào)試C、C++和匯編源文件的全窗口源代碼級調(diào)試環(huán)境,在此也可以執(zhí)行匯編指令級調(diào)試,同時可以查看寄存器、存儲區(qū)、棧等調(diào)試信息。
  ARM SDT還提供一些實用程序,如fromELF、armprof、decaxf等,可以將ELF文件轉(zhuǎn)換為不同的格式,執(zhí)行程序分析以及解析ARM可執(zhí)行文件格式等。
  ARM SDT集成快速指令集模擬器,用戶可以在硬件完成以前完成一部分調(diào)試工作;ARM SDT提供ANSI C、C++、Embedded C函數(shù)庫,所有庫均以lib形式提供,每個庫都分為ARM指令集和THUMB指令集兩種,同時在各指令集中也分為高字節(jié)結(jié)尾(big endian)和低字節(jié)結(jié)尾(little endian)兩種。
  用戶使用ARM SDT開發(fā)應(yīng)用程序可選擇配合Angel駐留模塊或者JTAG仿真器進行,目前大部分JTAG仿真器均支持ARM SDT。
  ARM SDT 2.50的零售價一般在4000美元到4500美元。
  三、 ARM ADS
  ARM ADS的英文全稱為 ARM Developer Suite,是ARM公司推出的新一代ARM集成開發(fā)工具,用來取代ARM公司以前推出的開發(fā)工具ARM SDT,目前ARM ADS的最新版本為1.2。
  ARM ADS起源于ARM SDT,對一些SDT的模塊進行了增強并替換了一些SDT的組成部分,用戶可以感受到的最強烈的變化是ADS使用CodeWarrior IDE集成開發(fā)環(huán)境替代了SDT的APM,使用AXD替換了ADW,現(xiàn)代集成開發(fā)環(huán)境的一些基本特性如源文件編輯器語法高亮,窗口駐留等功能在ADS中才得以體現(xiàn)。
  ARM ADS支持所有ARM系列處理器包括最新的ARM9E和ARM10,除了ARM SDT支持的運行操作系統(tǒng)外還可以在Windows2000/Me以及RedHat Linux上運行。
  ARM ADS由六部分組成:
  ? 代碼生成工具(Code Generation Tools)
  代碼生成工具由源程序編譯、匯編、鏈接工具集組成。ARM公司針對ARM系列每一種結(jié)構(gòu)都進行了專門的優(yōu)化處理,這一點除了作為ARM結(jié)構(gòu)的設(shè)計者的ARM公司,其他公司都無法辦到,ARM公司宣稱,其代碼生成工具最終生成的可執(zhí)行文件最多可以比其他公司工具套件生成的文件小20%。
  ? 集成開發(fā)環(huán)境(CodeWarrior IDE from Metrowerks)
  CodeWarrior IDE是Metrowerks公司一套比較有名的集成開發(fā)環(huán)境,有不少廠商將它作為界面工具集成在自己的產(chǎn)品中。CodeWarrior IDE包含工程管理器、代碼生成接口、語法敏感編輯器、源文件和類瀏覽器、源代碼版本控制系統(tǒng)接口、文本搜索引擎等,其功能與Visual Studio相似,但界面風格比較獨特。ADS僅在其PC機版本中集成了該IDE。
  ? 調(diào)試器(Debuggers)
  調(diào)試器部分包括兩個調(diào)試器:ARM擴展調(diào)試器AXD(ARM eXtended Debugger )、ARM符號調(diào)試器armsd(ARM symbolic debugger)。
  AXD基于Windows9X/NT風格,具有一般意義上調(diào)試器的所有功能,包括簡單和復雜斷點設(shè)置、棧顯示、寄存器和存儲區(qū)顯示、命令行接口等。
  Armsd作為一個命令行工具輔助調(diào)試或者用在其他操作系統(tǒng)平臺上。
  ? 指令集模擬器(Instruction Set Simulators)
  用戶使用指令集模擬器無需任何硬件即可在PC機上完成一部分調(diào)試工作。
  ? ARM 開發(fā)包(ARM Firmware Suite)
  ARM開發(fā)包由一些底層的例程和庫組成,幫助用戶快速開發(fā)基于ARM的應(yīng)用和操作系統(tǒng)。具體包括系統(tǒng)啟動代碼、串行口驅(qū)動程序、時鐘例程、中斷處理程序等,Angel調(diào)試軟件也包含在其中。
  ? ARM應(yīng)用庫(ARM Applications Library)
  ADS的ARM應(yīng)用庫完善和增強了SDT中的函數(shù)庫,同時還包括一些相當有用的提供了源代碼的例程。
  用戶使用ARM ADS開發(fā)應(yīng)用程序與使用ARM SDT完全相同,同樣是選擇配合Angel駐留模塊或者JTAG仿真器進行,目前大部分JTAG仿真器均支持ARM ADS。
  ARM ADS的零售價為5500美元,如果選用不固定的許可證方式則需要6500美元。
  四、 Multi 2000
  Multi 2000是美國Green Hills軟件公司(www.ghs.com)開發(fā)的集成開發(fā)環(huán)境,支持C/C++/Embedded C++/Ada 95/Fortran編程語言的開發(fā)和調(diào)試,可運行于Windows平臺和Unix平臺,并支持各類設(shè)備的遠程調(diào)試。
  Multi 2000支持Green Hills公司的各類編譯器以及其它遵循EABI標準的編譯器,同時Multi 2000支持眾多流行的16位、32位和64位處理器和DSP,如PowerPC、ARM、MIPS、x86、Sparc、TriCore、SH-DSP等,并支持多處理器調(diào)試。
  Multi 2000包含完成一個軟件工程所需要的所有工具,這些工具可以單獨使用,也可集成第三方系統(tǒng)工具。Multi 2000各模塊相互關(guān)系以及和應(yīng)用系統(tǒng)相互作用如下圖所示:
  l 工程生成工具(Project Builer)
  工程生成工具實現(xiàn)對項目源文件、目標文件、庫文件以及子項目的統(tǒng)一管理,顯示程序結(jié)構(gòu),檢測文件相互依賴關(guān)系,提供編譯和鏈接的圖形設(shè)置窗口,并可對編程語言的進行特定環(huán)境設(shè)定。
  l 源代碼調(diào)試器(Source-Level Debugger)
  源代碼調(diào)試器提供程序裝載、執(zhí)行、運行控制和監(jiān)視所需要的強大的窗口調(diào)試環(huán)境,支持各類語言的顯示和調(diào)試,同時可以觀察各類調(diào)試信息。
  l 事件分析器(EventAnalyzer)
  事件分析器提供用戶觀察和跟蹤各類應(yīng)用系統(tǒng)運行和RTOS事件的可配置的圖形化界面,它可移植到很多第三方工具或集成到實時操作系統(tǒng)中,并對以下事件提供基于時間的測量:任務(wù)上下文切換、信號量獲取/釋放、中斷和異常、消息發(fā)送/接受、用戶定義事件。
  l 性能剖析器(Performance Profiler)
  性能剖析器提供對代碼運行時間的剖析,可基于表格或圖形顯示結(jié)果,有效的幫助用戶優(yōu)化代碼。
  l 實時運行錯誤檢查工具(Run-Time Error Checking)
  實時運行錯誤檢查工具提供對程序運行錯誤的實時檢測,對程序代碼大小和運行速度只有極小影響,并具有內(nèi)存泄漏檢測功能。
  l 圖形化瀏覽器(Graphical Brower)
  圖形化瀏覽器提供對程序中的類、結(jié)構(gòu)變量、全局變量等系統(tǒng)單元的單獨顯示,并可顯示靜態(tài)的函數(shù)調(diào)用關(guān)系以及動態(tài)的函數(shù)調(diào)用表。
  l 文本編輯器(Text Editor)
  Multi 2000的文本編輯器是一個具有豐富特性的用戶可配置的文本圖形化編輯工具,提供關(guān)鍵字高亮顯示、自動對齊等輔助功能。
  l 版本控制工具(Version Control System)
  Multi 2000的版本控制工具和Multi 2000環(huán)境緊密結(jié)合,提供對應(yīng)用工程的多用戶共同開發(fā)功能。Multi 2000的版本控制工具通過配置對支持很多流行的版本控制程序,如Rational公司的ClearCase等。
  五、 Embest IDE
  Embest IDE英文全稱是Embest Integrated Development Environment,是深圳市英蓓特信息技術(shù)有限公司(www.embedinfo.com)推出的一套應(yīng)用于嵌入式軟件開發(fā)的新一代集成開發(fā)環(huán)境。
  Embest IDE是一個高度集成的圖形界面操作環(huán)境,包含編輯器、編譯器、匯編器、鏈接器、調(diào)試器等工具,其界面同Microsoft Visual Studio類似(見下圖)。Embest IDE支持ARM、Motorola等多家公司不同系列的處理器,對于ARM系列處理器,目前支持到ARM9系列,包括ARM7、ARM5等低系列芯片。
  Embest IDE運行的主機環(huán)境為Windows95/98/NT/Me/2000,支持的開發(fā)語言包括標準C、Embedded C和匯編語言。
  Embest IDE包括編輯器、編譯器、連接器、調(diào)試器、工程管理器等功能模塊,用戶同時可選配Embest JTAG仿真器。Embest IDE的所有與處理器和調(diào)試設(shè)備相關(guān)模塊采用即插即用方式,可在同一個工作區(qū)中同時管理多個應(yīng)用軟件和庫工程,各工程均可配置不同的處理器和仿真器,用戶可在各工程中無縫切換。
  Embest IDE主要特性:
  l 工程管理器:圖形化的工程管理工具,負責應(yīng)用源程序的文件組織和管理,提供編譯、鏈接、庫文件的設(shè)置窗口。
  l 源碼編輯器:標準的文本編輯功能,支持語法關(guān)鍵字、關(guān)鍵字色彩顯示等。
  l 編譯工具:集成著名優(yōu)秀自由軟件GNU的GCC編譯器,并經(jīng)過優(yōu)化和嚴格測試。
  l 調(diào)試器:源碼級調(diào)試,提供了圖形和命令行兩種調(diào)試方式,可進行斷點設(shè)置、單步執(zhí)行、異常處理,可查看修改內(nèi)存、寄存器、變量等,可查看函數(shù)棧,可進行反匯編等。
  l 調(diào)試設(shè)備:Embest JTAG仿真器,一端是一個DB25的接口,連接到主機的并行口,另外一端是IDC插頭,連接到目標板的JTAG接口。
  l 聯(lián)機幫助:中、英文兩種版本在線幫助文檔。
  用戶可以使用Embest IDE配合Embest JTAG仿真器進行應(yīng)用軟件的開發(fā),Embest IDE同時也支持一些國內(nèi)外常用的Jtag Cable線。
  Embest IDE的零售價格為9600人民幣(包括Embest JTAG仿真器)。
  六、 Hitool for ARM
  由Hitool International Inc.( www.hitoolsys.com)出品,是一種較新的ARM嵌入式應(yīng)用軟件開發(fā)系統(tǒng),主要包括Hitool ARM Debugger、GNU Compiler(內(nèi)建)、JTAG cable、評估板以及嵌入式實時操作系統(tǒng)ThreadX等。其中編譯器模塊可以替換成ARM ADS Compiler或ARM SDT Compiler。
  其主要特點如下:
  1) 近似MS Visual Studio的調(diào)試界面風格,可以在Win98/ME/NT等多種Win32環(huán)境下運行;
  2) 優(yōu)秀的工程管理器、源代碼和二進制代碼編輯器、字符串搜索引擎以及調(diào)試目標的自由拖放等功能;
  3) 支持匯編、C以及C++源碼級調(diào)試,不僅可以通過串口和并口進行本地調(diào)試,也可以通過TCP/IP進行遠端調(diào)試;
  4) 集成了S-Record、Binary和Disassembly格式的內(nèi)存上下載工具,F(xiàn)lash編程工具;
  5) 支持多種常用的Jtag Cable,具備通過宏和腳本實現(xiàn)的自動化調(diào)試功能。
  有關(guān)Hitool for ARM的詳細資料見附錄和本書附帶光盤。
  七、 JEENI仿真器
  JEENI仿真器是美國EPI公司(www.epitools.com) 生產(chǎn)的專門用于調(diào)試ARM7系列的開發(fā)工具。它與PC之間通過以太網(wǎng)口或串口連接,與ARM7目標板之間通過JTAG口連接。該仿真器使用獨立電源。
  JEENI仿真器支持ARM/THUMB指令,支持匯編/高級語言調(diào)試。用戶應(yīng)用程序通過JEENI仿真器下載到目標RAM中。通過JEENI仿真器,用戶可以觀察/修改ARM7的寄存器和存儲器的內(nèi)容,用戶可以在所下載的程序上設(shè)置斷點,用戶可以以匯編/高級語言單步執(zhí)行程序,也可以全速運行程序,用戶可以觀察高級語言變量的數(shù)據(jù)結(jié)構(gòu)及內(nèi)容并對變量的內(nèi)容在線修改。
  JEENI 內(nèi)部使用了一片帶有高速緩存的 ARM 處理器,支持對調(diào)試操作的快速響應(yīng),比如:單步、讀寫存儲器、讀寫寄存器和下載應(yīng)用程序到目標板。JEENI 的這種結(jié)構(gòu),允許以太網(wǎng)接口在處理器執(zhí)行JTAG指令的同時訪問存儲器。這種設(shè)計極大的提高了下載速度。
  JEENI仿真器能夠很好地與SDT2.5工具連接,用戶可使用SDT的編譯器和調(diào)試界面。JEENI 對那些正在使用ARM BlackICE/EmbeddedICE JTAG接口的用戶來說是即插即用的替代品。JEENI 可用于ARM SDT 2.11a 或 SDT 2.5,另外大多數(shù)第三方的調(diào)試器也都支持 JEENI。
  八、 Multi-ICE
  Multi-ICE是ARM公司自己的JTAG在線仿真器,目前的最新版本是2.1版。
  Multi-ICE的JTAG鏈時鐘可以設(shè)置為5 kHz到10 MHz,實現(xiàn)JTAG操作的一些簡單邏輯由FPGA實現(xiàn),使得并行口的通信量最小,以提高系統(tǒng)的性能。Multi-ICE硬件支持低至1V的電壓。Multi-ICE 2.1還可以外部供電,不需要消耗目標系統(tǒng)的電源,這對調(diào)試類似手機等便攜式、電池供電設(shè)備是很重要的。
  Multi-ICE 2.x支持該公司的實時調(diào)試工具MultiTrace,MultiTrace包含一個處理器,因此可以跟蹤觸發(fā)點前后的軌跡,并且可以在不終止后臺任務(wù)的同時對前臺任務(wù)進行調(diào)試,在微處理器運行時改變存儲器的內(nèi)容,所有這些特性使延時降到最低。
  Multi-ICE 2.x支持ARM7、ARM9、ARM9E、ARM 10和Intel Xscale微結(jié)構(gòu)系列。它通過TAP控制器串聯(lián),提供多個ARM處理器以及混合結(jié)構(gòu)芯片的片上調(diào)試。它還支持低頻或變頻設(shè)計以及超低壓核的調(diào)試,并且支持實時調(diào)試。
  Multi-ICE提供支持Windows NT4.0、Windows95/ 98/2000/Me、HPUX 10.20 和 Solaris V2.6/7.0的驅(qū)動程序。
  Multi-ICE主要優(yōu)點:
  l 快速的下載和單步速度。
  l 用戶控制的輸入/輸出位。
  l 可編程的JTAG位傳送速率。
  l 開放的接口,允許調(diào)試非ARM的核或DSP。
  l 網(wǎng)絡(luò)連接到多個調(diào)試器。
  l 目標板供電,或外接電源。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。