寄存器调试方法及装置
技术领域
本发明涉及芯片设计及调试领域,尤其涉及一种寄存器调试方法及装置。
背景技术
在芯片设计、调试、应用过程中,最多的工作就是对各种状态下的寄存器进行调试。目前,普遍的寄存器调试工具只提供了简单的寄存器读写、寄存器说明或者寄存器批量读写等操作,在问题定位上主要依靠调试者的经验和知识。
在现有技术下,寄存器调试工具只提供了调试操作,但是没有对寄存器调试结果进行直观的显示。调试者调试芯片中的寄存器时,如果经验不够丰富,对很多问题不够熟悉,那么就很难快速、准确地定位问题所在。
发明内容
本发明的目的是针对现有技术的缺陷,提供一种寄存器调试方法及装置,从而直观地显示出芯片当前的工作状态和需要对比的工作状态之间的差别,快速、准确地定位问题所在。
一方面,本发明提供了一种寄存器调试方法,所述寄存器调试方法包括:
将需要比对的第一寄存器数据存储到缓存中,并且将该第一寄存器数据显示在显示窗中;
读取寄存器中的第二寄存器数据;
对比所述第二寄存器数据和从所述缓存读取的第一寄存器数据,如不同则在所述显示窗中突出显示所述第二寄存器数据。
另一方面,本发明还提供了一种寄存器调试装置,所述寄存器调试装置包括:
存储单元,用于将需要比对的第一寄存器数据存储到缓存中,并且将该第一寄存器数据显示在显示窗中;
读取单元,用于读取寄存器中的第二寄存器数据;
比对单元,用于对比所述第二寄存器数据和从所述缓存读取的第一寄存器数据,如不同则在所述显示窗中突出显示所述第二寄存器数据。
本发明实施例的寄存器调试方法和装置通过调试装置的视图来直观地显示出芯片当前的工作状态和需要对比的工作状态之间的差别。通过这种直观的界面提示,可以提高定位问题的速度,找到解决问题的最佳途径。
附图说明
图1为本发明的寄存器调试方法实施例一的方法流程图;
图2为本发明的寄存器调试方法实施例二的方法流程图;
图3为本发明的寄存器调试方法实施例三的方法流程图;
图4为本发明的寄存器调试方法实施例四的方法流程图;
图5为本发明的寄存器调试的一个实施例示意图;
图6为本发明的寄存器调试装置实施例的示意图;
图7为本发明的寄存器调试装置的显示窗示意图。
具体实施方式
本发明实施例中,调试装置将寄存器按地址顺序在显示窗中进行排列显示。将将需要比对的第一寄存器数据存储到缓存中,并且将该第一寄存器数据显示在显示窗中,读取寄存器中的第二寄存器数据,对比所述第二寄存器数据和从所述缓存读取的第一寄存器数据,如不同则在所述显示窗中突出显示所述第二寄存器数据。
本发明实施例借助直观的彩色标识界面显示出了结果差异,直观地显示和定位出目前芯片工作状态和需要对比的工作状态之间的差别,从而迅速定位问题所在,极大地提高问题定位速度和问题解决速度
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明的寄存器调试方法实施例一的方法流程图,具体包括如下步骤:
步骤110,将本地寄存器配置文件作为第一寄存器数据读入缓存,并将该第一寄存器数据以相同的颜色显示在调试装置的显示窗中。所述第一寄存器数据为寄存器的目标工作状态。将第一寄存器数据读入缓存是为了让调试装置在调试寄存器时,能够更加快速地读取第一寄存器数据。
步骤120,读取寄存器中的第二寄存器数据。所述第二寄存器数据为寄存器的当前工作状态。
步骤130,对比所述第二寄存器数据和从所述缓存读取的第一寄存器数据。比对结果若相同,则执行步骤141,若不相同,则执行步骤142。根据比对结果,即可知道芯片寄存器的当前工作状态与目标工作状态之间的差异,从而确定芯片的工作是否存在问题,并定位出存在问题的寄存器。
步骤141,如果步骤130比对出的结果为相同,则保持显示窗中的第一寄存器数据及背景色不变。
步骤142,如果步骤130比对出的结果为不相同,则在所述显示窗中突出显示所述第二寄存器数据,即将比对结果不一致的第二寄存器数据高亮和/或变色显示在所述显示窗中;或将比对结果不一致的所述第二寄存器数据背景色高亮和/或变色显示在所述显示窗中。
步骤150,将第二寄存器数据存入缓存中作为寄存器的目标工作状态,以备下一次调试使用。
图2为本发明的寄存器调试方法实施例二的方法流程图,具体包括如下步骤:
步骤210,将上一次读取的所述寄存器的第二寄存器数据作为第一寄存器数据读入缓存,并将该数据显示在显示窗中。上一次读取的所述寄存器的第二寄存器数据可以作为寄存器的目标工作状态。
步骤220,再次读取寄存器中的第二寄存器数据。此次读取的第二寄存器数据可以作为寄存器的当前工作状态。
步骤230,将第二寄存器数据与从缓存读取中的第一寄存器数据做对比。比对结果若相同,则执行步骤241,若不相同,则执行步骤242。根据比对结果,即可知道芯片寄存器的当前工作状态与目标工作状态之间的差异,从而确定芯片的工作是否存在问题,并定位出存在问题的寄存器。
步骤241,如果步骤230比对出的结果为相同,则保持显示窗中的第一寄存器数据及背景色不变。
步骤242,如果步骤230比对出的结果为不相同,则在所述显示窗中突出显示所述第二寄存器数据,即将比对结果不一致的第二寄存器数据高亮和/或变色显示在所述显示窗中;或将比对结果不一致的所述第二寄存器数据背景色高亮和/或变色显示在所述显示窗中。
步骤250,将第二寄存器数据存入缓存中作为寄存器的目标工作状态,以备下一次调试使用。
图3为本发明的寄存器调试方法实施例三的方法流程图,具体包括如下步骤:
步骤310,将目前缓存中的数据作为写入寄存器,并将写入寄存器的数据显示在显示窗中。缓存中的数据作为第一寄存器数据,可以作为寄存器的目标工作状态。
步骤320,读取寄存器中的第二寄存器数据。读取的第二寄存器数据可以作为寄存器的当前工作状态。
步骤330,将第二寄存器数据与从缓存中读取的第一寄存器数据做对比。比对结果若相同,则执行步骤341,若不相同,则执行步骤342根据比对结果,即可知道芯片寄存器的当前工作状态与目标工作状态之间的差异,从而确定芯片的工作是否存在问题,并定位出存在问题的寄存器。
步骤341,如果步骤330比对出的结果为相同,则保持显示窗中的第一寄存器数据及背景色不变。
步骤342,如果步骤330比对出的结果为不相同,则在所述显示窗中突出显示所述第二寄存器数据,即将比对结果不一致的第二寄存器数据高亮和/或变色显示在所述显示窗中;或将比对结果不一致的所述第二寄存器数据背景色高亮和/或变色显示在所述显示窗中。
步骤350,将第二寄存器数据存入缓存中作为寄存器的目标工作状态,以备下一次调试使用。
图4为本发明的寄存器调试方法实施例四的方法流程图。
实施例一至实施例三中,当比对结果不一致时,都是将比对结果不一致的第二寄存器数据高亮和/或变色显示在所述显示窗中;或将比对结果不一致的所述第二寄存器数据背景色高亮和/或变色显示在所述显示窗中。如果要更加直观地看出比对结果不一致的寄存器数目的多少,可以在调试装置中设置一个计数器,使用该计数器对比对结果不一致的寄存器进行计数。当计数大于某个值时,以一种方式突出显示比对结果不一致的第二寄存器数据,如将比对结果不一致的第二寄存器的背景色设置为红色。当计数小于某个值时,可以以另外一种方式突出显示比对结果不一致的第二寄存器数据,如将比对结果不一致的第二寄存器的背景色设置为黄色。另外,调试者可以根据自己的需要,自主设置计数值大于或者小于哪个值时,以哪种方式突出显示比对结果不一致的第二寄存器数据。
图4给出了根据比对结果,对寄存器背景色进行设置的方法流程图,具体步骤如下:
当寄存器比对结果一致时,保持第一寄存器数据和背景色不变。
当有寄存器比对结果不一致时,使用计数器计数比对结果不一致的寄存器,当计数大于n时,将比对结果不一致的寄存器设置为一种颜色,如红色。当计数小于等于n时,将比对结果不一致的寄存器设置为一种颜色,如黄色。这样,当看到比对结果不一致的寄存器的背景色时,就可以知道比对结果不一致的寄存器有多少,非常直观。
图5为本发明的寄存器调试的一个实施例的示意图,如图5所示,调试工具主要包括以下模块:
模块510,通信模块可以直接与芯片中的调试单元进行通信。通过通信模块,调试工具向芯片的控制单元发送读取寄存器数据或者写入寄存器的命令,芯片的调试单元接到此命令后,执行读取寄存器或者写入寄存器的操作,并且将结果返回给调试工具的调试单元。通信单元在接收到调试工具返回的操作结果后,将结果发送给显示模块。在接收到调试控制模块的命令后,将数据发送给运算模块。
模块520,显示模块接收到通信单元发送的数据后,将数据显示在显示窗中。显示模块在接收到运算模块发送过来的比对结果后,根据比对结果,设置寄存器的背景色。
模块530,运算模块在接收到调试控制模块的比对命令后,将通信单元发送过来的两次数据做比对,并且将比对结果发送给显示模块。
模块540,调试控制模块用于控制调试的整个流程。调试控制模块在接收到调试者的调试操作后,给给通信模块、显示模块、运算模块发送不同的操作命令,使各个模块正常运行,完成整个调试过程。
图6为本发明的寄存器调试装置实施例的示意图,如图6所示:
单元610为存储单元,用于将需要比对的第一寄存器数据存储到缓存中,并且将该第一寄存器数据显示在显示窗中。存储单元具体将需要比对的本地寄存器配置文件存储到缓存中;或将上一次读取所述寄存器的第二寄存器数据存储到缓存中;或将准备写入所述寄存器中的第二寄存器数据存储到缓存中。存储单元还用于将从所述寄存器中读取的第二寄存器数据作为需要比对的第一寄存器数据存储到缓存中
单元620为读取单元,用于读取寄存器中的第二寄存器数据;
单元630为比对单元,用于对比所述第二寄存器数据和从所述缓存读取的第一寄存器数据,如不同则在所述显示窗中突出显示所述第二寄存器数据。比对单元具体利用计数器计数比对结果不一致的寄存器的数量,根据计数结果,将所述比对结果不一致的第二寄存器数据高亮和/或变色显示在所述显示窗中;或将所述比对结果不一致的第二寄存器数据背景色高亮和/或变色显示在所述显示窗中
图7为本发明的寄存器调试装置的显示窗示意图,如图7所示:
在调试装置的显示窗中,寄存器按地址顺序进行排列显示,首先将本地寄存器配置文件读入缓存,并将读入的数据以绿色背景显示在显视窗中。然后读取寄存器,并将读取的数据显示在显示窗中。比对本次读取的数据和缓存中的数据,如果一致则保持寄存器绿色背景不变,如地址为10-53和56-5e的寄存器。如果数据有差别,就将寄存器背景色设置为粉红色以示区别,如地址为00-0f和54-55的寄存器。这样就可以直观的显示出目前芯片工作状态和需要对比的工作状态之间,地址为00-0f和54-55的寄存器数据比对结果不一致,数据发生了变化。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。