16片上调试支持
本章概述了有关TC1728的调试功能。这一章不详细介绍TC1728的调试功能和方法。有关片上调试支持(OCDS)功能(如需工具供应商提供)的详细信息请联系当地的英飞凌代表。16.1
概览
TC1728支持OCDS级别1和OCDS级别3。
OCDS级别1
OCDS级别1主要用于系统软件调试的目的,其需要低成本标准调试硬件。
OCDS级别1基于一种调试接口,其用于通过外部的调试硬件与系统进行通信。片上Cerberus模块控制调试接口与芯片模块之间相互作用,并特别允许访问设备的整个地址空间。内存映射的片上调试资源使其可能由指令和数据地址触发以及控制用户程序执行(运行/停止、断点,单步执行)。
OCDS级别3
OCDS级别3基于使用仿真设备的多核调试解决方案(MCDS)。此设备具有达到高端仿真的目的所需的以下功能:
仿真设备在具有和TC1728相同封装的产品系列里可用跟踪和重叠RAM引起的高电流消耗是唯一的差别Tricore程序跟踪
Tricore数据跟踪(无寄存器文件跟踪)PCP所有权追踪
PCP程序跟踪
PCP数据写入PRAM跟踪(无寄存器文件跟踪)内部外设总线(SPB)的完全可视性
本地存储器总线(LMB)的完全可视性所有资源的时间对齐平行追踪
基于普通事件产生逻辑的断点和观察点
工作在指令指针和存储器地址的比较器:A<=IP<=B
工作在数据总线上的屏蔽比较器:DATA=“xxxx55xx”
顺序事件逻辑:由事件驱动并带有界限比较器的计数器被用作断点和追踪质量的事件源缓冲追踪数据的优化压缩从仿真内存读取代码和数据
用户手册OCDS,V1.5
16-1V1.0,2011-12
TC1728片上调试支持(OCDS)
高精度复杂的资格-和触发机制
事件前和事件后追踪缓冲(“数字示波器”)行为计数器
可进行高达主机接口带宽的持续追踪记录和追踪数据采集中间时间戳单元关联从不同的内核或来源的追踪同时或有选择性的启动和停止所有内核的中央机制追踪内存已满时停止系统
仿真设备包括使用额外的仿真硬件扩展的产品芯片部分。有关仿真设备功能(如需工具供应商提供)的详细信息,请联系当地的英飞凌代表。
图16-1显示了TC1728OCDS系统的框图
用户手册OCDS,V1.5
16-2V1.0,2011-12
TC1728片上调试支持(OCDS)
图16-1OCDS系统框图
用户手册OCDS,V1.5
16-3V1.0,2011-12
组件
TC1728的OCDS由以下组成部分:OCDS系统控制单元(OSCU)TriCoreOCDSPCPOCDSDMAOCDSSBCUOCDSLMBOCDS
多核暂停切换(MCBS)暂停引脚控制IOClient
设备访问口(DAP)JTAG接口
重叠控制
OCDS特性总结
OCDS系统控制单元(OSCU)—控制OCDS使能—自动省电
—调试源的复位控制—复位后停止
—对运行中的系统的调试器的热插拔—控制以安全的方式访问设备的主要机制—在调试时看门狗挂起
—SOC特定的OCDS特性的控制—满足调试目的的中断服务请求节点
TriCoreOCDS特性
—硬件事件产生
—由DEBUG指令或者暂停切换的暂停信号产生的暂停—由挂起总线或者暂停切换的暂停信号产生的挂起—全由硬件支持的单步运行
—通过Cerberus对内存和SFR的同时访问
PCPOCDS特性
—通过DEBUG指令或者来自暂停切换的暂停信号产生的暂停—通过Cerberus对内存和SFR的同时访问
DMAOCDS特性
—DMA通道的软件挂起模式—暂停信号产生—追踪信号产生
用户手册16-4OCDS,V1.5
TC1728片上调试支持(OCDS)
V1.0,2011-12
TC1728片上调试支持(OCDS)
SBCUOCDS特性—特殊操作产生的事件
LMBOCDS特性
—错误记录和总线错误的服务请求
多核暂停切换(CerberusMCBS)
—TriCore,PCP,DMA,暂停断点引脚和SBCU可用作源—TriCore和PCP可用作暂停目标;其它部分可被挂起—系统的同步停止和重启—暂停到挂起的转换
16.2OCDS级别1
TriCoreOCDS级别1的基本原则是所有相关用户和调试来源是内存映射的。这些来源包括片上存储器、CPU内核寄存器和外设单元的寄存器。
典型的OCDS级别1的调试配置如图16-2所示。它包括两个部分:
工具软件
工具访问硬件接口适配器
这样的配置使其可能实现具有高性价比的调试环境,可以完成全面的实时调试任务。
图16-2典型的OCDS级别1硬件连接
用户手册OCDS,V1.5
16-5V1.0,2011-12
TC1728片上调试支持(OCDS)
16.2.1TricoreCPUOCDS级别1
该节描述了TricoreCPUOCDS级别1硬件的基本特性。更多细节请参考“Tricore内核构架V1.3.1”手册。特性硬件支持的单片运行
多达4个可编程硬件断点。每个都可以被定义为程序计数器和数据地址的组合:—程序计数器(PC)值上的暂停两个精确的PC值或一个PC范围可以实现执行前暂停—数据地址上的暂停
两个精确的数据地址或一个数据地址范围
不可能设置执行前暂停(因为系统使用流水线结构)—以上暂停情况的组合
挂起特性
—内核对挂起总线Suspend-out—可配置的内核Suspend-In
实时特性
—独立于CPU以最少的指令(通过Cerberus减少总线时钟)对存储器、寄存器的读写,—当内核处于仿真模式下,高优先级请求仍可以被服务——通过中断监控程序16.2.1.1
基本概念
TC1728中的TricoreCPU通过下面两个基本部分提供对OCDS功能的支持:调试事件触发产生
调试事件触发处理
用户手册16-6OCDS,V1.5
V1.0,2011-12
TC1728片上调试支持(OCDS)
第一部分控制调试事件的产生,第二部分控制当调试事件产生后的处理。图16-3基本Tricore调试概念16.2.1.2
调试事件产生
如果调试模式使能,以下条件可引起调试事件:
来自调试触发的调试事件产生
送到内核的外部内核Break-In信号的激活
DEBUG指令的执行
MTCR/MFCR指令的执行来自调试触发的调试事件产生
调试事件产生单元负责在调试触发处于激活状态时产生调试事件。调试触发可以通过代码和数据保护逻辑产生。
这些调试触发提供了输出调试事件的组合逻辑的可编程块的输入。目的在于能够指定在片上调试事件生成单元使用的简单断点,并依赖于外部的调试系统或调试监控器的帮助,以实现更复杂的断点。
用户手册OCDS,V1.5
16-7V1.0,2011-12
TC1728片上调试支持(OCDS)
外部内核Break-In信号的激活
当激活TC1728的引脚BRKIN=0并且如果MCBS和引脚控制被配置为传送该事件给内核Break-In信号,那么暂停事件如外部暂停输入事件区分寄存器EXEVT(图16-4)中描述的那样引入。DEBUG指令的执行
Tricore架构支持一种机制,该机制可以产生调试事件。举个例子,这可以通过调试器用于修补储存在RAM中的代码以执行断点。特殊DEBUG指令为用户模式指令,并且其操作取决于调试模式是否被使能。提供DEBUG指令的16位和32位形式。
如果调试模式被使能,DEBUG指令产生调试事件,并且采取在软件暂停事件特殊寄存器SWEVT中定义的行为。如果调试模式不被使能,那么DEBUG指令被处理为NOP指令。MTCR/MFCR指令的执行
为了保护仿真器来源,MTCR或MFCR指令用于读取或者修改用户内核SFR时产生调试事件,但当用户读取或者修改任何一个专用内核调试寄存器(DBSR,CREVT,SWEVT,EXEVT,TR0EVT,TR1EVT,DMS,DCX或者DBGTCR)时,不产生调试事件。
当MTCR或MFCR指令在由仿真器来源保护事件区分寄存器CREVT中的内容定义的用户内核SFR中执行时,行动被采取。16.2.1.3
调试行为
四种调试行为可用:
通过MCBS单元和输入/输出控制确立内核Break-out信号和BRKOUT(图16-4)停止CPU内核引起暂停强制中断产生中断请求
这些调试行为通过编程相应的事件区分寄存器被选择。其内容决定了当相应的调试事件发生时采取什么行为。同时,内核Suspend-Out信号被激活。16.2.1.4
TricoreOCDS寄存器
请参考“Tricore内核架构V1.3.1”手册。
用户手册OCDS,V1.5
16-8V1.0,2011-12
TC1728片上调试支持(OCDS)
16.2.2PCPOCDS级别1
PCP不能通过硬件方式产生触发事件。
为了设置断点,期望调试器通过DEBUG指令在PCP代码存储器(CMEM)中修补代码。如果执行DEBUG指令,正在运行的通道程序通过调试退出或者错误退出被终止。
PCP有一个挂起输入,一个暂停输入和一个暂停输出。暂停转换会通过如上相同的顺序(调试退出或者错误退出)发送一个外部暂停请求给PCP。16.2.3
SBCUOCDS级别1
TC1728的SPB总线的BCU提供非常强大的触发产生的方式。BCU包括的比较器用于:
仲裁阶段(寻找特定总线主机)地址阶段(寻找特定地址或范围)
数据阶段(寻找读、写、管理员模式等)
结果可被组合起来产生一个暂停请求信号,其发送到暂停切换。
SBCU的OCDS寄存器在“片上系统总线和总线桥”章节中描述,从“系统总线控制单元寄存器”一节开始。16.2.4
DMAOCDS级别1
TC1728的DMA控制器提供了如下的调试功能:DMA控制器的硬件挂起模式(只用于测试的目的)DMA通道的软件挂起模式暂停信号产生
在挂起模式里,DMA通道的操作或者整个模块停止。在特定条件下,也产生片上调试支持逻辑的一个暂停信号。DMA控制器的OCDS级别1调试功能的更多细节在DMA章里的“片上调试功能”描述。
用户手册OCDS,V1.5
16-9V1.0,2011-12
TC1728片上调试支持(OCDS)
16.3调试接口(Cerberus)
Cerberus模块是片上单元,其控制所有OCDS的主要调试功能。一般来说,Cerberus不能被任何应用软件使用,因为其会干扰仿真工具的行为。
Cerberus由3部分组成(也见图16-1):
OCDS系统控制单元—OSCUIOClient
多内核暂停切换—MCBS
工具可以以两种方式连接到设备:
一个两线DAP接口通过DAP模块接收调试器命令,转换命令并将命令输出到IOClient接口。标准JTAG接口通过JTAG控制器与IOClient接口相连。
两个额外的引脚可用于处理外部暂停情况。外部调试硬件通过系统外设总线访问Cerberus寄存器和任意内存位置。特性
OCDS级别1通过如下控制—5个引脚的标准JTAG接口—2个引脚的DAP接口
可能通过BRKIN/BRKOUT产生外部暂停情况
通过DAP/JTAG对整个SPB总线地址空间进行完访问
不需要用户资源(硬件、软件)
没有或者最小化运行时间的影响(可以控制Cerberus总线优先级)普通内存读/写功能
写字、半字和字节块读写
完全支持片上监控程序和外部调试器之间的通讯读/写挂起由OCDS模块(内存追踪)选择性触发通过DAP/JTAG下载程序和数据OCDS块的控制数据采集
RW模式
16.3.1
如同名字所表现的,RW模式通过DAP/JTAG主机用于通过DAP/JTAG接口读或写任意内存位置。RW模式需要Cerberus的SPB总线主机接口来请求数据读或数据写。
用户手册OCDS,V1.5
16-10V1.0,2011-12
TC1728片上调试支持(OCDS)
数据类型支持
字(32位):默认数据类型;用于单个字的发送和块发送。
半字(16位):为读16位寄存器不产生总线错误,提供特定的IOClient指令。
字节(8位):如果DAP/JTAG主机试图读一个字节,它必须读关联的字或半字。那么主机必须提取需要的字节。
通讯模式
16.3.2
在通讯模式里,Cerberus不访问内部总线,并且通过Cerberus寄存器在外部DAP/JTAG主机和软件监控器(嵌入到应用程序中)之间建立通讯。通讯模式在复位后是默认模式。
在通讯模式里,外部DAP/JTAG主机是所有操作的主机。主机请求监控器向/从Cerberus寄存器COMDATA写入或读取数据。与RW模式不同的是读或写请求不被Cerberus执行。请求只是置位CPU里可访问的IOSR寄存器的位以通知监控器:调试器试图发送或者接收数据。软件监控器必须查询IOSR寄存器以得到上面的信息。16.3.3
触发发送
触发发送可被用于当OCDS触发激活时读取或者写入某个内存位置。
触发发送的主要应用是追踪某个内存位置。当CPU的OCDS激活其breakout信号,如果该地址位置被用户程序写入,则发生上述动作。该事件通过MCBS的配置用作发送触发。Cerberus被配置在触发时读取该位置。16.3.4
多内核暂停切换
TC1728中具有一些暂停信号源和暂停信号目标。例如,OCDS运行一个处理器的控制,可暂停其它处理器单元。多内核暂停切换(MCBS)是Cerberus的一部分,并且允许以一种普遍且灵活的方式从源到目标发送暂停请求。图16-4显示了MCBS的暂停信号接口。
用户手册OCDS,V1.5
16-11V1.0,2011-12
TC1728片上调试支持(OCDS)
图16-4暂停切换接口
MCBS单元支持如下特性:
Break-in源:TriCore,PCP,DMA,SBCU,MLI0,MLI1多达两个设备引脚可配置为BRKIN/BRKOUT引脚两个独立的暂停总线挂起产生支持延迟的挂起暂停到挂起的转换
用户手册OCDS,V1.5
16-12V1.0,2011-12
TC1728片上调试支持(OCDS)
产生带有来自源的暂停的中断请求系统的同步重启
JTAG接口
16.4
JTAG接口是标准化的单元,其典型地用作边界扫描和内部设备测试。因为在系统的正常设备操作中这两个应用都不处于激活状态,JTAG口可用作在正常设备操作的调试任务的理想接口。16.5
设备访问口(DAP)
出于成本的考虑,减少非功能引脚以尽可能减少工具访问端口引脚。英飞凌的最新微控制器的标准化的设备访问端口(DAP)提供了方便的方法,以最少的成本获得所需的功能。DAP只需要两个引脚(DAP0是时钟引脚,DAP1是双向数据引脚)与工具沟通。
DAP使用简单的半双工协议,即DAP1引脚用于在不同的时间段将数据从设备传输到工具和从工具传输到设备。并且时钟信号由工具提供给DAP0输入引脚。16.5.1
DAP报文格式
所有信息以报文格式在在工具和设备之间传送。强制的6位CRC检验和保证在即使在嘈杂的环境下也能安全传输。分拆命令和数据到不同的单元里,这些单元被顺序传送,从而实现了单条双向线上的半双工传输。只要能传送串行位流,物理接口介质可独立选择。16.5.2
DAP报文列表
该节列出由TC1728完成的报文。忽略其它报文,导致工具的超时情况。三组报文可被区分:控制报文
需要这四个报文来建立和维持从工具到设备的连接等。无数据被传输。
Sync-请求同步模式Turn_off-关闭DAPPoll-得到当前服务请求Set_maxwati-调整超时参数
用户手册OCDS,V1.5
16-13V1.0,2011-12
TC1728片上调试支持(OCDS)
JTAG报文
该组报文封装了标准的JTAG命令,添加了释放时间并且提高了传输速度和DAP质量。
Jtag_mode-切换DAP到BYPASS模式
Jtag_reset-复位TAP控制器
Jtag_setIR-写TAP的INSTRUCTION寄存器
Jtag_swapIR-写和读TAP的INSTRUCTION寄存器Jtag_setDR-写当前JTAG数据寄存器
Jtag_swapDR-写和读当前JTAG数据寄存器Jtag_moreDR-写和读长JTAG数据寄存器的部分
用户报文
最后一组允许对IOClient如设备Cerberus进行直接访问,完全隐藏工具时钟和设备系统时钟的异步时序。以下5个报文属于这个组:
client_set–定义了当前IOClientclient_get–询问当前IOClient的指数client_reset–复位当前IOClientclient_write–写当前IOClientclient_read–读取当前IOClient
Cerberus和JTAG寄存器
该节总结所有Cerberus和JTAG寄存器以供参考。关于这些寄存器的细节描述请见OCDS文档,其可从工具提供商处得到(请联系当地英飞凌代表)。所有Cerberus寄存器在设备的寄存器映射里加上前缀“CBS_”。
16.6
用户手册OCDS,V1.5
16-14V1.0,2011-12
TC1728片上调试支持(OCDS)
图16-5JTAG/Cerberus寄存器概览表16-1JTAG/Cerberus寄存器概览寄存器缩略名JTAG控制寄存器BYPASSID
INSTRUCTIONIOPATHCerberus寄存器OJCONFOECOCNTRLOSTATECLIENT_ID
通过JTAG寄存器配置OSCUOCDS使能控制寄存器OSCU配置和控制寄存器OSCU状态寄存器
JTAG用户ID寄存器(32位)
1)
F0000478HF000047CHF0000480H1)
JTAG旁路寄存器(1位)JTAG设备ID寄存器(32位)JTAG指令寄存器(8位)IOClient选择寄存器(2位)
1)1)1)1)
寄存器全名
地址
用户手册OCDS,V1.5
16-15V1.0,2011-12
TC1728片上调试支持(OCDS)
表16-1JTAG/Cerberus寄存器概览寄存器缩略名IOCONFIOINFOIOADDRIODATAJDPIDJTAGIDCOMDATAIOSRINTMODICTSAICTTAMCDBBSMCDBBSSMCDSSGMCDSSGCSRC0SRC1TRADDRRIGRIGCRIGS
寄存器全名配置寄存器(12位)
错误分析寄存器的状态信息(16位)数据访问寄存器地址(32位)RW模式数据寄存器(32位)Cerberus模块ID寄存器JTAG设备ID寄存器通讯模式数据寄存器状态寄存器
内部模式状态和控制寄存器内部控制追踪源地址寄存器内部控制追踪目标地址寄存器暂停总线切换配置寄存器暂停总线切换状态寄存器挂起信号生成状态和控制寄存器挂起信号生成配置寄存器服务请求控制寄存器0服务请求控制寄存器1触发发送目标地址对主机的触发清零对主机触发置位对主机触发地址1)1)1)1)
F0000408HF0000464HF0000468HF000046CHF0000484HF0000488HF000048CHF0000470HF0000490HF0000474HF0000494HF00004FCHF00004F8H1)
F00004A8HF00004A4HF00004A0H
1)这些寄存器只能通过JTAG接口进行访问用户手册OCDS,V1.5
16-16V1.0,2011-12
www.infineon.com
PublishedbyInfineonTechnologiesAG
因篇幅问题不能全部显示,请点此查看更多更全内容