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

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

Info

Publication number
CN102360329B
CN102360329B CN201110291293.XA CN201110291293A CN102360329B CN 102360329 B CN102360329 B CN 102360329B CN 201110291293 A CN201110291293 A CN 201110291293A CN 102360329 B CN102360329 B CN 102360329B
Authority
CN
China
Prior art keywords
bus
data
control
module
host computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110291293.XA
Other languages
English (en)
Other versions
CN102360329A (zh
Inventor
王党辉
樊晓桠
张盛兵
安建峰
韩茹
张萌
黄小平
陈超
郑乔石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN RICHMOR SCIENCE & TECHNOLOGY DEVELOPMENT CO., LTD.
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201110291293.XA priority Critical patent/CN102360329B/zh
Publication of CN102360329A publication Critical patent/CN102360329A/zh
Application granted granted Critical
Publication of CN102360329B publication Critical patent/CN102360329B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种总线监控与调试控制装置及进行总线监控与总线调试的方法,用于解决现有的装置对总线监控与调试实时性差的技术问题。技术方案是数据采集模块采集目标系统总线上的数据,设置需要监控的数据地址及指令地址,存储器模块用于记录核心微处理器对特定地址单元访问的详细信息。其监控方法是将核心处理器对预先设定的关键存储单元或外设接口的读写动作进行记录,完成实时监控。其调试方法是将核心处理器对存储器数据区的读写和取指令的地址信息与预设的断点信息作比较,如果匹配,则接管系统总线,对系统进行调试或向系统快速注入错误。本发明还设计了可配置接口,增加了适应性和装置的复用性。

Description

总线监控与调试控制装置及进行总线监控与总线调试的方法
技术领域
本发明涉及一种控制装置,特别是涉及一种总线监控与调试控制装置。还涉及利用这种总线监控与调试控制装置进行总线监控与总线调试的方法。
背景技术
随着嵌入式系统芯片的普及和芯片上集成的功能部件越来越多,嵌入式系统规模及复杂度越来越高,这无疑增加了硬件系统的调试以及软件开发人员调试软件的难度,系统可监控与可调试问题凸显。一些嵌入式系统,例如控制汽车发动机或者控制卫星的系统,需要一定的容错能力,这就需要调试系统能快速而方便灵活的向系统中注入错误。另外,不同的嵌入式系统由于使用不同的处理器核心,这些处理器的状态信号以及数据地址宽度可能不同,为了使设计的测试装置可重用,需要可灵活配置的接口。
文献“公开号是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_Pointer0~Sample_Pointer9相比较。如果有匹配,执行步骤(4);不匹配执行步骤(5)。
(4)如果CMP0~CMP9比较结果有匹配,说明本次访问的是一个需要监控的位置。将本次总线周期的地址、数据、指令/数据、读/写操作等信息通过写数据采样、读数据采样、Data_to_Mem、Addr_to_Mem模块记录到Memory Write FIFO,进而存放在存储器中。执行步骤(6)。
(5)如果CMP0~CMP9比较结果没有匹配,说明本次访问的是一个不需要监控的位置。将锁存的数据清除,不写入存储器。
(6)从步骤(3)开始执行直到所要监控的程序执行结束或者上位机退出监控模式。
(7)在上位机通过与步骤(1)相同的方法发出上传指令时,记录到存储器的总线数据通过数据传输模块、串行数据发送器经Serial Data引脚以LVDS信号发送到上位机进行分析。
一种利用上述总线监控与调试控制装置进行总线调试的方法,其特点是包括以下步骤:
(1)上位机通过向SerialData/Command引脚串行发送多个断点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个断点写入断点及调试控制器的Break_PointerP0~Break_PointerP9或Break_PointerD0~Break_PointerD9寄存器。
(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于断点调试模式。
(3)在目标系统正常工作时,利用总线周期起始识别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型(指令/数据)与预先设定的断点Break_PointerP0~Break_PointerP9和Break_PointerD0~Break_PointerD9相比较。如果无匹配,目标系统程序继续执行。
(4)如果步骤(3)中的比较器比较结果有匹配,则说明程序执行到一个断点,产生冻结总线周期的信号STOP通过控制总线C_BUS发送给目标系统,目标系统将冻结总线上的所有信号保持不变;同时将此信息通过数据传输模块、串行数据发送器经Serial Data引脚以LVDS信号发送到上位机通知用户。
(5)用户在收到程序到达断点的信息后,一是采用示波器或逻辑分析仪直接测量目标系统的地址总线、数据总线和控制总线的状态,测量完成后使用与步骤(1)相同的方式由上位机写入清除STOP信号的命令断点及调试控制器,产生End_Stop信号清除STOP信号,目标系统解冻冻结的总线周期,程序继续执行;二是向系统中注入错误,其方法为:(a)上位机通过与步骤(1)相同的方式发送请求接管总线的HOLD命令;(b)通过控制总线C_BUS向目标发送请求接管总线的HOLD信号;(c)清除STOP信号将目标系统冻结的总线周期解冻;(d)目标系统放弃总线控制权,并通过控制总线C_BUS通知上位机已经获得总线控制权;(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(LowVoltage Differential Signal低电压差分信号)高速串行线连接;本发明总线监控与调试控制装置直接连接到目标系统的总线上。
本发明总线监控与调试控制装置包括锁相环、数据采集模块、时钟控制模块、工作模式控制模块、断点及调试控制模块、数据传输模块、存储器及存储器控制器、可配置接口及时序控制模块、串行数据接收器以及串行数据发送器。
PLL(Phase Locking Loop,锁相环):接收板上晶振产生的时钟,生成总线监控和调试控制模块所需的系统工作时钟。
时钟控制模块Clock Controller:根据各个模块的工作时钟与系统工作时钟CLK之间的倍数以及相位关系产生各个模块的工作时钟。
数据采集模块Data Sample Module:对总线操作进行监控。在工作模式控制模块的控制下,预先将检测点写到该模块,在每个总线周期开始时,采集总线行为,当A_BUS和C_BUS指示的总线操作与预先设置好的检测点相匹配,则将本次总线操作的行为记录下来,然后传送到数据传输模块,在存储器Memory中保存。总线周期起始识别模块用于判断当前总线上是否发起了总线地址周期,由于目标系统和本发明装置通常运行在不同的主频上,为了解决跨时钟信号的亚稳态问题,本发明设计了多个寄存器连续采样的电路结构。Sample_Pointer0到Sample_Pointer9中记录的是需要监控的地址信息。通过将总线周期下地址总线上的数据与十个Sample_Pointer寄存器中的所有地址同时比较,就可以判断出当前访问是否访问需要监控的位置,这部分逻辑构成了监控点地址比较逻辑。当访问的是需要监控的位置,那么读写数据采样模块,在数据采样使能信号的控制下,将读/写数据模块中的数据值写入存储器中。
断点及调试控制模块:本模块实现了断点功能和调试功能。当总线操作指示出正在执行的指令与工作模式控制模块预先设置的断点匹配时,则通过发送STOP信号使目标系统暂停运行。上位机可以查看目标系统处理器核心当前的运行信息,并控制处理器核心的运行。上位机需要调试处理器核心时,通过发送HOLD信号向目标系统的处理器核心请求总线控制权,当处理器核心以HOLDA信号通知它已经放弃总线时,调试控制器通知上位机可以进行调试。当接收到上位机发来的调试信息后,将调试信息转化为目标系统总线的波形发送到目标系统总线。当接收到上位机发来的调试结束命令时,驱动HOLD信号无效从而放弃总线控制权。
断点功能的作用是当发现处理器执行到特定的程序地址和数据地址时,停止处理器的运行,这样可以修改变量的值等。停止处理器的运行是通过向目标系统发送STOP信号实现的。STOP信号用于使处理器处于等待总线周期结束的状态,这样就可以中断处理器的执行。产生STOP信号的电路包括总线周期起始识别模块、程序断点和数据断点存储器、断点匹配逻辑模块。总线周期起始识别模块与监控模块中的总线周期起始识别模块结构和功能相同。程序断点存储器存储设置的程序断点的地址Break_PointerP0到Break_PointerP9;数据断点存储器存储设置的指令断点的地址Break_PointerD0到Break_PointerD9。断点匹配逻辑模块的功能就是将当前总线地址周期时的请求地址与程序和指令断点的地址进行比较,如果存在匹配的则说明当前访问的是一个需要断点的位置,此时需要产生STOP信号使处理器处于等待总线结束的状态;否则,让处理器正常完成请求。这些地址的比较都是并行进行的。
调试功能主要完成对处理器核心总线周期的模拟。当处理器运行在调试模式下时,根据上位机发送的模拟数据以及地址,调试功能部件模拟处理器的时序发出读写信号及地址和数据。当读操作时,读回相应地址的数据;当写操作时,在相应地址写入上位机送来的模拟数据。这样不但可以在系统实际运行时读出存储器及外设可见的状态寄存器和数据寄存器的值,而且可以通过这种方式修改存储器的值实现类似错误注入的功能。具体时序的模拟是通过可配置接口及时序模块完成的。为了提供一种验证总线可靠性的方法,本发明的调试功能在模拟总线周期时提供了修改标准时序的能力,一些信号可以在配置字段的控制下延长或者提前一段时间结束。当延长或提前结束时,所有的生成的信号都延长或提前结束。
调试功能包括总线读周期和写周期的模拟。
1)读周期模拟。当调试模块接收到总线读周期的模拟命令并收到相应的地址和访存类型的数据后,首先检测CLKOUT1的上升沿,最晚在15ns处可以检测到,在此刻就可以发出地址信号和R/W#信号,STRB#、RD#、PS#、DS#等信号依照时间关系发出,时间间隔以200MHz的时钟计数来确定。Ready_Detected点的确定与监控模式下Ready_Detected点的确定逻辑相同,读回数据的采样与监控模式相同。当数据采样回来之后,将读回的数据加上奇偶校验位,然后通过LVDS串行发送给上位机进行处理。然后结束本次总线周期。
2)写周期模拟。在接收到上位机发送来的总线写周期模拟命令以及相应的数据后,首先检测CLKOUT1的上升沿,最晚在15ns处检测到,然后发出真正写周期之前的PAD周期,之后发出写周期。当数据写入完成之后(Ready_Detected),完成写周期,接着再发出一个PAD周期。其中的相对时间使用200MHz的时钟进行计数定时产生。写操作完成不需要通知上位机。因为相对于人工操作来说,写操作完成的很快,并且写操作不需要反馈给上位机数据。
可配置接口及时序控制模块:为了提高本发明的适用性和重用性,增加了可配置接口及时序控制模块,通过使用这个模块可以测试多种不同的目标系统,其结构主要包括接口配置寄存器、接口RAM、接口时序控制状态机及选择逻辑。接口配置寄存器包括数据地址总线宽度配置寄存器、控制总线配置寄存器和时序控制状态机配置寄存器组。硬件系统支持的数据总线宽度有32位、64位及128位三种。其他的数据总线宽度需要上位机软件支持,由软件来给数据打包及解包来实现其他宽度。例如数据总线宽度为16位,则软件需要补充16位数据凑成32位数据来收发数据。在与目标系统连接时只要连上正确的16位即可。硬件系统支持的地址总线宽度有32位和64位。其他形式需要软件支持。控制总线配置寄存器配置控制型号的宽度,即共有多少控制信号。该寄存器组一共可以设置十一个条件,这十一个条件分别控制时序控制状态机中五个Read_Cycle和六个Write_Cycle之间的状态转移。每个条件的形式如下,假设现在有五个控制信号来控制数据总线和地址总线,那么每个条件有十个有效位,其中五个用来设定当前状态转移情况下,那些控制信号是需要考虑的,需要考虑置1,不需要考虑置0。当一个条件需要考虑时,后面紧跟的一位设置该条件成立的条件,为1或为0。这样当满足整个条件时,状态机向下一个状态转换,否则在当前状态下循环。
接口RAM的每一行存储模拟总线周期时一拍所要产生的数据,这样在模拟时只要根据一定的条件每拍发送接口RAM中的一行数据就可以模拟总线周期。接口RAM中的数据由上位机写入。接口时序控制状态机用于模拟类似握手的协议。它的主要思想是控制当前节拍时读取接口RAM中的哪行数据发送到目标系统的总线上。读取哪一行由状态机决定,通过控制选择逻辑来实现。接口时序控制状态机负责时序的控制,其方法是选择特定接口RAM行的数据发送到总线上来实现的,可以通过这种方式来模拟握手信号。
时序控制状态机的状态转换见图16。在系统正常工作状态下,该状态机处于IDLE态,当上位机发送HOLD命令给监控与调试控制模块时,该状态机进入HOLD_REQ状态,向目标系统的处理器核心发出HOLD请求。如果目标系统返回HOLDA信号,并放弃总线,则状态机进入WAIT状态,等待上位机发出模拟目标系统总线访存的命令以及数据。如果上位机发送了模拟命令和数据,则根据要模拟的操作分别进入Read_Cyclel和Write_Cyclel状态模拟处理器的总线时序。一个时序模拟完成之后再进入WAIT状态等待上位机发送新的模拟命令。如前所述,Read_Cyclel和Write_Cyclel向后续状态的转换需要在接口配置寄存器中的时序控制状态机配置寄存器组控制下完成。
存储器Memory:用于保存在监控模式下采样到的总线数据。
存储器控制器Memory Controller:用于控制存储器的读写。
工作模式控制模块:也叫命令/数据处理模块。根据上位机发来的命令/数据信号设置监控与调试控制模块的工作模式,配置与目标系统连接的接口,设置监控点、断点等。同时在上位机发出出错重传请求时,通知串行数据发送器将出错数据重新上传。
数据传输模块Data Transmit Module:将需要记录的数据写入存储器,并在上位机需要分析时将数据进行上传。由于数据采集模块、存储器以及LVDS的工作频率不同,在进行数据传输的过程中,需要缓冲FIFO。当数据采集模块需要记录数据时,该模块将数据写入存储器控制器;当工作于上传检测数据时,该模块将保存在存储器Memory中的数据转化为LVDS信号上传到上位机。
串行数据接收器:串并转换模块,将上位机传送的数据进行串并转换,按照约定的格式发送给工作模式控制模块。
串行数据发送器:并串转换模块,将需要回送给上位机的数据发送到LVDS上。需要对传送的数据进行缓存,如果上位机校验数据传送有错,需要重传。
使用本发明装置进行总线监控与调试的方法如下所述。
利用本发明的装置进行总线监控方法具体如下:
(1)上位机通过向SerialData/Command引脚串行发送多个监控点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个监控点(包括数据地址和程序地址)写入数据采集模块中的Sample_Pointer寄存器。
(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置本发明装置处于监控模式。
(3)在目标系统正常工作时,本发明装置利用总线周期起始时别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型(指令/数据)与预先设定的监控点Sample_Pointer0~Sample_Pointer9相比较(采用十个并行的比较器CMP0~CMP9)。如果有匹配,执行步骤(4);不匹配执行步骤(5)。
(4)如果CMP0~CMP9比较结果有匹配,则说明本次访问的是一个需要监控的位置。在这种情况下,将本次总线周期的地址、数据、指令/数据、读/写操作等信息通过写数据采样、读数据采样、Data_to_Mem、Addr_to_Mem等模块记录到Memory WriteFIFO,进而存放在存储器中。执行步骤(6)。
(5)如果CMP0~CMP9比较结果有匹配,则说明本次访问的是一个不需要监控的位置。将锁存的数据清除,不写入存储器。
(6)从步骤(3)开始执行直到所要监控的程序执行结束或者上位机退出监控模式。
(7)在上位机通过与步骤(1)相同的方法发出上传指令时,本装置将记录到存储器的总线数据通过数据传输模块、串行数据发送器经Serial Data引脚以LVDS信号发送到上位机进行分析。
利用本发明的装置实现断点调试功能的方法具体如下:
(1)上位机通过向SerialData/Command引脚串行发送多个断点(十个指令断点和十个数据断点)信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个断点(包括程序断点地址和数据断点地址)写入断点及调试控制器的Break_PointerP0~Break_PointerP9或Break_PointerD0~Break_PointerD9寄存器。
(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置本发明装置处于处于断点调试模式。
(3)在目标系统正常工作时,本发明装置利用总线周期起始时别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容。将采样到的地址根据访存类型(指令/数据)与预先设定的断点Break_PointerP0~Break_PointerP9和Break_PointerD0~Break_PointerD9相比较(采用二十个并行的比较器CMPP0~CMPP9和CMPD0~CMPD9)。如果无匹配,本装置不做任何动作,目标系统程序继续执行。
(4)如果步骤(3)中的比较器比较结果有匹配,则说明程序执行到一个断点,产生冻结总线周期的信号STOP通过控制总线C_BUS发送给目标系统,目标系统将冻结总线上的所有信号保持不变;本装置同时将此信息通过数据传输模块、串行数据发送器经Serial Data引脚以LVDS信号发送到上位机通知用户。
(5)用户在收到程序到达断点的信息后有两种选择,一种选择是采用示波器或逻辑分析仪等测量仪器直接测量目标系统的地址总线、数据总线和控制总线的状态,测量完成后使用与步骤(1)相同的方式由上位机写入清除STOP信号的命令断点及调试控制器,进而产生End_Stop信号清除STOP信号,从而目标系统解冻冻结的总线周期,程序继续执行;第二种选择是向系统中注入错误,其方法为:(a)上位机通过与步骤(1)相同的方式向本装置发送请求接管总线的HOLD命令;(b)通过控制总线C_BUS向目标发送请求接管总线的HOLD信号;(c)本装置清除STOP信号将目标系统冻结的总线周期解冻;(d)目标系统放弃总线控制权,并通过控制总线C_BUS通知本装置;(e)本装置通知上位机已经获得总线控制权;(f)上位机要注入的错误信息转换为需要模拟的总线读写周期,采用与步骤(1)相同的方式传入断点及调试控制器;(g)本装置采用模拟总线周期的有限状态机控制可配置接口及时序控制模块产生目标系统的总线读写周期;(h)如果产生的是总线读周期,将读回的数据返回给上位机;如果产生的总线写操作,则由上位机显示写操作是否成功;(i)本装置撤销HOLD信号,交出总线控制权,目标系统继续运行。
(6)从步骤(2)开始执行直到上位机向本发明装置发送指令退出调试模式。

Claims (5)

1.一种总线监控与调试控制装置,包括锁相环PLL、串行数据接收器以及串行数据发送器,锁相环PLL生成总线断点及调试控制器模块所需的系统工作时钟,串行数据接收器将上位机传送的数据进行串并转换,按照约定的格式发送给工作模式控制模块,串行数据发送器将需要回送给上位机的数据发送到低电压差分信号LVDS上,其特征在于还包括:
一个根据各个模块的工作时钟与系统工作时钟CLK之间的倍数以及相位关系产生各个模块工作时钟的时钟控制模块;
一个对总线操作进行监控的数据采集模块,数据采集模块包括写数据采样、读数据采样、Data_to_Mem、Addr_to_Mem模块,地址总线A_BUS、数据总线D_BUS和控制总线C_BUS的信号送往数据采集模块;在数据采集模块中,地址总线A_BUS首先在模块A_Latch中进行锁存,然后与10个监控点Sample_Pointer0~Sample_Pointer9进行比较,根据比较结果设置Sample_Detected信号;写数据采样模块和读数据采样模块在Sample_Detected信号的控制下,对数据总线D_BUS的数据信号进行采样与识别,并将采样到的数据进行缓存,写数据采样模块和读数据采样模块的输出信号,通过控制总线C_BUS上RD#信号和WE#信号的控制,送给Data_to_Mem模块,同时Addr_to_Mem模块根据当前地址总线A_BUS与采样点的比较情况将匹配的地址信息进行缓存;然后Data_to_Mem模块和Addr_to_Mem模块同时将数据和地址信息送往Memory Write FIFO,等待Memory Controller将数据按地址写入存储器Memory中;
一个根据上位机发来的命令/数据信号设置总线断点及调试控制器模块的工作模式,配置与目标系统连接的接口,设置监控点、断点的工作模式控制模块;同时在上位机发出出错重传请求时,通知串行数据发送器将出错数据重新上传;
一个实现断点功能和调试功能的断点及调试控制器模块;当总线操作指示出正在执行的指令与工作模式控制模块预先设置的断点匹配时,则通过发送STOP信号使目标系统暂停运行;上位机可以查看目标系统处理器核心当前的运行信息,并控制处理器核心的运行;上位机需要调试处理器核心时,通过发送HOLD信号向目标系统的处理器核心请求总线控制权,当处理器核心以HOLDA信号通知它已经放弃总线时,调试控制器通知上位机可以进行调试;当接收到上位机发来的调试信息后,将调试信息转化为目标系统总线的波形发送到目标系统总线;当接收到上位机发来的调试结束命令时,驱动HOLD信号无效从而放弃总线控制权;
一个将需要记录的数据写入存储器,并在上位机需要分析时将数据进行上传的数据传输模块;
一个用于在监控模式下保存采样到的总线数据的存储器;
一个用于控制存储器读写的存储器控制器。
2.根据权利要求1所述的总线监控与调试控制装置,其特点是还包括一个适用于测试多种不同的目标系统的可配置接口及时序控制模块。
3.根据权利要求2所述的总线监控与调试控制装置,其特点是所述可配置接口及时序控制模块包括接口配置寄存器、接口RAM、接口时序控制状态机及选择逻辑;接口配置寄存器包括数据地址总线宽度配置寄存器、控制总线配置寄存器和时序控制状态机配置寄存器组;接口RAM的每一行存储模拟总线周期时一拍所要产生的数据。
4.一种利用权利要求1所述总线监控与调试控制装置进行总线监控的方法,其特点是包括以下步骤:
(1)上位机通过向SerialData/Command引脚串行发送多个监控点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个监控点写入数据采集模块中的Sample_Pointer寄存器;
(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于监控模式;
(3)在目标系统正常工作时,利用总线周期起始识别和模块A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线A_BUS、数据总线D_BUS和控制总线C_BUS的内容;将采样到的地址根据访存类型与预先设定的监控点Sample_Pointer0~Sample_Pointer9相比较;如果有匹配,执行步骤(4);不匹配执行步骤(5);
(4)如果监控点Sample_Pointer0~Sample_Pointer9比较结果有匹配,说明本次访问的是一个需要监控的位置;将本次总线周期的地址、数据、指令/数据、读/写操作信息通过写数据采样模块和读数据采样模块在Sample_Detected信号的控制下,对数据总线D_BUS的数据信号进行采样与识别,并将采样到的数据进行缓存,写数据采样模块和读数据采样模块的输出信号,通过控制总线C_BUS上RD#信号和WE#信号的控制,送给Data_to_Mem模块,同时Addr_to_Mem模块根据当前地址总线A_BUS与采样点的比较情况将匹配的地址信息进行缓存;然后Data_to_Mem模块和Addr_to_Mem模块同时将数据和地址信息送往Memory Write FIFO,等待MemoryController将数据按地址写入存储器Memory中;执行步骤(6);
(5)如果监控点Sample_Pointer0~Sample_Pointer9比较结果没有匹配,说明本次访问的是一个不需要监控的位置;将锁存的数据清除,不写入存储器;
(6)从步骤(3)开始执行直到所要监控的程序执行结束或者上位机退出监控模式;
(7)在上位机通过与步骤(1)相同的方法发出上传指令时,记录到存储器的总线数据通过数据传输模块、串行数据发送器经Serial Data引脚以低电压差分信号发送到上位机进行分析。
5.一种利用权利要求1所述总线监控与调试控制装置进行总线调试的方法,其特点是包括以下步骤:
(1)上位机通过向SerialData/Command引脚串行发送多个断点信息,经过串行数据接收器转化为并行数据送给工作模式控制模块,将多个断点写入断点及调试控制器的Break_PointerP0~Break_PointerP9或Break_PointerD0~Break_PointerD9寄存器;
(2)采用与步骤(1)相同的方法由上位机写入控制命令,设置总线监控与调试控制装置处于断点调试模式;
(3)在目标系统正常工作时,利用总线周期起始识别和A-Latch识别目标系统的总线周期,并在每个总线周期采样地址总线、数据总线和控制总线的内容;将采样到的地址根据访存类型与预先设定的断点Break_PointerP0~Break_PointerP9和Break_PointerD0~Break_PointerD9相比较;如果无匹配,目标系统程序继续执行;
(4)如果步骤(3)中的比较器比较结果有匹配,则说明程序执行到一个断点,产生冻结总线周期的信号STOP通过控制目标系统控制总线C_BUS发送给目标系统,目标系统将冻结总线上的所有信号保持不变;同时将此信息通过数据传输模块、串行数据发送器经Serial Data引脚以低电压差分信号发送到上位机通知用户;
(5)用户在收到程序到达断点的信息后,一是采用示波器或逻辑分析仪直接测量目标系统的地址总线、数据总线和控制总线的状态,测量完成后使用与步骤(1)相同的方式由上位机写入清除STOP信号的命令断点及调试控制器,产生End_Stop信号清除STOP信号,目标系统解冻冻结的总线周期,程序继续执行;二是向系统中注入错误,其方法为:(a)上位机通过与步骤(1)相同的方式发送请求接管总线的HOLD命令;(b)通过控制目标系统控制总线C_BUS向目标发送请求接管总线的HOLD信号;(c)清除STOP信号将目标系统冻结的总线周期解冻;(d)目标系统放弃总线控制权,并通过控制目标系统控制总线C_BUS通知上位机已经获得总线控制权;(e)上位机要注入的错误信息转换为需要模拟的总线读写周期,采用与步骤(1)相同的方式传入断点及调试控制器;(f)采用模拟总线周期的有限状态机控制可配置接口及时序控制模块产生目标系统的总线读写周期;(g)如果产生的是总线读周期,将读回的数据返回给上位机;如果产生的总线写操作,则由上位机显示写操作是否成功;(h)撤销HOLD信号,交出总线控制权,目标系统继续运行;
(6)从步骤(2)开始执行直到上位机发送指令退出调试模式。
CN201110291293.XA 2011-09-29 2011-09-29 总线监控与调试控制装置及进行总线监控与总线调试的方法 Expired - Fee Related CN102360329B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110291293.XA CN102360329B (zh) 2011-09-29 2011-09-29 总线监控与调试控制装置及进行总线监控与总线调试的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110291293.XA CN102360329B (zh) 2011-09-29 2011-09-29 总线监控与调试控制装置及进行总线监控与总线调试的方法

Publications (2)

Publication Number Publication Date
CN102360329A CN102360329A (zh) 2012-02-22
CN102360329B true CN102360329B (zh) 2014-11-05

Family

ID=45585659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110291293.XA Expired - Fee Related CN102360329B (zh) 2011-09-29 2011-09-29 总线监控与调试控制装置及进行总线监控与总线调试的方法

Country Status (1)

Country Link
CN (1) CN102360329B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662782B (zh) * 2012-04-17 2014-09-03 华为技术有限公司 一种监控系统总线的方法及装置
CN103678078B (zh) * 2012-09-25 2016-05-11 深圳市中兴微电子技术有限公司 一种调试系统及方法
CN103092119B (zh) * 2013-01-15 2016-01-20 北京工业大学 一种基于fpga的总线状态监视方法
CN103235755A (zh) * 2013-04-16 2013-08-07 合肥联宝信息技术有限公司 一种bios远程网络调试方法
CN103942130B (zh) * 2014-04-28 2015-11-18 山东华芯半导体有限公司 一种sd卡模型的时序控制方法
CN103941625B (zh) * 2014-05-08 2017-02-22 哈尔滨工业大学 Can总线数据传输监控系统
CN106919096A (zh) * 2017-03-31 2017-07-04 合肥民众亿兴软件开发有限公司 一种数据采集与多功能分析系统
CN107729231B (zh) * 2017-09-19 2021-02-02 北京东土科技股份有限公司 一种基于操作系统的故障注入方法及装置
CN112154419A (zh) * 2019-08-19 2020-12-29 深圳市大疆创新科技有限公司 性能监测装置、方法、片上系统、可移动平台及相机
CN110554966B (zh) * 2019-09-09 2023-06-20 深圳市鼎阳科技股份有限公司 一种驱动调试方法、行为分析方法及驱动调试系统
CN111078492B (zh) * 2019-10-25 2023-07-21 芯创智(上海)微电子有限公司 一种SoC内部总线的状态监控系统及方法
CN111949319A (zh) * 2020-08-07 2020-11-17 合肥奕斯伟集成电路有限公司 时序控制器自监测方法、系统和电子设备
CN112035302B (zh) * 2020-08-26 2021-04-09 天津飞腾信息技术有限公司 一种总线数据的实时监控分析方法、装置及系统
CN114118356B (zh) * 2021-10-11 2023-02-28 北京百度网讯科技有限公司 神经网络处理器验证方法、装置、电子设备及存储介质
CN114050987B (zh) * 2021-11-03 2023-08-22 猫岐智能科技(上海)有限公司 物联网设备无接触调试系统及方法
CN114407026A (zh) * 2022-04-01 2022-04-29 至新自动化(北京)有限公司 机器人控制系统及机器人
CN114697237B (zh) * 2022-04-15 2023-12-26 北京广利核系统工程有限公司 总线通信周期的测试系统、方法
CN117009185A (zh) * 2023-09-14 2023-11-07 飞腾信息技术有限公司 一种总线监测方法、装置、片上系统及设备
CN117290058B (zh) * 2023-11-24 2024-01-30 成都赢瑞科技有限公司 模型仿真时进行执行断点调试数据注入和数据监控的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1133455A (zh) * 1994-12-28 1996-10-16 株式会社东芝 微处理器与调试系统
US6189140B1 (en) * 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6769076B1 (en) * 2000-02-07 2004-07-27 Freescale Semiconductor, Inc. Real-time processor debug system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1133455A (zh) * 1994-12-28 1996-10-16 株式会社东芝 微处理器与调试系统
US6189140B1 (en) * 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6769076B1 (en) * 2000-02-07 2004-07-27 Freescale Semiconductor, Inc. Real-time processor debug system

Also Published As

Publication number Publication date
CN102360329A (zh) 2012-02-22

Similar Documents

Publication Publication Date Title
CN102360329B (zh) 总线监控与调试控制装置及进行总线监控与总线调试的方法
US8892973B2 (en) Debugging control system using inside core event as trigger condition and method of the same
US20220252665A1 (en) On-chip Debugging Device and Method
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
KR100392569B1 (ko) 반도체 칩의 논리 기능 검증용 에뮬레이터 장치 및 방법
CN102103535B (zh) 多核处理器、多核处理器的调试系统和调试方法
US20030046610A1 (en) Microcomputer and debugging system
CN109254883B (zh) 一种片上存储器的调试装置及方法
CN110727584B (zh) 一种处理器硅前验证用的rtl与参考模型实时比较方法
KR20150008441A (ko) 리셋 조건 트레이스 기능들을 갖춘 프로세서 디바이스
US8036874B2 (en) Software executing device and co-operation method
CN202267954U (zh) 总线监控与调试控制装置
CN117077588B (zh) 硬件加速仿真调试系统
CN100492315C (zh) 嵌入式信号处理器模拟器
US10970442B1 (en) Method of debugging hardware and firmware of data storage
CN112685278A (zh) 一种芯片驱动追踪调试方法和装置
CN101714114B (zh) 一种支持处理器硅后调试的装置和方法
Vermeulen et al. Interactive debug of socs with multiple clocks
CN100371907C (zh) 用于处理器的追踪调试方法及系统
US7774190B1 (en) Sleep and stall in an in-circuit emulation system
CN111008133B (zh) 粗粒度数据流架构执行阵列的调试方法及装置
TWI793774B (zh) 固態硬碟裝置的除錯方法及裝置以及電腦程式產品
TWI470421B (zh) 微處理器及其除錯方法
Matraszek et al. FrankenTrace: Low-Cost, Cycle-Level, Widely Applicable Program Execution Tracing for ARM Cortex-M SoC
CN114564342A (zh) 一种异构多核处理器系统追踪的调试方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Wang Danghui

Inventor after: Li Guangxu

Inventor after: Fan Xiaoya

Inventor after: Zhang Shengbing

Inventor after: An Jianfeng

Inventor after: Han Ru

Inventor after: Zhang Meng

Inventor after: Huang Xiaoping

Inventor after: Chen Chao

Inventor after: Zheng Qiaoshi

Inventor before: Wang Danghui

Inventor before: Fan Xiaoya

Inventor before: Zhang Shengbing

Inventor before: An Jianfeng

Inventor before: Han Ru

Inventor before: Zhang Meng

Inventor before: Huang Xiaoping

Inventor before: Chen Chao

Inventor before: Zheng Qiaoshi

COR Change of bibliographic data
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181205

Address after: 523808 Zhongsheng silver building, No. three road, Songshan Lake headquarters, Dongguan, Guangdong, 20

Patentee after: Dongguan Sanhang civil Military Integration Innovation Institute

Address before: 710072 No. 127 Youyi West Road, Shaanxi, Xi'an

Patentee before: Northwestern Polytechnical University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190604

Address after: 523000 Bantian International Center, 5 Huancheng South Road, Bantian Street, Longgang District, Shenzhen City, Guangdong Province

Patentee after: SHENZHEN RICHMOR SCIENCE & TECHNOLOGY DEVELOPMENT CO., LTD.

Address before: 523808 Zhongsheng silver building, No. three road, Songshan Lake headquarters, Dongguan, Guangdong, 20

Patentee before: Dongguan Sanhang civil Military Integration Innovation Institute

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141105

Termination date: 20190929