ARM應用軟件的開發(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ù)應用軟件規(guī)模和開發(fā)計劃選用。
使用集成開發(fā)環(huán)境開發(fā)基于ARM的應用軟件,包括編輯、編譯、匯編、鏈接等工作全部在PC機上即可完成,調(diào)試工作則需要配合其他的模塊或產(chǎn)品方可完成
?。ㄒ唬?ARM SDT
ARM SDT的英文全稱是ARM Software Development Kit ,是ARM公司(為方便用戶在ARM芯片上進行應用軟件開發(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包括一套完整的應用軟件開發(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í)行映像文件等功能。
?。ǘ?ADS
ADS(ARM Developer Suite),是在1993年由Metrowerks公司開發(fā)是ARM處理器下最主要的開發(fā)工具。ADS 是全套的實時開發(fā)軟件工具,包編譯器生成的代碼密度和執(zhí)行速度優(yōu)異。可快速低價地創(chuàng)建ARM 結(jié)構(gòu)應用。ADS包括三種調(diào)試器ARMeXtended Debugger, AXD 向下兼容的ARMDebugger for Windows/ARM Debugger forUNIX 和ARM 符號調(diào)試器。其中AXD 不僅擁有低版本ARM調(diào)試器的所有功能,還新添了圖形用戶界面,更方便的視窗管理數(shù)據(jù)顯示,格式化和編輯以及全套的命令行界面。該產(chǎn)品還包括RealMonitor?(可以在前臺調(diào)試的同時斷點續(xù)存并且在不中斷應用的情況下讀寫內(nèi)存跟蹤調(diào)試工具)。
ADS對匯編、C/C++、java支持的均很好,是目前最成熟的ARM開發(fā)工具。很多ARM開發(fā)軟件(例如Keil)也是借用的ADS的編譯器。ADS在2006年版本已經(jīng)發(fā)布到2.2。但國內(nèi)大部分開發(fā)者使用的均是1.2版本。
?。ㄈ?RealView MDK
RealView MDK開發(fā)工具源自德國Keil公司,被全球超過10萬的嵌入式開發(fā)工程師驗證和使用,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。RealView MDK集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括?Vision3集成開發(fā)環(huán)境與 RealView編譯器。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動配置啟動代碼,集成Flash燒寫模塊,強大的Simulation設備模擬,性能分析等功能,與ARM之前的工具包ADS等相比,RealView編譯器的最新版本可將性能改善超過20%
RealView MDK的突出特性:
菜鳥的阿拉伯飛毯 —— 啟動代碼生成向?qū)?,自動引導,一日千?br/> 啟動代碼和系統(tǒng)硬件結(jié)合緊密,必須用匯編語言編寫,因而成為許多工程師難以跨越多門檻。RealView MDK的?Vision3工具可以幫您自動生成完善的啟動代碼,并提供圖形化的窗口,隨您輕松修改。無論對于初學者還是有經(jīng)驗的開發(fā)工程師,都能大大節(jié)省時間,提高開發(fā)效率。。
高手的無劍勝有劍 —— 軟件模擬器,完全脫離硬件的軟件開發(fā)過程
RealView MDK的設備模擬器可以仿真整個目標硬件,包括快速指令集仿真、外部信號和I/O仿真、中斷過程仿真、片內(nèi)所有外圍設備仿真等。開發(fā)工程師在無硬件的情況下即可開始軟件開發(fā)和調(diào)試,使軟硬件開發(fā)同步進行,大大縮短開發(fā)周期。而一般的ARM開發(fā)工具僅提供指令集模擬器,只能支持ARM內(nèi)核模擬調(diào)試。
專家的哈雷望遠鏡 —— 性能分析器,看得更遠、看得更細、看得更清
RealView MDK的性能分析器好比哈雷望遠鏡,讓您看得更遠和更準,它輔助您查看代碼覆蓋情況,程序運行時間,函數(shù)調(diào)用次數(shù)等高端控制功能,指導您輕松的進行代碼優(yōu)化,成為嵌入式開發(fā)高手。通常這些功能只有價值數(shù)千美元的昂貴的Trace工具才能提供。
業(yè)界最優(yōu)秀的編譯器——RealView 編譯器,代碼更小,性能更高
RealView MDK的RealView編譯器與ADS 1.2比較:
代碼密度:比ADS 1.2編譯的代碼尺寸小10%;
代碼性能:比ADS 1.2編譯的代碼性能高20%。
配備ULINK2仿真器+ Flash編程模塊,輕松實現(xiàn)Flash燒寫
RealView MDK無需尋求第三方編程軟件與硬件支持,通過配套的ULINK2仿真器與Flash編程工具,輕松實現(xiàn)CPU片內(nèi)FLASH、外擴FLASH燒寫,并支持用戶自行添加FLASH編程算法;而且能支持FLASH整片刪除、扇區(qū)刪除、編程前自動刪除以及編程后自動校驗等功能,輕松方便。
絕對的高性價比——國際品質(zhì),本土價格
RealView MDK中國版保留了RealView MDK國際版的所有卓越性能,而產(chǎn)品價格和國內(nèi)普通開發(fā)工具的價格差不多 ;另外我們還根據(jù)不同需求,專門定制了4個版本,以滿足工程師們不同的需要。這絕對是您選擇開發(fā)工具的首選。
更貼身的服務——專業(yè)的本地化的技術(shù)支持和服務
RealView MDK中國版用戶將享受到專業(yè)的本地化的技術(shù)支持和服務,包括電話、Email、論壇、中文技術(shù)文檔等,這將為國內(nèi)工程師們開發(fā)出更有競爭力的產(chǎn)品提供更多的助力
?。ㄋ模?GNU
GNU是“GNU‘s Not Unix”的遞歸縮寫。Stallman宣布GNU應當發(fā)音為Guh-NOO以避免與new這個單詞混淆(注:Gnu在英文中原意為非洲牛羚,發(fā)音與new相同)。UNIX是一種廣泛使用的商業(yè)操作系統(tǒng)的名稱。由于GNU將要實現(xiàn)UNIX系統(tǒng)的接口標準,因此GNU計劃可以分別開發(fā)不同的操作系統(tǒng)部件。GNU計劃采用了部分當時已經(jīng)可自由使用的軟件,例如TeX排版系統(tǒng)和X Window視窗系統(tǒng)等。不過GNU計劃也開發(fā)了大批其他的自由軟件。
1985年Richard Stallman又創(chuàng)立了自由軟件基金會(Free Software Foundation)來為GNU計劃提供技術(shù)、法律以及財政支持。盡管GNU計劃大部分時候是由個人自愿無償貢獻,但FSF有時還是會聘請程序員幫助編寫。當GNU計劃開始逐漸獲得成功時,一些商業(yè)公司開始介入開發(fā)和技術(shù)支持。當中最著名的就是之后被Red Hat兼并的Cygnus Solutions
到了1990年,GNU計劃已經(jīng)開發(fā)出的軟件包括了一個功能強大的文字編輯器Emacs,C語言編譯器GCC,以及大部分UNIX系統(tǒng)的程序庫和工具。唯一依然沒有完成的重要組件就是操作系統(tǒng)的內(nèi)核(稱為HURD)。
1991年Linus Torvalds編寫出了與UNIX兼容的Linux操作系統(tǒng)內(nèi)核并在GPL條款下發(fā)布。Linux之后在網(wǎng)上廣泛流傳,許多程序員參與了開發(fā)與修改。1992年Linux與其他GNU軟件結(jié)合,完全自由的操作系統(tǒng)正式誕生。該操作系統(tǒng)往往被稱為“GNU/Linux”或簡稱Linux。(盡管如此GNU計劃自己的內(nèi)核Hurd依然在開發(fā)中,目前已經(jīng)發(fā)布Beta版本。)
許多UNIX系統(tǒng)上也安裝了GNU軟件,因為GNU軟件的質(zhì)量比之前UNIX的軟件還要好。GNU工具還被廣泛地移植到Windows和Mac OS上。
(五) ARM REALVIEW DEVELOPER SUITE
RealView Developer Suite工具是ARM公司是推出的新一代ARM集成開發(fā)工具。支持所有ARM 系列核,并與眾多第三方實時操作系統(tǒng)及工具商合作簡化開發(fā)流程。開發(fā)工具包含以下組件:
· 完全優(yōu)化的ISO C/C++編譯器
· C++ 標準模板庫
· 強大的宏編譯器
· 支持代碼和數(shù)據(jù)復雜存儲器布局的連接器
· 可選 GUI調(diào)試器
· 基于命令行的符號調(diào)試器(armsd)
· 指令集仿真器
· 生成無格式二進制工具、Intel 32位和Motorola 32位ROM映像代 碼的指令集模擬工具
· 庫創(chuàng)建工具
· 內(nèi)容豐富的在線文檔
?。?IAR EWARM
Embedded Workbench for ARM 是IAR Systems 公司為ARM 微處理器開發(fā)的一個集成開發(fā)環(huán)境(下面簡稱IAR EWARM)。比較其他的ARM 開發(fā)環(huán)境,IAR EWARM 具有入門容易、使用方便和代碼緊湊等特點。
IAR Systems 公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.30。這里提供的是32k 代碼限制、但沒有時間限制的Kickstart版。
EWARM 中包含一個全軟件的模擬程序(simulator)。用戶不需要任何硬件支持就可以模擬各種ARM 內(nèi)核、外部設備甚至中斷的軟件運行環(huán)境。從中可以了解和評估IAR EWARM 的功能和使用方法。
IAR EWARM 的主要特點如下:
1、高度優(yōu)化的IAR ARM C/C++ Compiler
2、IAR ARM Assembler
3、一個通用的IAR XLINK Linker
4、IAR XAR 和XLIB 建庫程序和IAR DLIB C/C++運行庫
5、功能強大的編輯器
6、項目管理器
7、命令行實用程序
8、IAR C-SPY 調(diào)試器(先進的高級語言調(diào)試器
?。ㄆ撸?KEIL ARM-MDKARM
Keil uVision調(diào)試器可以幫助用戶準確地調(diào)試ARM器件的片內(nèi)外圍功能(I2C、 CAN、UART、SPI、中斷、I/O口、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器和PWM模塊等功能)。ULINK USB-JTAG轉(zhuǎn)換器將PC機的USB端口與用戶的目標硬件相連(通過JTAG或OCD),使用戶可在目標硬件上調(diào)試代碼。通過使用Keil uVision IDE/調(diào)試器和ULINK USB-JTAG轉(zhuǎn)換器,用戶可以很方便地編輯、下載和在實際的目標硬件上測試嵌入的程序。
支持Philips、Samsung、 Atmel、 Analog Devices、 Sharp、 ST等眾多廠商ARM7內(nèi)核的ARM微控制器。
高效工程管理的uVision3集成開發(fā)環(huán)境
* Project/Target/Group/File的重疊管理模式,并可逐級設置;
* 高度智能彩色語法顯示;
* 支持編輯狀態(tài)的斷點設置,并在仿真狀態(tài)下有效。
高速ARM指令/外設模擬器
* 高效模擬算法縮短大型軟件的模擬時間;
* 軟件模擬進程中允許建立外部輸入信號;
* 獨特的工具窗口,可快速查看寄存器和方便配置外設;
* 支持C調(diào)試描述語言,可建立與實際硬件高度吻合的仿真平臺;
* 支持簡單/條件/邏輯表達式/存儲區(qū)讀寫/地址范圍等斷點。
多種流行編譯工具選擇
* Keil高效率C編譯器;
* ARM公司的ADS/RealView 編譯器;
* GNU GCC 編譯器;
* 后續(xù)廠商的編譯器。
(八) MULTI 2000
Multi 2000是美國Green Hills軟件公司開發(fā)的集成開發(fā)環(huán)境,支持C/C++/Embedded C++ /Ada 95/Fortran編程語言的開發(fā)和調(diào)試,可運行于Windows平臺和Unix平臺,并支持各類設備的遠程調(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)工具。
?。ň牛?Embest IDE
Embest IDE英文全稱是Embest Integrated Development Environment,是深圳市英蓓特信息技術(shù)有限公司推出的一套應用于嵌入式軟件開發(fā)的新一代集成開發(fā)環(huán)境。
Embest IDE是一個高度集成的圖形界面操作環(huán)境,包含編輯器、編譯器、匯編器、鏈接器、調(diào)試器等工具,其界面同Microsoft Visual Studio類似。 Embest IDE支持ARM、Motorola等多家公司不同系列的處理器,對于ARM系列處理器,目前支持到ARM9系列,包括ARM7、ARM5等低系列芯片。
?。ㄊ?Hitool for ARM
由Hitool International Inc出品,是一種較新的ARM嵌入式應用軟件開發(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)試功能。
?。ㄊ唬?JEENI仿真器
JEENI仿真器是美國EPI公司生產(chǎn)的專門用于調(diào)試ARM7系列的開發(fā)工具。它與PC之間通過以太網(wǎng)口或串口連接,與ARM7目標板之間通過JTAG口連接。該仿真器使用獨立電源。
JEENI仿真器支持ARM/THUMB指令,支持匯編/高級語言調(diào)試。用戶應用程序通過JEENI仿真器下載到目標RAM中。通過JEENI仿真器,用戶可以觀察/修改ARM7的寄存器和存儲器的內(nèi)容,用戶可以在所下載的程序上設置斷點,用戶可以以匯編/高級語言單步執(zhí)行程序,也可以全速運行程序,用戶可以觀察高級語言變量的數(shù)據(jù)結(jié)構(gòu)及內(nèi)容并對變量的內(nèi)容在線修改。
JEENI 內(nèi)部使用了一片帶有高速緩存的 ARM 處理器,支持對調(diào)試操作的快速響應,比如:單步、讀寫存儲器、讀寫寄存器和下載應用程序到目標板。JEENI 的這種結(jié)構(gòu),允許以太網(wǎng)接口在處理器執(zhí)行JTAG指令的同時訪問存儲器。這種設計極大的提高了下載速度。
JEENI仿真器能夠很好地與SDT2.5工具連接,用戶可使用SDT的編譯器和調(diào)試界面。JEENI 對那些正在使用ARM BlackICE/EmbeddedICE JTAG接口的用戶來說是即插即用的替代品。JEENI 可用于ARM SDT 2.11a 或 SDT 2.5,另外大多數(shù)第三方的調(diào)試器也都支持 JEENI
?。ㄊ?ULINK2 仿真器
ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器,是ULink仿真器的升級版本。ULINK2不僅具有ULINK仿真器的所有功能,還增加了串行調(diào)試(SWD)支持,返回時鐘支持和實時代理等功能。開發(fā)工程師通過結(jié)合使用RealView MDK的調(diào)試器和ULINK2,可以方便的在目標硬件上進行片上調(diào)試(使用on-chip JTAG, SWD和 OCDS)、Flash編程…
ULINK2 新特點:
標準Windows USB驅(qū)動支持ULINK2即插即用
支持基于 ARM Cortex-M3的串行調(diào)試
支持程序運行期間的存儲器讀寫、終端仿真和串行調(diào)試輸出
支持10-pin 連接線 (也支持20-pin 連接線)
ULINK2主要功能:
USB通訊接口高速下載用戶代碼
存儲區(qū)域/寄存器查看
快速單步程序運行
多種程序斷點
片內(nèi)Flash編程
(十三) Multi-ICE
Multi-ICE是ARM公司自己的JTAG在線仿真器,目前的最新版本是2.1版。
Multi-ICE的JTAG鏈時鐘可以設置為5 kHz到10 MHz,實現(xiàn)JTAG操作的一些簡單邏輯由FPGA實現(xiàn),使得并行口的通信量最小,以提高系統(tǒng)的性能。Multi-ICE硬件支持低至1V的電壓。Multi-ICE 2.1還可以外部供電,不需要消耗目標系統(tǒng)的電源,這對調(diào)試類似手機等便攜式、電池供電設備是很重要的。
Multi-ICE 2.x支持該公司的實時調(diào)試工具MultiTrace,MultiTrace包含一個處理器,因此可以跟蹤觸發(fā)點前后的軌跡,并且可以在不終止后臺任務的同時對前臺任務進行調(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)試。它還支持低頻或變頻設計以及超低壓核的調(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)點:
快速的下載和單步速度。
用戶控制的輸入/輸出位。
可編程的JTAG位傳送速率。
開放的接口,允許調(diào)試非ARM的核或DSP。
網(wǎng)絡連接到多個調(diào)試器。
目標板供電,或外接電源