一种基于JTAG的调试系统的制作方法

文档序号:32796129发布日期:2023-01-03 22:24阅读:48来源:国知局
一种基于JTAG的调试系统的制作方法
一种基于jtag的调试系统
技术领域
1.本发明涉及jtag调试技术领域,尤其是一种基于jtag的调试系统。


背景技术:

2.基于jtag标准(ieee 1149.1)使用在线仿真器对目标处理器进行远程交叉调试,已经成为绝大多数芯片必备的基本功能。jtag标准中定义tck、trst、tms、tdi、tdo5路基本信号,用于实现目标处理器的调试操作。
3.然而,随着目标处理器和在线仿真器的主频不断提升,原有jtag标准信号中缺少传输必要的时序匹配,导致在线仿真器与目标处理器之间在频率较高的情形下,出现稳定性和可靠性下降的问题。为此,越来越多的处理器厂商(arm、ti等)在原有jtag标准信号的基础上,增加1路tck_ret信号(目标处理器返回到在线仿真器的时钟信号)用以实现目标处理器与在线仿真器之间的时钟自适应,从而提升调试过程中的稳定性和可靠性。
4.遵循jtag标准的在线仿真器作为主设备,通过串行信号驱动处理器内部调试系统的tap状态机运转,实现调试主机的不同调试请求;而处理器相当于从设备,被动地接收在线仿真器发送的串行信号。处理器内部调试系统的tap状态机在16个标准状态中切换,在shift-dr状态,tdi输入,同时tdo输出。完成一次调试操作,需要状态机切换多种状态,才能实现,如附图1所示。
5.然而,在调试过程中,调试主机往往需要通过在线仿真器与目标处理器进行批量数据交互,特别是数字信号处理器(dsp)等计算类处理器。在进行批量数据读写操作时,调试主机需要利用在线仿真器不断地通过串行的tck、tms、tdi信号将目标地址(和数据)发送至目标处理器,目标处理器在在线仿真器的驱动下,不断将执行结果通过tdo、tck_ret信号返回至在线仿真器。整个过程中,目标处理器受限于tck、tck_ret的频率和tap状态机运转的影响,导致数据交互效率不高,尤其是数据导出效率低下,极大影响用户开发进度。


技术实现要素:

