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