ARM編輯、編譯工具

手動編譯html

編譯器問題,確定是GNU的大名鼎鼎的GCC了,與此相關的什麼鏈接器,彙編器也都包含在內了。linux

針對arm的GCC,固然就是arm-linux-gcc了,我所用的版本就是友善之臂光盤自帶arm-linux-gcc 4.4.3。也有資料說也能夠用arm-elf-gcc,這個與arm-linux-gcc帶的c庫不一樣,是uclibc,更精簡更適合嵌入式。網絡

手動編譯須要咱們本身寫Makefile文件,涉及到編譯過程的依賴等細節問題。在咱們實際開發中,能夠不經過這種方式,可是須要了解這個過程。架構

自動編譯函數

1ADS1.2工具

    ADSARM公司的集成開發環境軟件,ADS包括了四個模塊分別是:SIMULATORC 編譯器;實時調試器;應用函數庫佈局

特色:學習

     C編譯器效率極高;支持C以及C++,使工程師能夠很方便的使用C語言進行開發;開發工具

     提供軟件模擬仿真功能,使沒有Emulators的學習者也可以熟悉ARM的指令系統;測試

(直接就能夠在IDE環境下,經過運行本身編寫的彙編或C語言,查看ARM系統中寄存器的狀況)

     配合FFT-ICE使用,ADS1.2提供強大的實時調試跟蹤功能,片內運行狀況盡在掌握;

     ADS1.2須要硬件支持才能發揮強大功能,目前支持的硬件調試器有Multi-ICE以及兼容Multi-ICE的調試工具如FFT-ICE等;

     簡易下載電纜不能支持ADS1.2

 2ARM REALVIEW DEVELOPER SUITE

    RealView Developer Suite工具是ARM公司是推出的新一代ARM集成開發工具,支持全部ARM系列核,並與衆多第三方實時操做系統及工具商合做簡化開發流程。

開發工具包含如下組件:

     · 徹底優化的ISO C/C++編譯器;

     · C++ 標準模板庫;

     · 強大的宏編譯器;

     · 支持代碼和數據複雜存儲器佈局的鏈接器;

     · 可選 GUI調試器

     · 基於命令行的符號調試器(armsd)

     · 指令集仿真器;

     · 生成無格式二進制工具、Intel 32位和Motorola 32ROM映像代碼的指令集模擬工具;

     · 庫建立工具.

3IAR EWARM

    Embedded Workbench for ARM IAR Systems公司爲ARM微處理器開發的一個集成開發環境(下面簡稱IAR EWARM)。比較其餘的ARM 開發環境,IAR EWARM 具備入門容易、使用方便和代碼緊湊等特色。

    IAR Systems 公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.30EWARM 中包含一個全軟件的模擬程序(simulator),用戶不須要任何硬件支持就能夠模擬各類ARM內核、外部設備甚至中斷的軟件運行環境。從中能夠了解和評估IAR EWARM的功能和使用方法。

IAR EWARM的主要特色以下:

     * 高度優化的IAR ARM C/C++ Compiler

     * IAR ARM Assembler

    *   一個通用的IAR XLINK Linker

4KEIL ARM-MDKARM

    Keil uVision調試器能夠幫助用戶準確地調試ARM器件的片內外圍功能(I2CCANUARTSPI、中斷、I/O口、A/D轉換器、D/A轉換器和PWM模塊等功能)ULINK USB-JTAG轉換器將PC機的USB端口與用戶的目標硬件相連(經過JTAGOCD),使用戶可在目標硬件上調試代碼。經過使用Keil uVision IDE/調試器和ULINK USB-JTAG轉換器,用戶能夠很方便地編輯、下載和在實際的目標硬件上測試嵌入的程序。

主要特色:

     * Project/Target/Group/File的重疊管理模式,並可逐級設置;

     * 支持編輯狀態的斷點設置,並在仿真狀態下有效;

     * 高速ARM指令/外設模擬器;

     * 軟件模擬進程中容許創建外部輸入信號

     * 支持C調試描述語言,可創建與實際硬件高度吻合的仿真平臺;

     * 支持簡單/條件/邏輯表達式/存儲區讀寫/地址範圍等斷點。

     * 多種流行編譯工具選擇

     * Keil高效率C編譯器;

     * ARM公司的ADS/RealView 編譯器

     * GNU GCC 編譯器

