J-Link、J-Trace、Open JTAG都是用來調(diào)試程序的(當(dāng)然還有其他工具可以進(jìn)行調(diào)試,比如ICE),J-Link和J-Trace是SEGGER公司的(http://www.)。Open JTAG(http://www./)是一個開源項目,其目標(biāo)是使嵌入式開發(fā)者能夠通過JTAG接口,用開放的硬件和軟件系統(tǒng)進(jìn)行燒寫、校驗和調(diào)試[1]。他們都基于JTAG調(diào)試接口協(xié)議。 一、工作原理[2] 調(diào)試arm,總要遵循arm的調(diào)試接口協(xié)議吧,jtag就是其中的一種吧。當(dāng)仿真時,iar,keil,ads等等都有一個公共的調(diào)試接口,RDI(RDI接口是ARM公司提出的調(diào)試接口標(biāo)準(zhǔn),主要用于ARM芯片的JTAG仿真。)就是其中的一咱吧, 那么我們?nèi)绾瓮瓿蒖DI-->arm調(diào)試協(xié)議(JTAG)的轉(zhuǎn)換呢? 如是乎就有兩種做法: (1)
在電腦上寫一個服務(wù)程序,把keil,ads,iar中的RDI命令解析成相關(guān)的JTAG協(xié)議,然后通后一個物理轉(zhuǎn)換接口(注意,這個轉(zhuǎn)換只是電氣物理層
上的轉(zhuǎn)換,就像RS232那樣的作用)發(fā)送你的的目標(biāo)板。 h-jtag就是這樣的。
h-jtag的硬件就僅是一個物理電平的轉(zhuǎn)換接口,所以很簡單。而電腦中裝的h-jtag軟件就是前面說到的服務(wù)程序,負(fù)責(zé)協(xié)議轉(zhuǎn)換的。 (2)另一種做法,就是做一個板,用此板直接接收來自keil,ads,iar等軟件的調(diào)試命令,由此板做rdi->jtag協(xié)議的轉(zhuǎn)換。然后與目標(biāo)板通信,這就是jlink的工作原理。(這也就實現(xiàn)了USB轉(zhuǎn)JTAG協(xié)議。) 有一回貼說:“大佬,兩者都是軟件完成的,只不過軟件放的地方不一樣(一個放計算機(jī),一個放仿真器里面了).真正的硬件,就象是JTRACE一樣,用FPGA來實現(xiàn).實質(zhì)上,還是軟件到硬件的過程.”。 二、J-Link、J-Trace區(qū)別 最近在看《J-Link/J-Trace User Gudide(UM08001)》Page12,發(fā)現(xiàn)文中說JLink與JTrace區(qū)別,淺顯易懂,摘錄如下:J-Link JTAG emulator for ARM cores USB driven JTAG interface for ARM cores. J-Trace JTAG emulator for ARM cores USB driven JTAG interface for ARM cores with Trace memory. supporting the ARM ETM (Embed- ded Trace Macrocell). The SEGGER J-Link is a USB to JTAG adapter supporting ARM7?, ARM9? and Cortex?-M3
processor based devices with JTAG speeds of up to 12MHz. It interfaces
to all evaluation boards and target hardware using a standard 20-pin or
14-pin (optional) JTAG connector. The SEGGER J-Trace is a combined unit offering real-time trace and JTAG debugging for all ARM7 and ARM9 devices with an integrated ETM (Embedded Trace Macrocell). An integrated 2MB trace buffer enables high speed instruction and data trace at speeds of up to 200MHz, connecting to the target device via a 38-pin Mictor cable. J-Trace also includes a J-Link interface for standard JTAG target debugging via a 20-pin connector. Trace information from J-Trace is displayed in dedicated windows, providing a seamless interface with other μVision debug and analysis tools. J-Link is part of several starter kits from various vendors and is indentical with SAM-ICE (from Atmel) and mIDAS-Link (from Analog Devices). With direct J-Link support users can now easily begin taking advantage of the unique and advanced features of RealView MDK compared to other tool offerings and starter kits. RealView MDK is available from Keil or your local Keil distributor. J-Link and J-Trace are available from SEGGER Microcontroller and its world wide sales channels. 在貼子《jLINK和J-Trace仿真器的區(qū)別能否重復(fù)講述一下?》中,精辟回答了J-Link和J-Trace的區(qū)別,如下:
J-Link就像照相機(jī),程序(在斷點處)停下來才能看調(diào)試信息,通過JTAG/SWD接口;J-Trace就像錄像機(jī),可以紀(jì)錄、回放整個調(diào)試接口,
通過ETM接口。
最近一些Cortex-M3的芯片支持SWO接口,就好像是高速連拍照相機(jī),采樣間隔小的話,有那么點Trace的樣子,這個調(diào)試功能在J-Link
v7和EWARM v5.30中已經(jīng)得到支持。 三、J-Link與Open JTAG區(qū)別 正如上文所述,這兩者都是用來調(diào)試程序的,都實現(xiàn)了USB轉(zhuǎn)JTAG協(xié)議功能,即用USB連接主機(jī),用JTAG線連接板子的JTAG口,而這之間的轉(zhuǎn)換通過J-Link或者Open JTAG轉(zhuǎn)換。另,J-Link一般是獨立的組件,而Open JTAG一般集成到板子上。更多比較可以參考資料[2][3],但[3]中說J-Link不支持Linux,現(xiàn)在可以了,我正在用,可以參考我的博文《Ubuntu 10.04下J-Link配置及使用》,目前功能還不是很完善,只是Beta版。 四、J-Link GDBServer與Open OCD openOCD(http://openocd./web/)是上位機(jī)程序(人可以直接發(fā)出操控命令的計算機(jī),一般是PC。對應(yīng)于下位機(jī))。jlink gdbserver和openocd是一回事,都是擔(dān)任一個 gdb server的角色,用來解釋來自arm-elf-gdb的調(diào)試信號,并且控制硬件(Jlink或者openjtag)[4]。 參考資料: [1] 博文《OpenJTAG——Jlink的強(qiáng)勁對手》 [3] 博文《OpenJTAG與Jlink/J-link的區(qū)別》 |
|