本文整理了網(wǎng)上一些對(duì)J-Link、J-Trace、Open JTAG區(qū)別的討論,同時(shí)也加入一些自己的理解。 J-Link、J-Trace、Open JTAG都是用來(lái)調(diào)試程序的(當(dāng)然還有其他工具可以進(jìn)行調(diào)試,比如ICE),J-Link和J-Trace是SEGGER公司的(http://www.segger.com)。Open JTAG(http://www.openjtag.org/)是一個(gè)開(kāi)源項(xiàng)目,其目標(biāo)是使嵌入式開(kāi)發(fā)者能夠通過(guò)JTAG接口,用開(kāi)放的硬件和軟件系統(tǒng)進(jìn)行燒寫(xiě)、校驗(yàn)和調(diào)試[1]。他們都基于JTAG調(diào)試接口協(xié)議。
一、工作原理[2]
調(diào)試arm,總要遵循arm的調(diào)試接口協(xié)議吧,jtag就是其中的一種吧。當(dāng)仿真時(shí),iar,keil,ads等等都有一個(gè)公共的調(diào)試接口,RDI(RDI接口是ARM公司提出的調(diào)試接口標(biāo)準(zhǔn),主要用于ARM芯片的JTAG仿真。)就是其中的一咱吧,那么我們?nèi)绾瓮瓿蒖DI-->arm調(diào)試協(xié)議(JTAG)的轉(zhuǎn)換呢?如是乎就有兩種做法:
(1) 在電腦上寫(xiě)一個(gè)服務(wù)程序,把keil,ads,iar中的RDI命令解析成相關(guān)的JTAG協(xié)議,然后通后一個(gè)物理轉(zhuǎn)換接口(注意,這個(gè)轉(zhuǎn)換只是電氣物理層上的轉(zhuǎn)換,就像RS232那樣的作用)發(fā)送你的的目標(biāo)板。 h-jtag就是這樣的。 h-jtag的硬件就僅是一個(gè)物理電平的轉(zhuǎn)換接口,所以很簡(jiǎn)單。而電腦中裝的h-jtag軟件就是前面說(shuō)到的服務(wù)程序,負(fù)責(zé)協(xié)議轉(zhuǎn)換的。
(2)另一種做法,就是做一個(gè)板,用此板直接接收來(lái)自keil,ads,iar等軟件的調(diào)試命令,由此板做rdi->jtag協(xié)議的轉(zhuǎn)換。然后與目標(biāo)板通信,這就是jlink的工作原理。(這也就實(shí)現(xiàn)了USB轉(zhuǎn)JTAG協(xié)議。)
有一回貼說(shuō):“大佬,兩者都是軟件完成的,只不過(guò)軟件放的地方不一樣(一個(gè)放計(jì)算機(jī),一個(gè)放仿真器里面了).真正的硬件,就象是JTRACE一樣,用FPGA來(lái)實(shí)現(xiàn).實(shí)質(zhì)上,還是軟件到硬件的過(guò)程.”。
二、J-Link、J-Trace區(qū)別
最近在看《J-Link/J-Trace User Gudide(UM08001)》Page12,發(fā)現(xiàn)文中說(shuō)JLink與JTrace區(qū)別,淺顯易懂,摘錄如下:J-Link
JTAG emulator for ARM cores
USB driven JTAG interface for ARM cores.
JTAG emulator for ARM cores
USB driven JTAG interface for ARM cores with
Trace memory. supporting the ARM ETM (Embed-
ded Trace Macrocell).
ARM Keil Tools官網(wǎng)(http://www.keil.com/pr/article/1141.htm)就更詳細(xì)了,摘抄如下:
The SEGGERJ-Linkis 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 SEGGERJ-Traceis 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.
本文引用地址:
http://www.ex-cimer.com/article/201611/319313.htmTrace 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ǎn)處)停下來(lái)才能看調(diào)試信息,通過(guò)JTAG/SWD接口;J-Trace就像錄像機(jī),可以紀(jì)錄、回放整個(gè)調(diào)試接口,通過(guò)ETM接口。最近一些Cortex-M3的芯片支持SWO接口,就好像是高速連拍照相機(jī),采樣間隔小的話(huà),有那么點(diǎn)Trace的樣子,這個(gè)調(diào)試功能在J-Link v7和EWARM v5.30中已經(jīng)得到支持。
三、J-Link與Open JTAG區(qū)別
正如上文所述,這兩者都是用來(lái)調(diào)試程序的,都實(shí)現(xiàn)了USB轉(zhuǎn)JTAG協(xié)議功能,即用USB連接主機(jī),用JTAG線連接板子的JTAG口,而這之間的轉(zhuǎn)換通過(guò)J-Link或者Open JTAG轉(zhuǎn)換。另,J-Link一般是獨(dú)立的組件,而Open JTAG一般集成到板子上。更多比較可以參考資料[2][3],但[3]中說(shuō)J-Link不支持Linux,現(xiàn)在可以了,我正在用,可以參考我的博文《Ubuntu 10.04下J-Link配置及使用》,目前功能還不是很完善,只是Beta版。
四、J-Link GDBServer與Open OCD
openOCD(http://openocd.berlios.de/web/)是上位機(jī)程序(人可以直接發(fā)出操控命令的計(jì)算機(jī),一般是PC。對(duì)應(yīng)于下位機(jī))。jlink gdbserver和openocd是一回事,都是擔(dān)任一個(gè)gdb server的角色,用來(lái)解釋來(lái)自arm-elf-gdb的調(diào)試信號(hào),并且控制硬件(Jlink或者openjtag)[4]
參考資料:
[1] 博文《OpenJTAG——Jlink的強(qiáng)勁對(duì)手》
[2] 博文《看到好多玩過(guò)ARM的人還搞不懂hjtag與jlink的區(qū)別…》
[3] 博文《OpenJTAG與Jlink/J-link的區(qū)別
[4] 帖子《JLink-GDBServer + eclipse 的調(diào)試環(huán)境》
評(píng)論