ARM調試工具

目前,主流的調試工具能夠分爲軟件調試工具和硬件調試工具,兩者通常是結合使用。

軟件調試

所謂軟件調試,是指運行在PC端的程序,須要對ARM開發板進行調試時,須要打開這個上位機程序,而後經過J-Link等硬件進行程序的調試。

1H-JTAG

H-JTAG是一個免費的ARM調試代理,程序沒有任何限制

   0) 支持ARM7/ARM9,支持自動檢測和手動指定內核

     1) 使用RDI接口,支持SDT,ADS,REALVIEWIAR

     2) 支持ADS1.2SDT2.51RREAL VIEW

     3) 支持個硬件斷點或者數量不限的軟件斷點

     4) 支持ARM/THUMB模式

     5) 支持LITTLEENDIAN & BIGENDIAN

     6) 支持SEMIHOSTING

     7) 支持WIGGLER SDTJTAG和自定義接口

2FlashMagic

與其說是調試軟件,不如說是下載工具,能夠直接下載hex、bin文件到開發板上。

3LPC2000系列ISP工具

    可經由Philips官方網站下載。

4Macraigor Systems Wiggler 調試工具

 

硬件調試

1J-Link

J-Link是最著名的ARM開發調試工具,J-Link由SEGGER公司生產。提供對市面上幾乎全部ARM內核芯片的支持。目前最新版本的J-Link產品爲V8,支持JTAGSWD模式。而且對主要的IDE環境如KEILIAR都有良好的支持。優勢不少,所以也是首選的調試工具。

SEGGER的J-link版本衆多,超過1百種。正版的通用型J-link價格貴,國內大部分在使用的是克隆版的J-link。克隆版目前價格低於¥70。由於克隆太多,SEGGER公司最新版本的驅動對克隆版本已經再也不提供支持,這是一個問題。

主要特徵:

   1)支持全部ARM7和ARM9

     2)下載速度高達600KB/sec

     3)無需電源供電,可直接經過USB取電

     4)JTAG速度是8MHz

     5)自動辨速

     6)監控全部的JTAG管腳信號,測量電壓

     7)20pin標準JTAG鏈接器

     8)配帶USB口和20pin插槽

     9)支持Windows 2000 Windows XP

  10)帶J-Link TCP/IP server,容許經過TCP/ IP 網絡使用J-Link

 

2ULINK

通用的ARM JTAG工具ULINK。

ULINK是ARM官方的調試工具,KEIL出品。ULINK也能夠支持大多數的ARM芯片,對KEIL的支持很是好,是KEIL的默認調試工具。缺點是由於不支持IAR,影響了ULINK的推廣。

ULINK官方提供電路圖等資料,屬於半開放的,能夠自作。目前山寨版的價格比J-Link略高。也低於¥100。

3OpenJTAG

OpenJTAG爲開源的JTAG調試工具,功能強大,而且配合其餘的開源軟件工具可用於在Linux對ARM芯片進行調試,所以在一些社羣中使用較多。由於採用FTDI+FPGA雙芯片的架構,成本相對較高。要低於¥100,須要本身製做。

4、低成本的並口JTAG

並口JTAG的電路網上不少,目前由於電腦沒有了並口的關係,處於淘汰階段。但從成本上來講是最便宜的。較流行的一種名爲wigger,要注意20PIN的接線,其中RTCK的接法。

 

ARM調試器彙總

通用的ARM調試主要爲上述幾種,其餘的ARM調試工具還有RDI、早期採用並口的ARM調試工具目前由於PC不帶並口已經淘汰。從實現的方式來講,使用FTDI的USB驅動芯片以及採用MCU來進行協議轉換的是主要的兩類。通常來講採用FTDI芯片的ARM調試工具在通常被用來支持某家公司芯片,而不能支持其餘公司的ARM芯片,所以每每是不通用的。

 

H-JTAGJ-Link的區別

