ARM開發工具綜述

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

發佈了44 篇原創文章 · 獲贊 40 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章