5

我试图了解 JTAG 调试背后发生的过程。据我了解,支持 JTAG 调试的设备在设备中有一个特殊的组件,称为 DOC(片上调试)。该组件的核心是 TAP 控制器,负责执行来自连接的 JTAG 适配器的请求。

有人可以解释一下适配器向 TAP 控制器发送暂停请求时会发生什么吗?我对电信号的细节不感兴趣,但对过程更感兴趣。是否必须设置 DOC 的任何寄存器才能停止系统?如果是这样,DOC 如何“知道”何时检查该寄存器的值?

我还知道,在大多数 ARM 处理器上,除非停止,否则 DOC 无法访问内核寄存器。但是任何内核进程都可以访问 DOC 的寄存器吗?

谢谢你!

4

1 回答 1

2

arm 文档描述了调试抽头控制器、jtag 可访问寄存器、执行暂停或来自 jtag 的任何其他命令所需的寄存器写入和读取序列。

http://infocenter.arm.com

有两种基本方法

1) JTAG 并不是为了芯片和电路板测试而发明的软件调试平台。即使它已经用于芯片和电路板测试,您也可以将它用于软件调试。您可以做的非常丑陋但实用的事情是使用 jtag 接管芯片中的位,例如边界扫描,并通过控制时钟输入来单步处理处理器。您还可以接管外部总线,例如启动闪存等 - 丑陋但功能齐全。

2) 您在开发处理器时考虑到了基于 JTAG 的调试,因此到内核的管道以某种形式或方式完全集成了这种调试(这取决于处理器供应商和产品线,也许每个设计工程师都有自己的事物)。您基本上是通过 JTAG 接口发送命令或与调试器中的寄存器通信,这些寄存器以设计人员允许的任何方式控制处理器。

现在为了利益,ARM 或 mips 或 Intel 或任何不会每次都重新设计他们的 ocd 的人。如果他们每次都更改它,那么所有工具供应商都必须投资NRE来支持新事物,最终或不时他们会查看您的产品或市场并决定他们不会支持该新芯片/设计。如果经常使用相同的片上调试器或相同的基线设计,并且可能经常使用新的可选功能,那么工具供应商无需更改任何内容,或者只需将另一个 JTAG ID 添加到他们的已知处理器列表中类型,并且他们的其余代码不必更改。

于 2013-10-23T00:09:30.713 回答