你調試arm,總要遵循arm的調試接口協議,jtag就是其中的一種吧。當仿真時,iar,keil,ads等等都有一個公共的調試接口,RDI就是其中的一咱,那麼咱們如何完成RDI-->arm調試協議(JTAG)的轉換呢?如是乎就有兩種作法:

 

  1. 在電腦上寫一個服務程序,把keil,ads,iar中的RDI命令解析成相關的JTAG協議,而後通後一個物理轉換接口(注意,這個轉換隻是電氣物理層上的轉換,就像RS232那樣的做用)發送你的的目標板。 h-jtag就是這樣的。 h-jtag的硬件就僅是一個物理電平的轉換接口,因此很簡單。而電腦中裝的h-jtag軟件就是前面說到的服務程序,負責協議轉換的。

 

2.另外一種作法,就是作一個板,用此板直接接收來自keil,ads,iar等軟件的調試命令,由此板作rdi->jtag協議的轉換。而後與目標板通訊,這就是jlink的工做原理。

 

由上能夠看出 h-jtag因爲是軟件做協議轉換的,因此速度較慢,可是硬件簡單。而第二種方法的jlink通常帶一個強勁的CPU,做硬件協議轉換,把以硬件複雜,但速度快。

JTAG,J-LinkOpenJTAG的比較

1. JTAG

    JTAG(Joint Test Action Group) 是IEEE1149.1 (Standard Access Port and Boundary-Scan Architecture)標準.它最初用來以邊界掃描的方式測試印刷電路板,固然它如今仍然這一方面普遍使用。

    JTag的用途:

    1. 邊界掃描測試

    2. Flash燒寫程序和數據: 能夠燒寫Nor Falsh Nand Falsh

    3. 調試ARM裸機程序,不能調試嵌入式Linux程序

    JTag的接口:

    JTag接口並無統一的標準。ARM處理器一般使用2*10針(部分使用2*7針)的JTag接口。

    JTag鏈接Host的一端一般爲並口。通常筆記本及臺式機都不多有並口接口,並且市面上買到的USB轉並口並不能用於JTag,USB轉並口主要是給老式打印機使用的。這就使得咱們很難使用JTag以及筆記本進行燒寫。另外的一個缺點是並口JTag的速率很是低。

    JTag的替代品:

    Serial Wire Debug(SWD)。

2.JLink

    JLink是Segger的產品,http://www.segger.com/jlink.html。它是USB接口轉到JTag接口的適配器(adaptor),並非真正意義上的仿真器。它採用標準的14針或者20針的Jtag接口與開發板相連。它支持多種CPU內核(ARM7, ARM9,Cortex etc.)。對ARM而言,它多是最受歡迎的適配器。

    JLink的功能:

    1. Flash燒寫程序:不支持燒寫NAND Flash

    2. 支持Windows, Linux以及Mac: 可是Linux及Mac僅支持JLink Commander, Command Line GdbServer, 以及shared library。

    3. 支持多種調試協議: 如GDB, RDI 等

    4. USB轉串口功能

    JLink的接口:

    USB接口,JLink的價格也比較低(固然是山寨的)。

3.OpenJTAG

    OpenJTag是一個開源項目(包含軟件和硬件),採用GNU GPL license: http://www.openjtag.org/。一樣它也是一個USB接口轉JTag接口的適配器,一樣不是真正意義上的仿真器

    OpenJTag的功能:

    1. Flash燒寫程序: 支持NOR Flash NAND Flash

    2. 支持Windows以及Linux

    3. 可以用在支持GDB調試協議的工具上: IAR Eclipse, 但不能用在支持RDI調試協議的工具上: 如ADS

    4. USB轉串口功能

    OpenJtag的接口:

USB接口,可是他的價格要比JLink高一些。

代碼存放位置

啓動代碼通常下載到NorFlash之中,其他的應用程序通常下載到NandFlash、SDRAM(內存)上,固然在實際運行的時候,NandFlash中的代碼須要搬移到SDRAM上運行。

支持燒寫到NorFlash之中的軟件有:OpenJTAG、J-Link、JTAG

支持燒寫到NandFalsh之中的軟件有:OpenJTAG、JTAG

支持燒寫到SDRAM之中的軟件有:

相關文章
相關標籤/搜索