6.针对现有处理器的调试方式在批量数据交互时存在的不足之处,本发明提出一种基于jtag的调试系统。
7.一种基于jtag的调试系统,包括依次连接的调试主机、在线仿真器和处理器内部调试系统,其特征在于,所述处理器内部调试系统包含依次连接的调试控制模块、数据交互控制模块和数据交互模块,所述数据交互控制模块内部配置有用于数据交互的控制寄存器,所述调试控制模块和所述数据交互模块均连接处理器内核或总线;
8.所述调试主机用于下发调试命令或读写数据请求;
9.当所述调试主机下发调试命令或单个读写数据请求时,所述在线仿真器和所述处理器内部调试系统处于调试控制模式,所述在线仿真器将该调试命令或单个读写数据请求转化为tdi、tms、tck信号并发送至所述处理器内部调试系统;所述调试控制模块通过tdo、tck_ret信号将执行结果返回至所述在线仿真器,所述在线仿真器再将执行结果返回至所
述调试主机;
10.当所述调试主机下发批量读写数据请求时,所述在线仿真器先通过所述调试控制模块配置所述数据交互控制模块中的控制寄存器,待控制寄存器配置完成后,将所述在线仿真器和所述处理器内部调试系统的tap状态机分别设置为初始状态,然后使能所述数据交换模块,所述在线仿真器和所述处理器内部调试系统切换至数据交互模式;
11.数据交互模式下,tms信号一直维持高电平,所述调试控制模块将接收到的tck、tdi信号直接送入所述数据交互模块,所述数据交互模块通过tdo、tck_ret信号将执行结果返回至所述在线仿真器,所述在线仿真器再将执行结果返回至所述调试主机,直至完成数据交互操作;关闭所述数据交换模块,所述在线仿真器和所述处理器内部调试系统切换回调试控制模式。
12.进一步的,用于数据交互的控制寄存器包括起始地址寄存器、内存读写长度寄存器、读写标志寄存器、连续读写使能寄存器;所述数据交互模块根据起始地址寄存器、内存读写长度寄存器的配置,进行自增寻址;根据读写标志寄存器、连续读写使能寄存器的配置,执行数据交互操作。
13.进一步的,批量读操作过程中,所述数据交互模块根据起始地址寄存器、内存读写长度寄存器中的配置向处理器内核或总线发送目标地址的读操作,得到返回的有效数据后,再通过tdo、tck_ret信号将有效数据返回至所述在线仿真器,所述在线仿真器再将有效数据返回至所述调试主机;写操作过程中,所述数据交互模块接收所述在线仿真器通过tck、tdi信号传入的数据,根据控制寄存器的配置,将数据写入目标地址。
14.进一步的,数据交互模式下,在读写数据前后,所述在线仿真器与所述处理器内部调试系统分别进行传输开始验证和传输结束验证;传输开始验证过程为:所述在线仿真器通过tdi、tck信号向所述处理器内部调试系统发送传输开始验证码,并采集所述处理器内部调试系统输出的tdo、tck_ret信号,直至采集到的数据与传输开始验证码相同;传输结束验证过程为:数据读写完成后,由数据发送方向数据接收方发送传输结束验证码,在数据发送方接收到数据接收方回传的传输结束验证码后,所述在线仿真器和所述处理器内部调试系统切换回调试控制模式。
15.本发明通过在处理器内部调试系统中新增数据交互控制模块和数据交互模块,利用标准jtag信号和主流处理器厂商新增的tck_ret时钟同步信号,在不增加芯片引脚的情况下,在既满足用户的基本调试操作,又提供一种高效的数据交互方法,解决了现有处理器的调试方式在批量数据交互时存在的交互效率不高的问题。
附图说明
16.图1为调试控制模式shift-dr状态下的jtag信号时序图;
17.图2为本发明公开的调试系统的结构框图;
18.图3为数据交互模式下的tck、tdi、tdo、tck_ret信号时序图。
具体实施方式
19.下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多
修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
20.实施例1
21.一种基于jtag的调试系统,如图2所示,包括依次连接的调试主机、在线仿真器和处理器内部调试系统,所述处理器内部调试系统包含依次连接的调试控制模块、数据交互控制模块和数据交互模块,所述调试控制模块和所述数据交互模块均连接处理器内核core或总线(例如图2中示出的ahb总线)。
22.所述调试控制模块为现有处理器内部调试系统已有模块,所述数据交互控制模块和所述数据交互模块为本发明为适应批量数据读写需求,新增的模块,所述数据交互模块核心功能包括自增寻址、数据接收和数据发送,即与批量数据读写相关功能。
23.所述数据交互控制模块内部配置有用于数据交互的控制寄存器,该控制寄存器按照常规用于批量读写控制的控制寄存器设置即可。本实施例中,用于数据交互的控制寄存器包括起始地址寄存器、内存读写长度寄存器、读写标志寄存器、连续读写使能寄存器。所述数据交互模块根据起始地址寄存器、内存读写长度寄存器的配置,进行自增寻址;根据读写标志寄存器、连续读写使能寄存器的配置,执行数据交互操作。
24.本实施例中,在线仿真器与处理器内部调试系统均包含两种工作模式,分别为基础的调试控制模式和新增的数据交互模式。
25.在调试控制模式下,调试主机通过usb或以太网向在线仿真器发送不同的调试命令,在线仿真器将调试命令转化为tdi、tms、tck信号发送至处理器内部调试系统,所述调试控制模块通过tdo、tck_ret信号将执行结果返回至所述在线仿真器,所述在线仿真器再将执行结果返回至所述调试主机。这与现有调试方式基本一致。
26.在数据交互模式下,调试主机通过usb或以太网向在线仿真器发出批量读写数据请求,在线仿真器识别到该命令为数据交互操作,先通过调试控制模块配置数据交互控制模块中的控制寄存器,待控制寄存器配置完成后,将在线仿真器和处理器内部调试系统的tap状态机分别设置为初始状态,然后使能数据交换模块,在线仿真器和处理器内部调试系统切换至数据交互模式。
27.数据交互模式下,tms信号一直维持高电平,调试控制模块将接收到的tck、tdi信号直接送入数据交互模块,数据交互模块通过tdo、tck_ret信号将执行结果返回至在线仿真器,在线仿真器再将执行结果返回至调试主机,直至完成数据交互操作;关闭数据交换模块,在线仿真器和处理器内部调试系统切换回调试控制模式。
28.由于在线仿真器和处理器内部调试系统均切换至数据交互模式运行,无需考虑调试控制模块中的tap状态机运转,tck、tck_ret信号作为数据交互的时钟信号,tdi、tdo信号作为数据交互的数据信号。一般情况下,tck、tck_ret信号频率在数据传输过程中可以稳定保持在50mhz。
29.为保证数据传输的可靠性,数据交互模式下,在读写数据前后,所述在线仿真器与所述处理器内部调试系统分别进行传输开始验证和传输结束验证。
30.传输开始验证过程为:所述在线仿真器通过tdi、tck信号向所述处理器内部调试系统发送传输开始验证码(例如0x5aa57bb7),并采集所述处理器内部调试系统输出的tdo、
tck_ret信号,直至采集到的数据与传输开始验证码相同;
31.传输结束验证过程为:数据读写完成后,由数据发送方向数据接收方发送传输结束验证码(例如0xa55ab77b),在数据发送方接收到数据接收方回传的传输结束验证码后,所述在线仿真器和所述处理器内部调试系统切换回调试控制模式。
32.处理器内部调试系统包括调试控制模块、数据交互控制模块和数据交互模块,其中调试控制模块负责接收所有外部jtag信号,并执行相关操作;数据交互控制模块内部主要为用于数据交互的控制寄存器。
33.数据交互操作分为批量读操作(在线仿真器批量读取处理器内存数据)和批量写操作(在线仿真器向处理器内存批量写入数据),图3为数据交互模式下的tck、tdi、tdo、tck_ret信号时序图,数据传输以数据帧为单位进行,每帧大小32bit。
34.批量读操作过程中,所述数据交互模块根据起始地址寄存器、内存读写长度寄存器中的配置向处理器内核或总线发送目标地址的读操作,得到返回的有效数据后,再通过tdo、tck_ret信号将有效数据返回至所述在线仿真器,所述在线仿真器再将有效数据返回至所述调试主机;
35.写操作过程中,所述数据交互模块接收所述在线仿真器通过tck、tdi信号传入的数据,根据控制寄存器的配置,将数据写入目标地址。
36.显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1