目前广泛采用的具有调试功能的嵌入式OCP 总线方法是在设计中添加片上仪器(OCI),以改善子系统接口的能见度。OCI 实际上是一个专门用来高效跟踪嵌入式信号的IP 子系统。它既不通过 JTAG 端口进行缓冲,也不通过专门的测试端口流到您的 PC 上以供观看。 OCI 能够提供成功的嵌入式设计所必需的高效跟踪功能,广泛应用于调试、嵌入式处理器运行控制和逻辑分析。OCI解决方案能够解决片上总线分析中 SoC 的特定问题,并为非可见的总线接口提供强大的调试能见度。最近OCI 解决方案已开始面市。
图 1 显示的是一个基本的多内核架构(双处理器、存储器接口和采用通用片上总线的定制化IP)和几类可使该子系统更加简化,并可提高调试效率的可添加仪器。图1 详尽列出了本文探讨的重点——总线监测与跟踪仪器的组成部分,其他支持或补充的仪器分区可以包含在处理器和逻辑分析调试的地址中。
调试仪器的功能基本可划分为两个主要类型:
专门用于进行调试控制、支持特定处理器和其他内核的系统内分析分区;
支持跟踪和任何用户定义信号的更为通用的逻辑分析器分区。
总线分析通常用来处理用于通用逻辑分析的同类仪器,也能执行总线架构和协议专用信号信息的线上处理和后处理。应当强调的是,图中所示的所有仪器都与单个JTAG 流程链关系紧密,因此需要通过定制的JTAG 控制器接口进行访问。通过同样的JTAG 接口还能够访问边界扫描和其他传统的JTAG 功能。
处理器内核的系统内分析器(ISA)分区能够为处理器提供特定的运行控制、触发硬/软件断点监测及实时跟踪指令和数据等操作。
FS2 ISA-MIPS 能够执行以下典型的处理器调试子系统操作:
JTAG 内核的启动、停止、断点和单步执行;
无限制的软件断点;
多达15个硬件事件/断点;
基于指令执行、存储、IO操作、地址值或地址范围、操作码类型或级别的触发操作;
每个周期高达64 位的实时跟踪;
执行分支跟踪信息的跟踪;
采用指令码和执行显示的调试器( 参见图2 )。
为了最有效地利用跟踪信息,ISA 通常会采用分支跟踪信息等压缩技术,这样就能够使ISA 集中处理指令中断,从而减少所消耗的存储器资源。跟踪信息可以与GDB等调试器软件工具流程链紧密集成,实现更好的源代码分析和相关性。只要设计和资源运用得当,单个ISA 分区内就能集成不止一个内核(给定类型),并可作为多内核系统调试中的共享资源。