本文整理了网上一些对J-Link、J-Trace、Open JTAG差异的评论,一起也参加一些自己的了解。
J-Link、J-Trace、Open JTAG都是用来调试程序的(当然还有其他东西能够进行调试,比方
ICE),J-Link和J-Trace是SEGGER公司的(http://www.segger.com)。Open JTAG(http://www.openjtag.org/)是一个开源项目,其方针是使
嵌入式开发者能够经过JTAG接口,用敞开的硬件和软件体系进行烧写、校验和调试[1]。他们都根据JTAG调试接口协议。
一、作业原理[2]
调试arm,总要遵从arm的调试接口协议吧,jtag便是其间的一种吧。当仿真时,iar,keil,ads等等都有一个公共的调试接口,RDI(RDI接口是ARM公司提出的调试接口标准,首要用于ARM芯片的JTAG仿真。)便是其间的一咱吧,那么咱们怎么完结RDI–>arm调试协议(JTAG)的转化呢?如是乎就有两种做法:
(1) 在电脑上写一个服务程序,把keil,ads,iar中的RDI指令解析成相关的JTAG协议,然后通后一个物理转化接口(留意,这个转化仅仅电气物理层上的转化,就像RS232那样的效果)发送你的的方针板。 h-jtag便是这样的。 h-jtag的硬件就仅是一个物理电平的转化接口,所以很简单。而电脑中装的h-jtag软件便是前面提到的服务程序,担任协议转化的。
(2)另一种做法,便是做一个板,用此板直接接纳来自keil,ads,iar等软件的调试指令,由此板做rdi->jtag协议的转化。然后与方针板通讯,这便是jlink的作业原理。(这也就完结了USB转JTAG协议。)
有一回贴说:“大佬,两者都是软件完结的,只不过软件放的当地不相同(一个放计算机,一个放仿真器里边了).真实的硬件,就象是JTRACE相同,用FPGA来完结.实质上,仍是软件到硬件的进程.”。
二、J-Link、J-Trace差异
最近在看《J-Link/J-Trace User Gudide(UM08001)》Page12,发现文中说JLink与JTrace差异,深入浅出,摘录如下:
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官网(http://www.keil.com/pr/article/1141.htm)就更详细了,摘录如下:
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.
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仿真器的差异能否重复叙述一下?》中,精辟答复了J-Link和J-Trace的差异,如下:
J-Link就像照相机,程序(在断点处)停下来才能看调试信息,经过JTAG/SWD接口;J-Trace就像录像机,能够纪录、回放整个调试接口,经过ETM接口。最近一些Cortex-M3的芯片支撑SWO接口,就好像是高速连摄影相机,采样距离小的话,有那么点Trace的姿态,这个调试功用在J-Link v7和EWARM v5.30中现已得到支撑。
三、J-Link与Open JTAG差异
正如上文所述,这两者都是用来调试程序的,都完结了USB转JTAG协议功用,即用USB衔接主机,用JTAG线衔接板子的JTAG口,而这之间的转化经过J-Link或许Open JTAG转化。另,J-Link一般是独立的组件,而Open JTAG一般集成到板子上。更多比较能够参阅资料[2][3],但[3]中说J-Link不支撑Linux,现在能够了,我正在用,能够参阅我的博文《Ubuntu 10.04下J-Link装备及运用》,现在功用还不是很完善,仅仅Beta版。
四、J-Link GDBServer与Open OCD
openOCD(http://openocd.berlios.de/web/)是上位机程序(人能够直接宣布操控指令的计算机,一般是PC。对应于下位机)。jlink gdbserver和openocd是一回事,都是担任一个gdb server的人物,用来解说来自arm-elf-gdb的调试信号,而且操控硬件(Jlink或许openjtag)[4]
参阅资料:
[1] 博文《OpenJTAG——Jlink的微弱对手》
[2] 博文《看到很多玩过ARM的人还搞不懂hjtag与jlink的差异…》
[3] 博文《OpenJTAG与Jlink/J-link的差异
[4] 帖子《JLink-GDBServer + eclipse 的调试环境》
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/262999.html