EJTAG片上调试单元

来源:互联网 发布:mysql 某个字段加一 编辑:程序博客网 时间:2024/04/30 06:16

EJTAG片上调试单元



EJTAG单元是一个CPU内用于构建调试和跟踪工具的资源的松散集成的集合。EJTAG通过复用每个SoC内已提供的用于芯片测试的JTAG引脚,找到一个不影像被测设备和主机连接的反复。

EJTAG调试单元需要:
1)与主机的物理连接
一般经通用网络或电缆连接到调试主机的某种探针设备。

2)主机/探针的“远程控制”CPU的能力
那是通过让CPU从一个dmseg的内存区域执行代码实现的。

3)调试专用的异常
在MIPS EJTAG中,这是一个由特殊的调试模式标志的特殊的超级异常。你可以用EJTAG调试器来调试整个系统。
可用EJTAG调试器来调试整个系统,甚至于调试它自身的普通异常处理程序。

4)一定数量的EJTAG断点
可独立编程匹配地址甚至是数据的硬件监控器。
当CPU取指或读写数据时,取指或者读写的地址和数据与活动的断点相比较,若匹配则导致一个调试异常。

5)从一条调试断点指令sdbbp、一外部信号DNIT、或在EJTAG探针翻转某已知控制位时得到一个调试异常。

6)用于剖析(profiling)而不是调试时,可用该工具指导EJTAG单元周期性地记录当前执行指令的地址。

控制CPU
当CPU从dmseg区域读取指令时,探针就获得控制权。

1)为响应调试器启动代码,探针会用其JTAG连接设置一个内部标志,将调试异常入口点移到dmseg区域的0xFF200200。
探针可以直接产生一个调试断点或设置一个硬件观察点等待软件绊到。

2)探针可发送一个EJTAGBOOT明亮,然后等下次CPU复位后,CPU会从dmseg读取指令。
实际上,有一组特性可在重新启动CPU时获得完全控制,甚至可通过JTAG连接下载新软件。

通过EJTAG的调试通信
JTAG标准时芯片制造商为简化电路板测试而发明的,大多数复杂芯片已经为JTAG引脚安排了空间,让这项引脚同时服务于软件调试要比建立新引脚更为容易。

MIPS的传统调试功能
break指令:简单导致一个异常,带很多未解释的位,由调试软件赋予其意义。

PDtrace
PDtrace时EJTAG调试单元的附件,可跟踪程序执行用于以后的重构。执行跟踪可保存在片内存储器或采用告诉信令技术实时回放到探针。
PDtrace可记录执行地址,还可跟踪读写地址甚至是数据值。
EJTAG断点用于提供细粒度的跟踪控制,当遇到特定断点时动态切断或接通跟踪数据流。