ARM編輯、編譯工具


---恢復內容開始---

手動編譯

編譯器問題,肯定是GNU的大名鼎鼎的GCC了,與此相關的什么連接器,匯編器也都包含在內了。

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

手動編譯需要我們自己寫Makefile文件,涉及到編譯過程的依賴等細節問題。在我們實際開發中,可以不通過這種方式,但是需要了解這個過程。

自動編譯

1ADS1.2

    ADS是ARM公司的集成開發環境軟件,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 32位ROM映像代碼的指令集模擬工具;

     · 庫創建工具.

3IAR EWARM

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

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

IAR EWARM的主要特點如下:

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

     * IAR ARM Assembler

    *   一個通用的IAR XLINK Linker

4KEIL ARM-MDKARM

    Keil uVision調試器可以幫助用戶准確地調試ARM器件的片內外圍功能(I2C、CAN、UART、SPI、中斷、I/O口、A/D轉換器、D/A轉換器和PWM模塊等功能)。ULINK USB-JTAG轉換器將PC機的USB端口與用戶的目標硬件相連(通過JTAG或OCD),使用戶可在目標硬件上調試代碼。通過使用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.2和SDT2.51和RREAL 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/。

    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之中的軟件有:

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM