商业JTAG调试器和开源FT2232H OpenOCD调试器之间有什么区别?


10

我见过一些商业的JTAG调试器,例如:

  1. iC6000片上分析仪(支持Aurora协议)
  2. Lauterbach –微处理器开发工具

以及基于OpenOCD FT2232H的JTAG调试器:

  1. 苍蝇拍
  2. NGX ARM USB JTAG

与仅使用小信用卡尺寸PCB的FT2232H JTAG调试器相比,为什么这些商用调试器会大放异彩?商业调试器内部有哪些其他硬件?这些调试可以在哪一部分调试中提供帮助?


3
我投票关闭此问题为离题,因为所需的信息在制造商的网站上。
Leon Heller

也许我应该问的问题以不同的方式
robomon

Answers:


7

JTAG电缆可以围绕各种东西构建。例如,Xilinx JTAG电缆具有赛普拉斯芯片和FPGA。Atmel电缆通常包含带有USB支持的AVR微控制器。它们通常还将包含一些接口/级别转换/保护/隔离组件。这实际上取决于制造商,它们都是专有的并且相互不兼容。通常,您需要使用与所需软件兼容的电缆。如果您只需要OpenOCD,那么基于FTDI的电缆就可以了。但是,如果您要使用,请说Xilinx ChipScope?然后,您需要为Xilinx的真品或中国仿冒品支付费用。

您拥有的链接不是针对简单的JTAG电缆,而是更加专业的链接。我个人认为这些是完整的测试设备。它们基本上是专门的协议分析器。它们旨在与集成到被测设备中的专用跟踪硬件交互。跟踪硬件不同于JTAG。目的是记录所有执行核心上正在运行的软件(即,已采取的所有分支)的完整执行跟踪,并将其通过高速总线传递给外部跟踪收集系统(有问题的盒子)。然后离线分析跟踪。这与通过设置断点并单步执行代码可以通过JTAG进行调试不同。跟踪收集应该对正在运行的程序完全透明(没有断点或添加的代码)。由于被测处理器每秒可以执行几亿条指令,因此在生成跟踪时要对其进行存储就需要大量带宽和快速存储。链接的设备支持Aurora协议(可能是其他协议),它是一种8b / 10b编码的高速串行协议,有点类似于USB 3,串行ATA,串行千兆/ 10G以太网和PCIe。它能够以6.25 Gbps的速度传输数据,远远超过了USB链接回PC所能处理的数据,因此捕获的数据必须存储在板载RAM中以进行离线分析。这些设备将包含带有内部高速解串器的相当高端的FPGA,以捕获数据以及相当数量(几GB)的快速DRAM,


iC6000上有8GB的迹线,比您的gramma PC更大:-)以及通过Aurora电缆获得6.25 Gbps带宽。
Fizz

6

区别在于软件和功能,这对硬件有很大的影响。

FTDI JTAG电缆使用命令集产生JTAG信号。这些是非常底层的命令,通常会详细介绍JTAG状态机如何工作和操作。发送正确设置命令的逻辑是在PC的调试主机上完成的。

这是功能齐全,价格便宜的硬件,免费软件(GNU GCC + GDB + OpenOCD)等。它具有足够的灵活性(由于使用了低级命令集),因此有用于ARM调试,FPGA编程或通用JTAG链扫描的端口。

商业电缆更特定于平台,并且通常在电缆内包含逻辑。这允许PC程序以更抽象的方式与设备进行通讯,该方式可以更快。

例如:查看JLINK USB协议。它包含类似EMU_CMD_WRITE_MEM_ARM79的命令。FTDI电缆也可以执行此命令,但是在PC端将其转换为FTDI电缆可以理解的低级JTAG命令。这也意味着高级命令(写一些内存)被分解为更多子命令,JLINK可以通过自己的电缆来完成这些子命令。这可以导致更好的延迟(考虑到USB的限制)和/或更高的速度。

IDE商业供应商还应该支持它们支持的电缆,并且更可能支持商业电缆。另一方面,免费的IDE将更有可能支持廉价的FTDI调试电缆。

某些商业软件还包含对软件代码断点的支持,您可以在其中设置比硬件允许更多的代码断点。

使用某些微控制器的跟踪功能需要非常快速的硬件来捕获4位并行总线。具有此功能的硬件通常包含一个FPGA。


更不用说它们可以处理的带宽了。OP询问的用于高端Xilinx的(iC6000)可以使用Aurora协议进行6.25 Gbps跟踪,Flyswatters不支持(1),即使支持,它们将处理什么带宽?内部存储器有:iC6000上有8GB的迹线。
Fizz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.