总线监控与调试控制装置及进行总线监控与总线调试的方法

文档序号:6434290阅读:467来源:国知局
专利名称:总线监控与调试控制装置及进行总线监控与总线调试的方法
技术领域
本发明涉及一种控制装置,特别是涉及一种总线监控与调试控制装置。还涉及利用这种总线监控与调试控制装置进行总线监控与总线调试的方法。
背景技术
随着嵌入式系统芯片的普及和芯片上集成的功能部件越来越多,嵌入式系统规模及复杂度越来越高,这无疑增加了硬件系统的调试以及软件开发人员调试软件的难度,系统可监控与可调试问题凸显。一些嵌入式系统,例如控制汽车发动机或者控制卫星的系统, 需要一定的容错能力,这就需要调试系统能快速而方便灵活的向系统中注入错误。另外,不同的嵌入式系统由于使用不同的处理器核心,这些处理器的状态信号以及数据地址宽度可能不同,为了使设计的测试装置可重用,需要可灵活配置的接口。文献“公开号是US6189140B1的美国专利”公开了一种对处理器和嵌入式系统进行调试的装置。该装置是较为典型的应用开发程序员对处理器进行调试的装置,具有JTAG 调试接口,TAP控制器,以及边界扫描寄存器等。调试时可以通过JTAG接口串行的输入信息到边界扫描寄存器中,然后将这些信息加载到芯片的管脚上,这样就可以控制处理器或嵌入式系统芯片的输入信息。该装置缺乏实时的监控及调试能力,当要对系统进行调试时, 需要将处理器正常的工作停止,无法满足一些特殊的嵌入式应用场合,如调试控制汽车发动机的嵌入式系统。文献“公开号是US6769076B1的美国专利”公开了一种实时的处理器调试系统。 该装置在嵌入式系统的核心处理器与Cache之间添加了虚拟地址总线和虚拟数据总线,然后通过选通逻辑将更新的数据和更新的地址信号送到电路的调试接口 ;并且核心处理器可以向调试接口提供处理器的状态信号。虽然该装置构成简单,并且由于可以在开通Cache 的情况下测试核心处理器的运行状态,测量更为准确。但是在测试现有的嵌入式系统SoC 芯片时,由于核心处理器与相应存储及外设通常集成在一块芯片中,无法在核心处理器与 Cache之间增加硬件逻辑,所以该方法并不适用。另外,该装置仅仅有监控功能,缺乏对处理器及嵌入式系统进行调试的能力。文献“公开号是CN95120196.4的中国专利”公开了一种微处理器的调试装置。该装置将调试模块和一个处理器内核做到一个微处理器中,处理器内核执行用户程序并执行用于调试的目标系统的监控程序,调试模块作为一个调试工具的接口,可以使处理器内核执行存放在调试工具中的监控程序。虽然该装置可以通过处理器内核修改存储器中的数据,实现类似错误注入的功能,但是由于处理器只有从执行用户程序切换到执行监控程序时才可以检测系统运行情况,缺乏对实时监控处理器运行情况的支持。另外,虽然该设计考虑需要减少芯片管脚数量,但是增加的调试接口无疑还是增加了少量的芯片管脚数量
发明内容
为了克服现有的装置对总线监控与调试实时性差的不足,本发明提供一种总线监控与调试控制装置,通过数据采集模块实时监控系统总线,将核心处理器对预先设定的关键存储单元或外设接口的读写动作进行记录,以供进行分析,从而完成实时监控;通过端点及调试控制模块实时地将核心处理器对存储器数据区的读写和取指令的地址信息与预设的断点信息作比较,如果匹配,则接管系统总线,并通过可配置接口以及时序控制模块模拟总线操作,对系统进行调试或向系统快速注入错误。本发明还提供利用这种总线监控与调试控制装置进行总线监控的方法。本发明还提供利用这种总线监控与调试控制装置进行总线调试的方法。本发明解决其技术问题所采用的技术方案是一种总线监控与调试控制装置,包括锁相环PLL、串行数据接收器以及串行数据发送器,锁相环PLL生成总线监控和调试控制模块所需的系统工作时钟,串行数据接收器将上位机传送的数据进行串并转换,按照约定的格式发送给工作模式控制模块,串行数据发送器将需要回送给上位机的数据发送到LVDS 上,其特点是还包括一个根据各个模块的工作时钟与系统工作时钟CLK之间的倍数以及相位关系产生各个模块工作时钟的时钟控制模块。一个对总线操作进行监控的数据采集模块。在工作模式控制模块的控制下,预先将检测点写到该模块,在每个总线周期开始时,采集总线行为,当A_BUS和C_BUS指示的总线操作与预先设置好的检测点相匹配,则将本次总线操作的行为记录下来,然后传送到数据传输模块,在存储器中保存。当访问的是需要监控的位置,那么读写数据采样模块,在数据采样使能信号的控制下,将读/写数据模块中的数据值写入存储器中。一个根据上位机发来的命令/数据信号设置监控与调试控制模块的工作模式,配置与目标系统连接的接口,设置监控点、断点的工作模式控制模块。同时在上位机发出出错重传请求时,通知串行数据发送器将出错数据重新上传。一个实现断点功能和调试功能的断点及调试控制模块。当总线操作指示出正在执行的指令与工作模式控制模块预先设置的断点匹配时,则通过发送STOP信号使目标系统暂停运行。上位机可以查看目标系统处理器核心当前的运行信息,并控制处理器核心的运行。上位机需要调试处理器核心时,通过发送HOLD信号向目标系统的处理器核心请求总线控制权,当处理器核心以HOLDA信号通知它已经放弃总线时,调试控制器通知上位机可以进行调试。当接收到上位机发来的调试信息后,将调试信息转化为目标系统总线的波形发送到目标系统总线。当接收到上位机发来的调试结束命令时,驱动HOLD信号无效从而放弃总线控制权。一个将需要记录的数据写入存储器,并在上位机需要分析时将数据进行上传的数据传输模块。一个用于在监控模式下保存采样到的总线数据的存储器。一个用于控制存储器读写的存储器控制器。还有一个适用于测试多种不同的目标系统的可配置接口及时序控制模块。上述可配置接口及时序控制模块包括接口配置寄存器、接口 RAM、接口时序控制状态机及选择逻辑。接口配置寄存器包括数据地址总线宽度配置寄存器、控制总线配置寄存器和时序控制状态机配置寄存器组。接口 RAM的每一行存储模拟总线周期时一拍所要产生的数据。一种利用上述总线监控与调试控制装置进行总线监控的方法,其特点是包括以下步骤(1)上位机通过向SerialData/Command引脚串行发送多个监控点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个监控点写入数据采集模块中的 Sample_Pointer 寄存器。(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于监控模式。(3)在目标系统正常工作时,利用总线周期起始识别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型与预先设定的监控点Sample_PointerO Sample_Pointer9相比较。如果有匹配,执行步骤;不匹配执行步骤(5)。(4)如果CMPO CMP9比较结果有匹配,说明本次访问的是一个需要监控的位置。 将本次总线周期的地址、数据、指令/数据、读/写操作等信息通过写数据采样、读数据采样、Data_to_Mem、Addr_to_Mem模块记录到Memory Write FIFO,进而存放在存储器中。执行步骤(6)。(5)如果CMPO CMP9比较结果没有匹配,说明本次访问的是一个不需要监控的位置。将锁存的数据清除,不写入存储器。(6)从步骤C3)开始执行直到所要监控的程序执行结束或者上位机退出监控模式。(7)在上位机通过与步骤(1)相同的方法发出上传指令时,记录到存储器的总线数据通过数据传输模块、串行数据发送器经krial Data引脚以LVDS信号发送到上位机进行分析。—种利用上述总线监控与调试控制装置进行总线调试的方法,其特点是包括以下步骤(1)上位机通过向SerialData/Command引脚串行发送多个断点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个断点写入断点及调试控制器的 Break_PointerPO Break_PointerP9 或 Break_PointerDO Break_PointerD9 寄存器。(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于断点调试模式。(3)在目标系统正常工作时,利用总线周期起始识别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型(指令/数据)与预先设定的断点Break_POinterP0 Break_P0interP9和 Break_PointerDO Break_PointerD9相比较。如果无匹配,目标系统程序继续执行。(4)如果步骤(3)中的比较器比较结果有匹配,则说明程序执行到一个断点,产生冻结总线周期的信号STOP通过控制总线C_BUS发送给目标系统,目标系统将冻结总线上的所有信号保持不变;同时将此信息通过数据传输模块、串行数据发送器经krial Data引脚以LVDS信号发送到上位机通知用户。(5)用户在收到程序到达断点的信息后,一是采用示波器或逻辑分析仪直接测量目标系统的地址总线、数据总线和控制总线的状态,测量完成后使用与步骤(1)相同的方式由上位机写入清除STOP信号的命令断点及调试控制器,产生End_Stop信号清除STOP信号,目标系统解冻冻结的总线周期,程序继续执行;二是向系统中注入错误,其方法为(a) 上位机通过与步骤⑴相同的方式发送请求接管总线的HOLD命令;(b)通过控制总线C_ BUS向目标发送请求接管总线的HOLD信号;(c)清除STOP信号将目标系统冻结的总线周期解冻;(d)目标系统放弃总线控制权,并通过控制总线(_8旧通知上位机已经获得总线控制权;(e)上位机要注入的错误信息转换为需要模拟的总线读写周期,采用与步骤(1)相同的方式传入断点及调试控制器;(f)采用模拟总线周期的有限状态机控制可配置接口及时序控制模块产生目标系统的总线读写周期;(g)如果产生的是总线读周期,将读回的数据返回给上位机;如果产生的总线写操作,则由上位机显示写操作是否成功;(h)撤销HOLD信号,交出总线控制权,目标系统继续运行。(6)从步骤(2)开始执行直到上位机发送指令退出调试模式。本发明的有益效果是由于数据采集模块用于采集目标系统总线上的数据,监控与调试控制器可设置需要监控的数据地址及指令地址,存储器模块用于记录核心微处理器对特定地址单元访问的详细信息。其监控方法是通过预先设置监控点来设置需要监控的数据地址和程序地址,在处理器运行时,如果访问这些预先设置的地址,则将本次存储器访问的详细信息记录在调试系统的存储中。上位机通过向本发明装置发送命令的方式将存储的访问记录读取到上位机中进行分析。数据采集模块还用于采集目标系统总线上的数据,断点设置模块用于设置需要监控的指令断点和数据断点,还提供在核心处理器处于等待总线周期完成之后对特定的存储单元进行特定的读写操作,特定的存储单元或外围设备的地址以及特定的读写数据值由上位机通过本发明装置提供。这样就可以修改特定变量的值或查看特定变量。其执行断点的方法是在每个总线周期开始时采样地址总线和控制总线,将采样到的地址根据访存类型(指令/数据)与预先设置的断点比较,如果有匹配则向处理器核心发送控制信号,使处理器处于等待总线周期结束的状态。然后由上位机向本装置写入特定的存储单元或外围设备的地址以及特定的读写数据值。最后在结束等待总线周期之后,本装置接管系统总线,总线周期模拟模块模拟总线周期,完成对特定的存储单元或外围设备的地址进行特定的读写。这样不但可以查看目标系统各个部件的状态和存储器中的内容,而且可以通过直接向存储器中或外围设备写入错误信息来向系统中快速注入错误。为了本发明设计的可配置接口,增加了适应性和装置的复用性,使本发明可用于监控和调试具有不同接口处理器的目标系统。下面结合附图和实施例对本发明作详细说明。


图1是本发明总线监控与调试控制装置与目标系统及上位机连接框图。图2是图1中本发明总线监控与调试控制装置结构图。图3是图2中数据采集模块详图。图4是图3中总线周期起始识别模块详图。图5是图4中总线周期起始模块工作的时序举例。图6是图3中数据采样使能信号的产生电路图。
图7是图6中数据采集使能信号产生电路工作的时序举例。图8是图3中写数据采样模块详图。图9是图8中数据采样模块工作的时序举例。图10是图2中断点及调试控制模块实现断点功能时产生STOP信号详图。图11是图10中断点及调试控制模块实现断点功能时产生STOP信号的时序举例。图12是调试功能时总线读周期模拟时序举例。图13是调试功能时总线写周期模拟时序举例。图14是图2中可配置接口及时序模块详图。图15是图10中可时序控制状态机配置寄存器组结构。图16是图10中配置接口及时序模块时序控制状态机。
具体实施例方式本发明总线监控与调试控制装置与上位机及目标系统的接口信号名称及作用CLKIN 板上输入时钟,通过PLL(Phase Locking Loop,锁相环)倍频之后,作为总线监控与调试控制模块的系统时钟。SerialData/Command 与上位机接口的LVDS输入信号。上位机通过该信号线往总线监控与调试控制模块高速地传送串行数据,用于设置工作状态、设置检测点和断点,并在目标系统调试模式下往总线监控与调试控制模块输送调试信息。SerialData to Master 与上位机接口的LVDS输出信号。通过该信号线将监控总线时保存地检测数据上传给上位机。A_BUS 目标系统地址总线,在监控模式下,作为输入。在调试模式下,作为输出,总线监控与调试控制模块向该总线写调试信息。D_BUS 目标系统数据总线,在监控模式下,作为输入。在调试模式下,作为输出,总线监控与调试控制模块向该总线写调试信息。C_BUS 目标系统控制总线,在监控模式下,作为输入。在调试模式下,作为输出,总线监控与调试控制模块向该总线写调试信息。STOP:断点信号,作为输出。当总线上的数据与断点相匹配时,发出该信号。指示目标系统暂停运行。可以控制处理器的READY信号。HOLD:输出信号,连接在目标系统的HOLD信号上。在上位机有HOLD命令时,发出 HOLD请求,请求处理器核心放弃总线控制权。HOLDA 输入信号,目标系统对HOLD请求的应答信号。处理器通过该信号通知总线监控与调试控制模块处理器放弃对总线控制权。参照图1 16,本发明总线监控与调试控制装置与上位机通过公知的LVDS(L0W Voltage Differential Signal低电压差分信号)高速串行线连接;本发明总线监控与调试控制装置直接连接到目标系统的总线上。本发明总线监控与调试控制装置包括锁相环、数据采集模块、时钟控制模块、工作模式控制模块、断点及调试控制模块、数据传输模块、存储器及存储器控制器、可配置接口及时序控制模块、串行数据接收器以及串行数据发送器。PLL (Phase Locking Loop,锁相环)接收板上晶振产生的时钟,生成总线监控和调试控制模块所需的系统工作时钟。时钟控制模块Clock Controller 根据各个模块的工作时钟与系统工作时钟CLK 之间的倍数以及相位关系产生各个模块的工作时钟。数据采集模块Data Sample Module 对总线操作进行监控。在工作模式控制模块的控制下,预先将检测点写到该模块,在每个总线周期开始时,采集总线行为,iA_BUS 和C_BUS指示的总线操作与预先设置好的检测点相匹配,则将本次总线操作的行为记录下来,然后传送到数据传输模块,在存储器Memory中保存。总线周期起始识别模块用于判断当前总线上是否发起了总线地址周期,由于目标系统和本发明装置通常运行在不同的主频上,为了解决跨时钟信号的亚稳态问题,本发明设计了多个寄存器连续采样的电路结构。 Sample_PointerO到Sample_Pointer9中记录的是需要监控的地址信息。通过将总线周期下地址总线上的数据与十个Sample_P0inter寄存器中的所有地址同时比较,就可以判断出当前访问是否访问需要监控的位置,这部分逻辑构成了监控点地址比较逻辑。当访问的是需要监控的位置,那么读写数据采样模块,在数据采样使能信号的控制下,将读/写数据模块中的数据值写入存储器中。断点及调试控制模块本模块实现了断点功能和调试功能。当总线操作指示出正在执行的指令与工作模式控制模块预先设置的断点匹配时,则通过发送STOP信号使目标系统暂停运行。上位机可以查看目标系统处理器核心当前的运行信息,并控制处理器核心的运行。上位机需要调试处理器核心时,通过发送HOLD信号向目标系统的处理器核心请求总线控制权,当处理器核心以HOLDA信号通知它已经放弃总线时,调试控制器通知上位机可以进行调试。当接收到上位机发来的调试信息后,将调试信息转化为目标系统总线的波形发送到目标系统总线。当接收到上位机发来的调试结束命令时,驱动HOLD信号无效从而放弃总线控制权。断点功能的作用是当发现处理器执行到特定的程序地址和数据地址时,停止处理器的运行,这样可以修改变量的值等。停止处理器的运行是通过向目标系统发送STOP信号实现的。STOP信号用于使处理器处于等待总线周期结束的状态,这样就可以中断处理器的执行。产生STOP信号的电路包括总线周期起始识别模块、程序断点和数据断点存储器、断点匹配逻辑模块。总线周期起始识别模块与监控模块中的总线周期起始识别模块结构和功能相同。程序断点存储器存储设置的程序断点的地址Break_POinterP0到Break_ PointerP9 ;数据断点存储器存储设置的指令断点的地址Break_POinterD0到Break_ PointerD90断点匹配逻辑模块的功能就是将当前总线地址周期时的请求地址与程序和指令断点的地址进行比较,如果存在匹配的则说明当前访问的是一个需要断点的位置,此时需要产生STOP信号使处理器处于等待总线结束的状态;否则,让处理器正常完成请求。这些地址的比较都是并行进行的。调试功能主要完成对处理器核心总线周期的模拟。当处理器运行在调试模式下时,根据上位机发送的模拟数据以及地址,调试功能部件模拟处理器的时序发出读写信号及地址和数据。当读操作时,读回相应地址的数据;当写操作时,在相应地址写入上位机送来的模拟数据。这样不但可以在系统实际运行时读出存储器及外设可见的状态寄存器和数据寄存器的值,而且可以通过这种方式修改存储器的值实现类似错误注入的功能。具体时序的模拟是通过可配置接口及时序模块完成的。为了提供一种验证总线可靠性的方法,本发明的调试功能在模拟总线周期时提供了修改标准时序的能力,一些信号可以在配置字段的控制下延长或者提前一段时间结束。当延长或提前结束时,所有的生成的信号都延长或提前结束。调试功能包括总线读周期和写周期的模拟。1)读周期模拟。当调试模块接收到总线读周期的模拟命令并收到相应的地址和访存类型的数据后,首先检测CLK0UT1的上升沿,最晚在15ns处可以检测到,在此刻就可以发出地址信号和R/W#信号,STRB#、RD#、PS#、DS#等信号依照时间关系发出,时间间隔以 200MHz的时钟计数来确定。Ready_Detected点的确定与监控模式下Ready_Detected点的确定逻辑相同,读回数据的采样与监控模式相同。当数据采样回来之后,将读回的数据加上奇偶校验位,然后通过LVDS串行发送给上位机进行处理。然后结束本次总线周期。2)写周期模拟。在接收到上位机发送来的总线写周期模拟命令以及相应的数据后,首先检测CLK0UT1的上升沿,最晚在15ns处检测到,然后发出真正写周期之前的PAD周期,之后发出写周期。当数据写入完成之后(Ready_DeteCted),完成写周期,接着再发出一个PAD周期。其中的相对时间使用200MHz的时钟进行计数定时产生。写操作完成不需要通知上位机。因为相对于人工操作来说,写操作完成的很快,并且写操作不需要反馈给上位机数据。可配置接口及时序控制模块为了提高本发明的适用性和重用性,增加了可配置接口及时序控制模块,通过使用这个模块可以测试多种不同的目标系统,其结构主要包括接口配置寄存器、接口 RAM、接口时序控制状态机及选择逻辑。接口配置寄存器包括数据地址总线宽度配置寄存器、控制总线配置寄存器和时序控制状态机配置寄存器组。硬件系统支持的数据总线宽度有32位、64位及128位三种。其他的数据总线宽度需要上位机软件支持,由软件来给数据打包及解包来实现其他宽度。例如数据总线宽度为16位,则软件需要补充16位数据凑成32位数据来收发数据。在与目标系统连接时只要连上正确的16位即可。硬件系统支持的地址总线宽度有32位和64位。其他形式需要软件支持。控制总线配置寄存器配置控制型号的宽度,即共有多少控制信号。该寄存器组一共可以设置十一个条件,这i^一个条件分别控制时序控制状态机中五个Read_Cyc 1 e和六个Write_Cyc 1 e之间的状态转移。每个条件的形式如下,假设现在有五个控制信号来控制数据总线和地址总线,那么每个条件有十个有效位,其中五个用来设定当前状态转移情况下,那些控制信号是需要考虑的,需要考虑置1,不需要考虑置0。当一个条件需要考虑时,后面紧跟的一位设置该条件成立的条件,为1或为0。这样当满足整个条件时,状态机向下一个状态转换,否则在当前状态下循环。接口 RAM的每一行存储模拟总线周期时一拍所要产生的数据,这样在模拟时只要根据一定的条件每拍发送接口 RAM中的一行数据就可以模拟总线周期。接口 RAM中的数据由上位机写入。接口时序控制状态机用于模拟类似握手的协议。它的主要思想是控制当前节拍时读取接口 RAM中的哪行数据发送到目标系统的总线上。读取哪一行由状态机决定, 通过控制选择逻辑来实现。接口时序控制状态机负责时序的控制,其方法是选择特定接口 RAM行的数据发送到总线上来实现的,可以通过这种方式来模拟握手信号。时序控制状态机的状态转换见图16。在系统正常工作状态下,该状态机处于IDLE 态,当上位机发送HOLD命令给监控与调试控制模块时,该状态机进入H0LD_REQ状态,向目标系统的处理器核心发出HOLD请求。如果目标系统返回HOLDA信号,并放弃总线,则状态机进入WAIT状态,等待上位机发出模拟目标系统总线访存的命令以及数据。如果上位机发送了模拟命令和数据,则根据要模拟的操作分别进入ReacLCyclel和feite_CyClel状态模拟处理器的总线时序。一个时序模拟完成之后再进入WAIT状态等待上位机发送新的模拟命令。如前所述,Read_CyClel*feite_CyClel向后续状态的转换需要在接口配置寄存器中的时序控制状态机配置寄存器组控制下完成。存储器Memory 用于保存在监控模式下采样到的总线数据。存储器控制器Memory Controller 用于控制存储器的读写。工作模式控制模块也叫命令/数据处理模块。根据上位机发来的命令/数据信号设置监控与调试控制模块的工作模式,配置与目标系统连接的接口,设置监控点、断点等。 同时在上位机发出出错重传请求时,通知串行数据发送器将出错数据重新上传。数据传输模块Data Transmit Module 将需要记录的数据写入存储器,并在上位机需要分析时将数据进行上传。由于数据采集模块、存储器以及LVDS的工作频率不同,在进行数据传输的过程中,需要缓冲FIFO。当数据采集模块需要记录数据时,该模块将数据写入存储器控制器;当工作于上传检测数据时,该模块将保存在存储器Memory中的数据转化为LVDS信号上传到上位机。串行数据接收器串并转换模块,将上位机传送的数据进行串并转换,按照约定的格式发送给工作模式控制模块。串行数据发送器并串转换模块,将需要回送给上位机的数据发送到LVDS上。需要对传送的数据进行缓存,如果上位机校验数据传送有错,需要重传。使用本发明装置进行总线监控与调试的方法如下所述。利用本发明的装置进行总线监控方法具体如下(1)上位机通过向SerialData/Command引脚串行发送多个监控点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个监控点(包括数据地址和程序地址)写入数据采集模块中的Sample_P0inter寄存器。(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置本发明装置处于监控模式。(3)在目标系统正常工作时,本发明装置利用总线周期起始时别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型(指令/数据)与预先设定的监控点Sampl^PointerO Sample_ Pointed相比较(采用十个并行的比较器CMPO CMP9)。如果有匹配,执行步骤(4);不匹配执行步骤(5)。(4)如果CMPO CMP9比较结果有匹配,则说明本次访问的是一个需要监控的位置。在这种情况下,将本次总线周期的地址、数据、指令/数据、读/写操作等信息通过写数据采样、读数据采样、Data_to_Mem、Addr_to_Mem等模块记录到Memory Write FIFO,进而存放在存储器中。执行步骤(6)。(5)如果CMPO CMP9比较结果有匹配,则说明本次访问的是一个不需要监控的位置。将锁存的数据清除,不写入存储器。(6)从步骤C3)开始执行直到所要监控的程序执行结束或者上位机退出监控模式。(7)在上位机通过与步骤(1)相同的方法发出上传指令时,本装置将记录到存储器的总线数据通过数据传输模块、串行数据发送器Data引脚以LVDS信号发送到上位机进行分析。利用本发明的装置实现断点调试功能的方法具体如下(1)上位机通过向SerialData/Command引脚串行发送多个断点(十个指令断点和十个数据断点)信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个断点(包括程序断点地址和数据断点地址)写入断点及调试控制器的Break_ PointerPO Break_PointerP9 或 Break_PointerDO Break_PointerD9 寄存器。(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置本发明装置处于处于断点调试模式。(3)在目标系统正常工作时,本发明装置利用总线周期起始时别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型(指令/数据)与预先设定的断点Break_POinterP0 Break_ PointerP9和Break_PointerDO Break_PointerD9相比较(采用二十个并行的比较器 CMPPO CMPP9和CMPDO CMPD9)。如果无匹配,本装置不做任何动作,目标系统程序继续执行。(4)如果步骤(3)中的比较器比较结果有匹配,则说明程序执行到一个断点,产生冻结总线周期的信号STOP通过控制总线C_BUS发送给目标系统,目标系统将冻结总线上的所有信号保持不变;本装置同时将此信息通过数据传输模块、串行数据发送器经krial Data引脚以LVDS信号发送到上位机通知用户。(5)用户在收到程序到达断点的信息后有两种选择,一种选择是采用示波器或逻辑分析仪等测量仪器直接测量目标系统的地址总线、数据总线和控制总线的状态,测量完成后使用与步骤(1)相同的方式由上位机写入清除STOP信号的命令断点及调试控制器,进而产生Endjitop信号清除STOP信号,从而目标系统解冻冻结的总线周期,程序继续执行; 第二种选择是向系统中注入错误,其方法为(a)上位机通过与步骤(1)相同的方式向本装置发送请求接管总线的HOLD命令;(b)通过控制总线C_BUS向目标发送请求接管总线的 HOLD信号;(c)本装置清除STOP信号将目标系统冻结的总线周期解冻;(d)目标系统放弃总线控制权,并通过控制总线(_8旧通知本装置;(e)本装置通知上位机已经获得总线控制权;(f)上位机要注入的错误信息转换为需要模拟的总线读写周期,采用与步骤(1)相同的方式传入断点及调试控制器;(g)本装置采用模拟总线周期的有限状态机控制可配置接口及时序控制模块产生目标系统的总线读写周期;(h)如果产生的是总线读周期,将读回的数据返回给上位机;如果产生的总线写操作,则由上位机显示写操作是否成功;(i)本装置撤销HOLD信号,交出总线控制权,目标系统继续运行。(6)从步骤( 开始执行直到上位机向本发明装置发送指令退出调试模式。
权利要求
1.一种总线监控与调试控制装置,包括锁相环PLL、串行数据接收器以及串行数据发送器,锁相环PLL生成总线监控和调试控制模块所需的系统工作时钟,串行数据接收器将上位机传送的数据进行串并转换,按照约定的格式发送给工作模式控制模块,串行数据发送器将需要回送给上位机的数据发送到LVDS上,其特征在于还包括一个根据各个模块的工作时钟与系统工作时钟CLK之间的倍数以及相位关系产生各个模块工作时钟的时钟控制模块;一个对总线操作进行监控的数据采集模块;在工作模式控制模块的控制下,预先将检测点写到该模块,在每个总线周期开始时,采集总线行为,当A_BUS和C_BUS指示的总线操作与预先设置好的检测点相匹配,则将本次总线操作的行为记录下来,然后传送到数据传输模块,在存储器中保存;当访问的是需要监控的位置,那么读写数据采样模块,在数据采样使能信号的控制下,将读/写数据模块中的数据值写入存储器中;一个根据上位机发来的命令/数据信号设置监控与调试控制模块的工作模式,配置与目标系统连接的接口,设置监控点、断点的工作模式控制模块;同时在上位机发出出错重传请求时,通知串行数据发送器将出错数据重新上传;一个实现断点功能和调试功能的断点及调试控制模块;当总线操作指示出正在执行的指令与工作模式控制模块预先设置的断点匹配时,则通过发送STOP信号使目标系统暂停运行;上位机可以查看目标系统处理器核心当前的运行信息,并控制处理器核心的运行; 上位机需要调试处理器核心时,通过发送HOLD信号向目标系统的处理器核心请求总线控制权,当处理器核心以HOLDA信号通知它已经放弃总线时,调试控制器通知上位机可以进行调试;当接收到上位机发来的调试信息后,将调试信息转化为目标系统总线的波形发送到目标系统总线;当接收到上位机发来的调试结束命令时,驱动HOLD信号无效从而放弃总线控制权;一个将需要记录的数据写入存储器,并在上位机需要分析时将数据进行上传的数据传输模块;一个用于在监控模式下保存采样到的总线数据的存储器;一个用于控制存储器读写的存储器控制器。
2.根据权利要求1所述的总线监控与调试控制装置,其特点是还包括一个适用于测试多种不同的目标系统的可配置接口及时序控制模块。
3.根据权利要求2所述的总线监控与调试控制装置,其特点是所述可配置接口及时序控制模块包括接口配置寄存器、接口 RAM、接口时序控制状态机及选择逻辑;接口配置寄存器包括数据地址总线宽度配置寄存器、控制总线配置寄存器和时序控制状态机配置寄存器组;接口 RAM的每一行存储模拟总线周期时一拍所要产生的数据。
4.一种利用权利要求1所述总线监控与调试控制装置进行总线监控的方法,其特点是包括以下步骤(1)上位机通过向SerialData/Command引脚串行发送多个监控点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个监控点写入数据采集模块中的 Sample_Pointer 寄存器;(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于监控模式;(3)在目标系统正常工作时,利用总线周期起始识别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容;将采样到的地址根据访存类型与预先设定的监控点Sample_PointerO Sample_Pointer9相比较;如果有匹配, 执行步骤(4);不匹配执行步骤(5);(4)如果CMPO CMP9比较结果有匹配,说明本次访问的是一个需要监控的位置;将本次总线周期的地址、数据、指令/数据、读/写操作信息通过写数据采样、读数据采样、 Data_to_Mem、Addr_to_Mem模块记录到Memory Write FIFO,进而存放在存储器中;执行步骤(6);(5)如果CMPO CMP9比较结果没有匹配,说明本次访问的是一个不需要监控的位置; 将锁存的数据清除,不写入存储器;(6)从步骤(3)开始执行直到所要监控的程序执行结束或者上位机退出监控模式;(7)在上位机通过与步骤(1)相同的方法发出上传指令时,记录到存储器的总线数据通过数据传输模块、串行数据发送器经Serial Data引脚以LVDS信号发送到上位机进行分析。
5. 一种利用权利要求1所述总线监控与调试控制装置进行总线调试的方法,其特点是包括以下步骤(1)上位机通过向SerialData/Command引脚串行发送多个断点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个断点写入断点及调试控制器的Break_ PointerPO Break_PointerP9 或 Break_PointerDO Break_PointerD9 寄存器;(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于断点调试模式;(3)在目标系统正常工作时,利用总线周期起始识别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容;将采样到的地址根据访存类型(指令/数据)与预先设定的断点Break_PointerPO Break_PointerP9和 Break_PointerDO Break_PointerD9相比较;如果无匹配,目标系统程序继续执行;(4)如果步骤(3)中的比较器比较结果有匹配,则说明程序执行到一个断点,产生冻结总线周期的信号STOP通过控制总线C BUS发送给目标系统,目标系统将冻结总线上的所有信号保持不变;同时将此信息通过数据传输模块、串行数据发送器经SerialData引脚以 LVDS信号发送到上位机通知用户;(5)用户在收到程序到达断点的信息后,一是采用示波器或逻辑分析仪直接测量目标系统的地址总线、数据总线和控制总线的状态,测量完成后使用与步骤(1)相同的方式由上位机写入清除STOP信号的命令断点及调试控制器,产生End_Stop信号清除STOP信号, 目标系统解冻冻结的总线周期,程序继续执行;二是向系统中注入错误,其方法为(a)上位机通过与步骤(1)相同的方式发送请求接管总线的HOLD命令;(b)通过控制总线C_BUS 向目标发送请求接管总线的HOLD信号;(c)清除STOP信号将目标系统冻结的总线周期解冻;⑷目标系统放弃总线控制权,并通过控制总线C_BUS通知上位机已经获得总线控制权;(e)上位机要注入的错误信息转换为需要模拟的总线读写周期,采用与步骤(1)相同的方式传入断点及调试控制器;(f)采用模拟总线周期的有限状态机控制可配置接口及时序控制模块产生目标系统的总线读写周期;(g)如果产生的是总线读周期,将读回的数据返回给上位机;如果产生的总线写操作,则由上位机显示写操作是否成功;(h)撤销HOLD信号,交出总线控制权,目标系统继续运行;(6)从步骤( 开始执行直到上位机发送指令退出调试模式。
全文摘要
本发明公开了一种总线监控与调试控制装置及进行总线监控与总线调试的方法,用于解决现有的装置对总线监控与调试实时性差的技术问题。技术方案是数据采集模块采集目标系统总线上的数据,设置需要监控的数据地址及指令地址,存储器模块用于记录核心微处理器对特定地址单元访问的详细信息。其监控方法是将核心处理器对预先设定的关键存储单元或外设接口的读写动作进行记录,完成实时监控。其调试方法是将核心处理器对存储器数据区的读写和取指令的地址信息与预设的断点信息作比较,如果匹配,则接管系统总线,对系统进行调试或向系统快速注入错误。本发明还设计了可配置接口,增加了适应性和装置的复用性。
文档编号G06F11/36GK102360329SQ20111029129
公开日2012年2月22日 申请日期2011年9月29日 优先权日2011年9月29日
发明者安建峰, 张盛兵, 张萌, 樊晓桠, 王党辉, 郑乔石, 陈超, 韩茹, 黄小平 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1