首页 > 解决方案 > JTAG 如何影响整体系统性能及其缺点

问题描述

我来自非嵌入式软件世界,我认为我了解 JTAG 的概念和用例,但仍有一些悬而未决的问题。我的最终目标是为芯片固件构建 CI 管道。管道基本上包含两个主要内容:运行集成测试和在固件因某种原因失败时收集“内存转储”的能力。我的问题:

  1. 使用 JTAG 是否会影响芯片的整体性能(功耗、任务执行时间等)?
  2. 发生特定事件时是否可以收集内存寄存器状态?
  3. 一般来说,使用 JTAG 的缺点是什么?

标签: debuggingembeddedsignal-processingfirmwarejtag

解决方案


使用 JTAG 是否会影响芯片的整体性能(功耗、任务执行时间等)?

通常不会,但您应该查看目标的数据表/参考手册以了解其特定片上调试实现的详细信息。在这种情况下,JTAG 本身只是对片上调试的通信接口的定义。

这可能取决于您如何使用 JTAG。如果只对片上闪存进行编程,则不会对运行时产生影响。如果在运行时使用它来读取内存或流式调试数据,那可能是另一回事,因为片上调试和内核之间可能存在总线争用。

发生特定事件时是否可以收集内存寄存器状态?

这取决于目标的片上调试,而不是 JTAG——正如我上面所说,这只是通信接口,也没有定义任何特定的调试功能。

一般来说,使用 JTAG 的缺点是什么?

如果您使用 JTAG,它通常会占用应用程序中无法使用的多路复用管脚。一些目标使用替代的“单线”接口,例如 ARM 的 SWD。

如果您使用片上调试来停止处理器,这可能会改变您的系统实时行为或导致通信链路上的数据丢失或错过异步事件或中断。


推荐阅读