发明内容
为了能减轻适用于不同调试功能的调试探头的设计工作,本发明提出一种重用性强、应用性广的片上调试系统的探头装置。
本发明公开的用于片上调试系统的探头装置,包括:
输入数据信号控制部件,用于根据接收到来自调试系统上层的调试控制信号,决定输入到计算部件的数据来源;
输出数据信号控制部件,用于根据接收到的来自调试系统上层的调试控制信号,控制计算部件对数据处理后的输出;以及
计算部件,用于接收来自所述输入数据控制部件选择控制后的调试数据,然后计算出发送到处理核的调试命令信息或反馈回调试系统上层的反馈状态信息,最后通过所述输出数据信号控制部件将计算后的数据信息输出,从而实现片上调试系统和处理核之间的调试数据交互。
其中,所述的输入数据信号控制部件包括:一组用于接收调试控制信号输入端口、一个用于接收来自调试系统上层部件串行数据的输入端口、一组用于接收来自处理核并行反馈信息的输入端口、一个用于接收计算部件返还数据的输入接口、一个由调试控制信号选择控制输入数据来源的选通部件、一组并行数据输出接口和一个串行数据输出接口。
其中,所述的输出数据信号控制部件包括:一组可以接收来自调试系统上层调试控制信号输入接口、一组用于接收计算部件处理数据的并行数据输入接口、一个接收计算部件处理数据的串行数据输入接口、一个用于控制输出的部件、一组并行输出端口和一个串行输出端口。
其中,所述的计算部件在对串行输入数据处理时将输入的串行数据转换成并行数据,或者将输入的串行数据缓存若干次后输出。
其中,所述的计算部件在对并行输入数据处理时将输入的并行数据转换成串行数据输出,或者将输入的并行数据缓存后输出。
其中,将所述的探头装置组合,以搭建出适用于不同大小、不同用途调试数据的多个探头装置组成的探头链路。
其中,所述的探头装置能够搭建出设置断点的断点调试探头、设置观测点的观测点调试探头或访问存储器访问寄存器堆的数据访问调试探头。
其中,所述的探头装置搭建出实现断点设置功能的断点调试探头,所述断点调试探头包括探头装置301和比较电路302,所述比较电路302用于判定采集到的PC寄存器的值和调试探头301预设的断点地址值是否相等。
其中,所述的探头装置搭建出实现观测点设置功能的观测点调试探头,所述的观测点调试探头包括第一和第二探头装置401、402、第一和第二比较电路403、404、多路选择器405和与逻辑406,所述第一探头装置401用于保存数据观测操作的预设数据,所述第二探头装置402用于保存地址观测操作的预设地址和观测模式控制信号,所述第一比较电路403用于判定程序执行过程中观测到的访问数据和预设观测数据是否相等,所述第二比较电路404用于判定程序执行过程中观测到的访问地址和预设地址是否相等,所述多路选择器405接收来自所述第二探头装置402的模式控制信号,选择观测模式是数据观测、地址观测还是数据地址同时观测,所述与逻辑406用于实现数据地址同时观测逻辑操作。
其中,所述的探头装置搭建出能实现访问存储器和寄存器堆功能的数据访问调试探头,所述数据访问调试探头501由第一和第二探头链路502、503组成,其中所述第一探头链路502为数据写操作链路,所述第二探头链路503为数据读操作链路;以及
所述第一探头链路502由第一探头装置504和第二探头装置505串接,其中所述第一探头装置504用于传递读写数据,所述第二探头装置505用于传递读写地址;所述第二探头链路503由第三探头装置506和第四探头装置507串接,其中所述第三探头装置506用于传递读写数据,第四探头装置507用于传递读写地址。
基于上述技术方案可知,本发明的调试系统的探头装置,可将来自调试系统上层的串行的调试数据经过串转并的转换,使调试系统上层可以调试处理核,然后将采集来自处理核的调试结果反馈信息经过并转串的转换,使调试系统上层部件能够获得调试结果,以此实现调试系统和处理核之间的交互。此外,本发明的探头装置通过串接组合方式,可以组合成探头链路,探头链路可以方便处理不同大小、不同用途的调试数据。由于探头链路的这种特点,调试系统上层部件可以将不同用途的调试数据如调试地址信息、调试读写数据信息等调试数据整合成一个组合型数据包,这个特点方便于调试系统上层部件的设计。此外,探头链路还可以同时监测处理核上调试地址反馈信息、调试读写反馈数据等调试反馈数据,使片上调试系统的电路在设计时更加节约面积。此外,本发明的探头装置还可应用于片上调试系统的所有调试探头,如存储数据访问调试探头、处理核硬件断点调试探头、观测点调试探头和读取处理核PC值的调试探头。可见,本发明的探头装置可以灵活应用于不同调试探头,并使片上调试系统在设计上更加高效、更加经济。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明公开了一种片上调试系统的探头装置,包括:
输入数据信号控制部件,用于根据接收到来自调试系统上层的调试控制信号,决定输入到计算部件的数据来源。包括一组用于接收调试控制信号输入端口、一个用于接收来自调试系统上层部件串行数据的输入端口、一组用于接收来自处理核并行反馈信息的输入端口、一个用于接收计算部件返还数据的输入接口、一个由调试控制信号选择控制输入数据来源的选通部件、一组并行数据输出接口和一个串行数据输出接口。
输出数据信号控制部件,用于根据接收到的来自调试系统上层的调试控制信号,控制计算部件对数据处理后的输出。包含一组可以接收来自调试系统上层调试控制信号输入接口、一组用于接收计算部件处理数据的并行数据输入接口、一个接收计算部件处理数据的串行数据输入接口、一个用于控制输出的部件、一组并行输出端口和一个串行输出端口。
计算部件,用于对输入数据信号控制部件选择控制的调试数据进行处理。计算部件处理数据时,具有将串行数据转换成并行数据、将并行数据转换成串行数据和缓存数据等功能。计算部件在对串行输入数据处理时,可以将输入的串行数据转换成并行数据,也可以将此串行输入数据缓存若干次后输出。计算部件对并行输入数据处理时,可以将输入的并行数据转换成串行数据输出,也可以将并行输入数据缓存后输出。
本发明的探头装置在片上系统进入调试工作时,作为连接调试系统和处理核之间的媒介,需要能实现将来自调试系统上层部件的调试数据转换后发送到处理核上、捕获处理核上被调试后的调试数据并转换成调试系统可识别的调试反馈信息发送回调试系统这两种操作。
在调试命令信息发往处理核的调试过程中,首先,调试系统上层部件将探头控制信号及调试操作所用的数据发送到探头装置,其中调试操作所用的数据是以串行的方式发送,这种以串行方式发送大量数据有利于提高数据传输的速率,并且减小硬件电路的面积。然后,探头装置接收到探头控制信号和调试数据后,根据探头控制信号,探头装置被切换到串转并操作,捕获串行的调试数据且转换为并行数据,当该探头装置所需转换的数据被截取并转换完成后,探头控制信号控制探头装置的输出数据信号控制部件将操作完成的并行数据输出给处理核。最后,处理核收到并行调试数据,被调试后返还并行调试反馈信息。
在调试反馈信息发往调试系统上层部件中时,首先,探头装置不断监测处理核上反馈的并行数据。然后,当调试系统需要接收反馈调试信息时,通过探头控制信号将探头装置切换到并转串操作,调试反馈信息被转换成调试系统上层部件可识别的串行数据。最后,串行调试数据被返还给调试系统上层部件。
作为本发明的一个优选实施例,本发明公开了一种片上调试系统探头装置。图1示出了本发明的片上调试系统探头装置的结构示意图。如图1所示,该探头装置包括:输入数据信号控制部件101、计算部件102和输出数据信号控制部件103。
其中,所述输入数据信号控制部件101用于接收输入信号,并根据调试控制信号选择控制输入给计算部件的数据信号。输入数据信号控制部件如图2所示,包括:二选一选择器201,用于选择输送给计算部件205的并行数据来源,通过选择来源来控制探头装置是否捕获监测到的调试反馈信息,其中一个并行输入数据来自探头装置监测处理核获得的并行调试反馈信息,另一个输入来自于计算部件205的计算反馈数据。二选一选择器202,用于控制探头装置是否捕获串行输入数据,其中一个输入来源于计算部件205的计算结果,另一个输入来源于捕获串行数据和计算结果的组合信号;二选一选择器203,用于选择计算部件205的串行数据来源,其中一个来自于片上调试系统上层部件发送的串行调试数据,另一个来源于计算部件205输出并行数据的最低位;输入控制信号组合电路204将多个输入控制信号进行逻辑计算,产生的控制信号对进入计算部件205的数据进行控制。
图1所述计算部件102是一个移位寄存器,用于执行调试数据计算操作,其可将来自片上调试系统上层部件的串行调试数据经过串转并操作得到处理核能识别的并行数据,使处理核被调试。也可将从处理核上采集到的并行数据经过并转串操作得到串行数据反馈给调试系统上层部件。此外,计算部件102还可对数据进行缓存操作,以适用不同的调试探头设计。
图1所述输出数据信号控制部件103是一个二选一选择器,用于控制是否输出计算部件得到的数据,如果不执行调试任务时,调试系统使能信号关闭,进入本探头装置的数据不经过任何操作输出,如果执行调试任务时,调试系统使能信号开启,本探头装置输出计算部件计算得到的调试信息给片上调试系统上层部件或处理核。
下面以搭建硬件断点调试探头为例,并结合图3阐述本发明的探头装置的应用。硬件断点调试探头用于实现硬件断点调试功能。如图3所示,该硬件断点调试探头由探头装置301和比较电路302组成。其中比较电路302用于判定采集到的PC寄存器的值和调试探头301预设的断点地址值是否相等。片上调试系统执行硬件断点调试功能的过程中,首先由调试系统上层部件以串行的方式发送所设断点地址到探头装置301,探头装置301的串并转换功能被选通,所设置的串行预设地址经过计算部件的串并转换操作,被并行保存在计算部件的移位寄存器中。当串行地址被完全发送到调试探头后,探头装置的并行缓存功能被开启,此时计算部件中的移位寄存器存储所设置的断点地址。当处理核在程序执行的过程中,PC寄存器的值会时刻被硬件断点调试探头的比较电路302采集,如果PC寄存器的值和探头装置移位寄存器中所保存的断点设置地址相等时,硬件断点触发,触发标示信号Trigger为1,处理核运行暂停,实现硬件断点调试功能。
下面以搭建观测点调试探头为另一事例,并结合图4阐述本发明的探头装置。观测点调试探头用于监测程序执行过程中数据和存储地址的访问情况,如果程序执行时,有预设数据或存储地址被访问时,观测点触发并暂停程序执行。观测点监测模式可分为数据监测、地址监测及数据地址同时监测。如图4所示,该观测点调试探头由两个探头装置401、402,两个比较电路403、404,多路选择器405,与逻辑406组成。其中,探头装置401用于保存数据观测操作的预设数据。探头装置402用于保存地址观测操作的预设地址和观测模式控制信号。比较电路403用于判定程序执行过程中观测到的访问数据和预设观测数据是否相等。比较电路404用于判定程序执行过程中观测到的访问地址和预设地址是否相等。选择器405接收来自调试探头402的模式控制信号,选择观测模式是数据观测、地址观测还是数据地址同时观测。与逻辑406用于实现数据地址同时观测逻辑操作。
调试系统执行观测点调试过程中,首先由调试系统上层部件发送串行数据包到观测点调试探头,该数据包包含预设数据、预设地址和观测模式选择信号。探头装置401经过串并转换操作截取部分数据作为数据行观测的预设数据保存在移位寄存器中,其余串行数据不经过任何操作输出到探头装置402。探头装置402经过串并转换后,将预设地址保存和模式选择信号保存到移位寄存器中。然后,在处理核执行程序的过程中,数据比较电路403和404监测程序执行过程中访问的数据及内存地址,如果比较电路403监测到的数据和探头装置401中的预设数据相等,比较电路403输出触发信号。如果比较电路404监测到的地址和探头装置402中预设地址相等,比较电路404输出触发信号。然后,选择器405通过来自探头装置402的模式控制信号选择触发信号的来源并输出最终的触发信号,实现观测点触发暂停处理核执行程序的操作。
下面以搭建数据访问调试探头为例,并结合图5阐述本发明公开的探头装置的应用。数据访问调试探头被用于实现调试系统对存储器和寄存器堆的读写调试。如图5所示,数据访问调试探头501由两个探头链路502和503组成,其中探头链路502为数据写操作链路,探头链路503为数据读操作链路。本实施例以每个探头链路包含两个探头装置为例,这两个探头装置分别被用于传递读写地址和读写数据。如图5,探头链路502由探头装置504和505串接,其中探头装置504用于传递读写数据,探头装置505用于传递读写地址。探头链路503由探头装置506和507串接,其中探头装置506用于传递读写数据,探头装置507用于传递读写地址。图5中的508为调试系统上层部件,509为处理核数据存储部件,如寄存器堆或存储器。
片上调试系统执行对处理核写数据操作的过程中,首先上层部件508给探头链路上的每一个探头装置发送控制信号,并且将包含要写入的地址和数据的组合串行数据包发送到串行链路502的第一个探头装置504。控制信号开启探头装置504执行串转并操作,关闭探头装置505的串转并操作。当串行数据包中的写入数据部分全部转换完成后,探头装置504被控制信号切换为暂存数据功能,探头装置505被控制信号开启串转并操作。当串行数据包中的写入地址部分全部转换完成后,控制信号控制探头装置输出经过串转并操作得到并行写入地址和数据。处理核上的存储部件接收到探头链路送来的地址信息和数据信息后,即可实现调试系统对存储部件的写操作。
片上调试系统执行数据读操作的过程中,首先上层部件508给探头链路上的每一个探头装置发送控制信号,并且将包含要读取数据地址信息的串行数据包发送到串行链路503的第一个探头装置506。探头装置506作为对数据信息操作的探头装置不对串行地址信息进行操作,串行地址信息经过探头装置506后到探头装置507,控制信号开启探头装置507的串并转换功能,当串行数据包中的读取地址部分全部转换完成后得到并行的地址信息输出给处理核上需要被读访问的部件。处理核上的存储部件接收到探头链路送来的读操作地址信息后,即可实现调试系统对存储部件的写操作。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。