为什么在JTAG和Lauterbach的TRACE32软件之间需要一个设备?

xor*_*256 -3 jtag trace32 lauterbach

https://www.microsemi.com/images/soc/partners/solution/ip/Trace_small.jpg这样的矩形东西有什么意义?为什么gdbserver可以通过以太网进行调试而无需任何其他硬件,而这个TRACE32庞然大物S / W本身却不能解码/编码来自JTAG端口的信号?JTAG本身不是端口吗?它不发送信号吗?为什么这段软件不能解释它们?为什么需要这个东西(顺便说一句,顺便说一句,一旦无效,通常是黑魔法)。是否存在在JTAG和USB端口之间存在特定设备的原因(请注意,TRACE32安装具有800 MB ...)

Hol*_*ger 5

可能需要考虑某些方面:

  • 运行模式调试与停止模式调试
  • 简单的信号转换器与智能调试探头
  • 纯JTAG调试器与调试和跟踪工具

运行模式调试与停止模式调试

运行模式调试 ”的意思是“在运行操作系统的系统上调试应用程序”。在Windows / Linux / Mac机器上调试应用程序时,也会发生这种情况。当您在应用程序中遇到断点时,CPU仍在运行。只有已调试的应用程序被停止。
因此,如果您的嵌入式系统运行的是操作系统,则GDB可能能够通过以太网连接到目标OS上运行的gdbserver,这使您可以调试设备上的应用程序。

停止模式调试 ”表示“通过控制CPU的运行状态来调试CPU上的所有软件”。因此,如果通过停止模式调试在CPU上遇到断点,则整个CPU都将停止。这使您可以调试裸机应用程序或操作系统本身,或者在操作系统甚至系统管理程序的上下文中调试应用程序。
对于停止模式调试,您通常需要带有JTAG接口(或SWD或类似产品)的芯片和在线调试器。基本上,它使您可以在非常低的级别上控制CPU。在以前,这是通过使用在线仿真器来完成的(而不是JTAG)将CPU替换为特殊的绑定芯片,从而也可以将芯片控制在非常低的水平。更令人困惑的是,一些供应商将其JTAG探针也称为“在线仿真器”。

简单的信号转换器与智能调试探头

对于停止模式调试,您需要一个探针,该探针将PC的接口转换为芯片的低级调试接口。所以基本上是一些USB到JTAG转换器。或与以太网到JTAG转换器。

我能想到的最简单的探针就是某种设备,该设备使您可以通过USB控制某些GPIO(通用输入输出)引脚。然后,所有的JTAG通信协议和更高的调试协议都完全在软件中完成。优点:非常灵活。缺点:非常慢。

更高级的探针知道如何执行JTAG,因此,仅必须通过USB处理高级调试协议,而低级JTAG通信则由探针本身完成。这些探针通常仍然很慢,因为当您需要短时延时USB效率不高。

高端探测器通常会处理调试协议本身,该调试协议对于每种CPU体系结构都是独立的,有时甚至是单个芯片。因此,运行调试软件的主机PC仅发送高级命令(如“执行单个步骤”),而其余所有操作均由探针本身处理。尤其是对于复杂的多核芯片,这需要提高性能,而复杂的多核芯片通常需要大量的JTAG通信,直到完成简单的任务。

简单的USB到JTAG转换器通常已经在廉价评估板的PCB上。从理论上讲,您也可以将这样的转换器直接集成在芯片本身中,但是芯片制造商通常不会这样做,因为这会增加每个芯片的成本。在专业领域,高端调试器非常普遍,因为公司不想让他们的开发人员坐在PC前面,而只是等待缓慢的调试器来完成应用程序下载。

总的来说,我认为调试器越快,越灵活,功能越丰富,它所获得的体积就越大,成本越高。因此,这在很大程度上取决于您的需求。

纯JTAG调试器与调试和跟踪工具

所有JTAG调试器都允许您停止和重新启动CPU,设置断点以及读写存储器和CPU寄存器。这就是我上面提到的停止更多调试的方法。

一些调试探针还允许您记录CPU在运行时是否停止的代码执行和数据访问。这称为实时跟踪。对于这样的跟踪记录,您既需要调试探针,也需要支持它的芯片。

例如,在ARM Cortex芯片上,此功能称为ETM,该功能在Cortex-M0 / M0 +芯片上不可用,但通常在Cortex-A / R芯片和Cortex-M3(及更大)芯片上可用,而该芯片具有100个以上的引脚。

与没有跟踪支持的调试探针相比,支持跟踪的工具通常更大且更昂贵。
影响使用跟踪记录器的调试器价格的因素:

  • 内部存储器的大小,用于保存跟踪数据
  • 一个目标跟踪引脚上支持的最大速度(用于并行跟踪)。
  • 支持的跟踪引脚数(用于并行跟踪)(例如,单引脚SWO跟踪通常比ETM跟踪便宜得多)。
  • 支持高速串行跟踪端口/每个通道的最大速度/支持的通道数。
  • 向主机PC上载速度(探头是否具有USB 3和/或千兆以太网接口或仅具有USB 2?)

您所引用的Lauterbach器件支持在跟踪端口上以总计1600 MBit / s的速度跟踪Cortex-M芯片。官方产品页面在这里https://www.lauterbach.com/microtrace.html


你写了

顺便说一句,BTW曾经有效,一次却无效,通常是黑魔法

如果您的工具无法正常工作,建议您向工具供应商寻求支持。有关劳特巴赫的信息,请访问https://www.lauterbach.com/tsupport.html
JTAG调试本身确实不是黑魔法:JTAG协议本身是IEEE标准,并且调试协议(在下一级)经常在芯片制造商中描述。手册可供公众使用。但是,这当然是很多工程。