CN108628734B - 一种功能程序调试方法和终端 - Google Patents

一种功能程序调试方法和终端 Download PDF

Info

Publication number
CN108628734B
CN108628734B CN201710169897.4A CN201710169897A CN108628734B CN 108628734 B CN108628734 B CN 108628734B CN 201710169897 A CN201710169897 A CN 201710169897A CN 108628734 B CN108628734 B CN 108628734B
Authority
CN
China
Prior art keywords
register
target
functional program
hardware
value
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.)
Active
Application number
CN201710169897.4A
Other languages
English (en)
Other versions
CN108628734A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201710169897.4A priority Critical patent/CN108628734B/zh
Publication of CN108628734A publication Critical patent/CN108628734A/zh
Application granted granted Critical
Publication of CN108628734B publication Critical patent/CN108628734B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种功能程序调试方法和终端,该方法包括:接收待测试的功能程序;获取硬件仿真器的目标寄存器值;基于所述目标寄存器值,对所述功能程序进行测试;输出所述功能程序的测试结果。本发明利用硬件仿真器对功能程序进行调试,能够在保留原始功能程序的基础上做到无单板调试,并且本发明中的硬件仿真器可以实现动态配置硬件模拟参数,进而可以在不同状态下对功能程序进行调试,减少了软件开发的工作量并且降低了成本。

Description

一种功能程序调试方法和终端
技术领域
本发明涉及通信技术领域,特别涉及一种功能程序调试方法和终端。
背景技术
对于嵌入式系统来说,可以分为软件子系统与硬件子系统。在嵌入式系统的开发过程中,为了加快项目进度,经常需要软件和硬件同步开发,在硬件还没有准备好的情况下,软件需要做好系统设计,代码编写和编译验证等过程,但是由于软件中访问硬件的代码没有具体的硬件依托,无法进行调试,需要等硬件准备就绪后才能进行代码的调试,这样就导致了开发进度的延长,效率比较低。现有技术中,通过软件中的打桩函数或者特定的硬件模拟器来完成功能程序的前期调试,但是对功能程序的改动很多,工作量比较大。因此现有技术存在对功能程序进行调试时很繁琐的问题。
发明内容
本发明实施例的目的在于提供一种功能程序调试方法和终端,解决了现有技术存在的对功能程序进行调试时很繁琐的问题。
为了达到上述目的,本发明实施例提供一种功能程序调试方法,包括:
接收待测试的功能程序;
获取硬件仿真器的目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述功能程序的测试结果。
本发明实施例还提供一种终端,包括:
第一接收模块,用于接收待测试的功能程序;
获取模块,用于获取硬件仿真器的目标寄存器值;
测试模块,用于基于所述目标寄存器值,对所述功能程序进行测试;
输出模块,用于输出所述功能程序的测试结果。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行的一个或多个程序,所述一个或多个程序被所述计算机执行时使所述计算机执行如上述提供的一种功能程序调试方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明实施例,接收待测试的功能程序;获取硬件仿真器的目标寄存器值;基于所述目标寄存器值,对所述功能程序进行测试;输出所述功能程序的测试结果。本发明利用硬件仿真器对功能程序进行调试,能够在保留原始功能程序的基础上做到无单板调试,并且本发明中的硬件仿真器可以实现动态配置硬件模拟参数,进而可以在不同状态下对功能程序进行调试,减少了软件开发的工作量并且降低了成本。
附图说明
图1为本发明实施例提供的一种功能程序调试方法的流程示意图;
图2为本发明实施例提供的一种访问真实硬件时的示意图;
图3为本发明实施例提供的通过硬件仿真器来调试功能程序的示意图;
图4为本发明实施例提供的另一种功能程序调试方法的流程示意图;
图5为本发明实施例提供的一种终端的结构图;
图6为本发明实施例提供的另一种终端的结构图;
图7为本发明实施例提供的另一种终端的结构图;
图8为本发明实施例提供的另一种终端的结构图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示,本发明实施例提供一种功能程序调试方法,包括以下步骤:
步骤S101、接收待测试的功能程序。
步骤S102、获取硬件仿真器的目标寄存器值。
步骤S103、基于所述目标寄存器值,对所述功能程序进行测试。
步骤S104、输出所述功能程序的测试结果。
在步骤S101中,本发明中的硬件仿真器可以配置很多不同的寄存器地址,提供访问接口来读写寄存器值。可以根据需要,设置不同场景下的寄存器值,达到仿真硬件的目的。并且可以在被调试功能程序运行期间,动态修改被模拟硬件的寄存器值,进而可以在不同状态下对功能程序进行调试。
用户可以在待测试的功能程序中做一个开关,可以通过这个开关来决定是访问真实的硬件,还是访问硬件仿真器。如图2所示,为访问真实硬件时的示意图。待测试的功能程序在访问真实的硬件时,可以读硬件寄存器,也可以写硬件寄存器。
用户可以根据需要选择使用真实的硬件来调试功能程序,或者选择使用硬件仿真器来调试功能程序。如图3所示,为通过硬件仿真器来调试功能程序的示意图。当用户在待测试的功能程序中将硬件仿真器调试设置为真时,待测试的功能程序就可以访问硬件仿真器,待测试的功能程序可以读硬件仿真器寄存器,也可以写硬件仿真器寄存器。
首先,可以将待测试的功能程序中的仿真器调试设置为真,然后将待测试的功能程序输入硬件仿真器中。
在步骤S102中,对功能程序进行调试时,可以有两种实施方式。第一种方式为通过读硬件仿真器寄存器来对功能程序进行调试,第二种方式为通过写硬件仿真器寄存器来对功能程序进行调试。
当通过读硬件仿真器寄存器来对功能程序进行调试时,功能程序可以向硬件仿真器发送一条指令,指令中可以包含两个参数,一个参数为想要访问的寄存器的地址,另一个参数为缓冲区。硬件仿真器可以对这条指令进行解析,获得功能程序想要访问的寄存器的地址以及缓冲区,进而硬件仿真器会利用解析获得的寄存器的地址找到相应的寄存器,并且从该寄存器中读取寄存器值,然后将读取的寄存器值放进缓冲区,返回给功能程序,硬件仿真器基于向功能程序返回的寄存器值对功能程序进行测试,最终输出与该寄存器值相对应的响应,用户根据硬件仿真器的响应就可以判断功能程序是否有问题,如果用户判断出功能程序有问题,就可以对功能程序进行修改,然后再进行调试,直到功能程序符合要求为止。
需要说明的是,在被调试功能程序运行期间,用户可以根据需要修改硬件仿真器中的配置参数,每一个配置参数都代表硬件仿真器的一种状态,因此可以实现在硬件仿真器的各种状态下对功能程序进行调试,使功能程序验证不同的处理分支。并且在修改硬件仿真器中的配置参数时,被调试功能程序不需要做任何调整,即可以在保留被调试功能程序的基础上使被调试功能程序验证不同的处理分支,大大减少了软件开发的工作量,降低了成本。
当通过写硬件仿真器寄存器来对功能程序进行调试时,硬件仿真器可以做数据采集,可以采集出被调试功能程序对硬件仿真器的访问数据。例如,硬件仿真器可以采集被调试功能程序访问每个寄存器的时间,记录相应的寄存器地址和寄存器值,然后利用采集到的数据绘出串行外设接口(SPI,Serial Peripheral Interface)图或者(I2C,Inter-Integrated Circuit)总线图等时序波形图,用户可以将绘出的时序波形图与硬件手册上的时序波形图进行比较,当绘出的时序波形图与硬件手册上的时序波形图相符时,说明被调试功能程序是没有问题的,当绘出的时序波形图与硬件手册上的时序波形图不相符时,说明被调试功能程序是有问题的,此时就要对被调试功能程序进行修改,然后再进行调试,直到被调试功能程序满足要求为止。这样可以实现不用示波器就能看到功能程序的动作,节约了仪器的开销,降低了产品的开发成本。
在步骤S103中,在前面提到过,在对功能程序进行调试时可以有两种方式,可以通过读硬件仿真器寄存器的方式来对功能程序进行测试,也可以通过写硬件仿真器寄存器的方式来对功能程序进行测试。
在步骤S104中,硬件仿真器输出被调试功能程序的测试结果后,用户可以利用测试结果对被调试功能程序进行分析。当测试结果不符合要求时,要对功能程序进行修改,然后再对功能程序进行调试,如此重复下去,直到被调试功能程序满足要求为止。
需要说明的是,功能程序访问硬件仿真器的方法不限,也不限于同一台电脑,可以是网络中的任何主机或者服务器。硬件仿真器中实现虚拟的寄存器访问的方法不限,可以使用数据库的方法,也可以使用数据存储等方法。
本实施例,提出一种功能程序调试方法,本发明利用硬件仿真器对功能程序进行调试,能够在保留原始功能程序的基础上做到无单板调试,并且本发明中的硬件仿真器可以实现动态配置硬件模拟参数,进而可以在不同状态下对功能程序进行调试,减少了软件开发的工作量并且降低了成本。
如图4所示,本发明实施例提供另一种功能程序调试方法,包括以下步骤:
步骤S401、接收第一目标操作,根据所述第一目标操作设置多个寄存器地址。
在步骤S401中,在对功能程序进行调试之前,可以在硬件仿真器中设置多个寄存器地址,并且可以在相应的寄存器中设置寄存器值,一个寄存器地址对应一个寄存器,一个寄存器中存储有一个寄存器值。
可选的,所述功能程序为预先设置硬件仿真器调试为真的功能程序。
用户可以在待测试的功能程序中做一个开关,可以通过这个开关来决定是访问真实的硬件,还是访问硬件仿真器。当用户在待测试的功能程序中将硬件仿真器调试设置为真时,待测试的功能程序就可以访问硬件仿真器,待测试的功能程序可以读硬件仿真器寄存器,也可以写硬件仿真器寄存器。
步骤S402、接收待测试的功能程序。
首先,可以将待测试的功能程序中的仿真器调试设置为真,然后将待测试的功能程序输入硬件仿真器中。
步骤S403、从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值。
在步骤S403中,在对功能程序进行调试之前,已经在硬件仿真器中预先设置好多个寄存器地址,并且可以在相应的寄存器中设置寄存器值,一个寄存器地址对应一个寄存器,一个寄存器中存储有一个寄存器值。寄存器地址设置好之后就不能改动了,但是可以对寄存器地址相对应的寄存器中的寄存器值进行动态修改。在对功能程序进行调试时,可以从预先设置的寄存器地址所对应的寄存器中获取硬件仿真器的目标寄存器值。
可选的,在所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值的步骤之前,所述方法还包括:
接收第二目标操作;
根据所述第二目标操作将所述硬件仿真器的当前寄存器值修改为所述目标寄存器值;
所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值,包括:
检测所述功能程序向所述硬件仿真器发送的目标指令;
对所述目标指令进行解析获得目标寄存器地址;
基于所述目标寄存器地址找寻目标寄存器,并且从所述目标寄存器中读取所述目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述硬件仿真器的目标响应。
对功能程序进行调试时,可以有两种实施方式。第一种方式为通过读硬件仿真器寄存器来对功能程序进行调试,第二种方式为通过写硬件仿真器寄存器来对功能程序进行调试。
这里先来解释第一种方式。当通过读硬件仿真器寄存器来对功能程序进行调试时,功能程序可以向硬件仿真器发送一条指令,指令中可以包含两个参数,一个参数为想要访问的寄存器的地址,另一个参数为缓冲区。硬件仿真器可以对这条指令进行解析,获得功能程序想要访问的寄存器的地址以及缓冲区,进而硬件仿真器会利用解析获得的寄存器的地址找到相应的寄存器,并且从该寄存器中读取寄存器值,然后将读取的寄存器值放进缓冲区,返回给功能程序,硬件仿真器基于向功能程序返回的寄存器值对功能程序进行测试,最终输出与该寄存器值相对应的响应,用户根据硬件仿真器的响应就可以判断功能程序是否有问题,如果用户判断出功能程序有问题,就可以对功能程序进行修改,然后再进行调试,直到功能程序符合要求为止。
需要说明的是,在被调试功能程序运行期间,用户可以根据需要修改硬件仿真器中的配置参数,每一个配置参数都代表硬件仿真器的一种状态,因此可以实现在硬件仿真器的各种状态下对功能程序进行调试,使功能程序验证不同的处理分支。并且在修改硬件仿真器中的配置参数时,被调试功能程序不需要做任何调整,即可以在保留被调试功能程序的基础上使被调试功能程序验证不同的处理分支,大大减少了软件开发的工作量,降低了成本。
例如,假设某个寄存器可以存储温度值。在功能程序访问硬件仿真器之前,用户可以在该寄存器中预先设置一个温度值,例如设置为20摄氏度,然后将功能程序输入硬件仿真器中。假设正常情况下当寄存器内所存储的温度值为20摄氏度时是不需要报警的,即当温度值为20摄氏度时是安全的情况。当功能程序读取了该寄存器中的温度值,即功能程序读取出温度值为20摄氏度时,如果没有报警,说明功能程序在此种状态下是没有问题的,如果出现了报警的情况,说明功能程序在此种状态下是有问题的,此时就需要对功能程序进行修改,直到功能程序在此种状态下没有问题为止,即在读取到温度值为20摄氏度时不再异常报警为止。在温度值设置为20摄氏度的情况下对功能程序进行调试后,用户可以根据需要修改该寄存器中的温度值,假设此时用户将该寄存器中的温度值设置为60摄氏度。假设正常情况下温度值为60摄氏度时是需要报警的,即当温度值为60摄氏度时是不安全的情况。当功能程序读取了该寄存器中的温度值,即功能程序读取出温度值为60摄氏度时,如果出现了报警的情况,说明功能程序在此种状态下是没有问题的,如果没有报警,说明功能程序在此种状态下是有问题的,此时就需要对功能程序进行修改,直到功能程序在此种状态下没有问题为止,即在读取到温度值为60摄氏度时正常报警为止。
可选的,在所述接收待测试的功能程序的步骤之后,所述方法还包括:
采集所述功能程序访问所述硬件仿真器的多个寄存器的目标时间;
记录与每个目标时间相对应的寄存器的地址;
所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值,包括:
获取与每个目标时间相对应的寄存器的值;
基于各个目标时间、与每个目标时间相对应的寄存器的地址和与每个目标时间相对应的寄存器的值绘出时序波形图。
前面解释了第一种方式,这里再来解释第二种方式。当通过写硬件仿真器寄存器来对功能程序进行调试时,硬件仿真器可以做数据采集,可以采集出被调试功能程序对硬件仿真器的访问数据。例如,硬件仿真器可以采集被调试功能程序访问每个寄存器的时间,记录相应的寄存器地址和寄存器值,然后利用采集到的数据绘出串行外设接口(SPI,Serial Peripheral Interface)图或者(I2C,Inter-Integrated Circuit)总线图等时序波形图。
例如,硬件仿真器可以记录功能程序在第一秒时访问了哪个寄存器,将第一秒时访问的寄存器的地址以及该寄存器中的寄存器值记录下来,同样的,硬件仿真器可以记录功能程序在第二秒时访问了哪个寄存器,将第二秒时访问的寄存器的地址以及该寄存器中的寄存器值记录下来,硬件仿真器还可以记录功能程序在第三秒时访问了哪个寄存器,将第三秒时访问的寄存器的地址以及该寄存器中的寄存器值记录下来。当功能程序将需要访问的寄存器都访问了一遍时,硬件仿真器就可以获取到这些寄存器被访问的时间、与每个时间点相对应的寄存器地址以及与每个时间点相对应的寄存器值,然后硬件仿真器可以利用记录下来的数据绘出时序波形图。
用户可以将绘出的时序波形图与硬件手册上的时序波形图进行比较,当绘出的时序波形图与硬件手册上的时序波形图相符时,说明被调试功能程序是没有问题的,当绘出的时序波形图与硬件手册上的时序波形图不相符时,说明被调试功能程序是有问题的,此时就要对被调试功能程序进行修改,然后再进行调试,直到被调试功能程序满足要求为止。
步骤S404、基于所述目标寄存器值,对所述功能程序进行测试。
在步骤S404中,在前面提到过,在对功能程序进行调试时可以有两种方式,可以通过读硬件仿真器寄存器的方式来对功能程序进行测试,也可以通过写硬件仿真器寄存器的方式来对功能程序进行测试。
步骤S405、输出所述功能程序的测试结果。
在步骤S405中,硬件仿真器输出被调试功能程序的测试结果后,用户可以利用测试结果对被调试功能程序进行分析。当测试结果不符合要求时,要对功能程序进行修改,然后再对功能程序进行调试,如此重复下去,直到被调试功能程序满足要求为止。
需要说明的是,功能程序访问硬件仿真器的方法不限,也不限于同一台电脑,可以是网络中的任何主机或者服务器。硬件仿真器中实现虚拟的寄存器访问的方法不限,可以使用数据库的方法,也可以使用数据存储等方法。
本实施例,提出一种功能程序调试方法,本发明利用硬件仿真器对功能程序进行调试,能够在保留原始功能程序的基础上做到无单板调试,并且本发明中的硬件仿真器可以实现动态配置硬件模拟参数,进而可以在不同状态下对功能程序进行调试,减少了软件开发的工作量并且降低了成本。
如图5所示,本发明实施例提供一种终端的结构,包括以下模块:
第一接收模块501,用于接收待测试的功能程序;
获取模块502,用于获取硬件仿真器的目标寄存器值;
测试模块503,用于基于所述目标寄存器值,对所述功能程序进行测试;
输出模块504,用于输出所述功能程序的测试结果。
可选的,如图6所示,所述终端还包括:
第二接收模块505,用于接收第一目标操作;
设置模块506,用于根据所述第一目标操作设置多个寄存器地址;
获取模块502包括:
第一获取子模块5021,用于从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值;
第一测试子模块5022,用于基于所述目标寄存器值,对所述功能程序进行测试;
第一输出子模块5023,用于输出所述功能程序的测试结果。
可选的,如图7所示,所述终端还包括:
第三接收模块507,用于接收第二目标操作;
修改模块508,用于根据所述第二目标操作将所述硬件仿真器的当前寄存器值修改为所述目标寄存器值;
第一获取子模块5021包括:
检测模块50211,用于检测所述功能程序向所述硬件仿真器发送的目标指令;
解析模块50212,用于对所述目标指令进行解析获得目标寄存器地址;
读取模块50213,用于基于所述目标寄存器地址找寻目标寄存器,并且从所述目标寄存器中读取所述目标寄存器值;
第二测试子模块50214,用于基于所述目标寄存器值,对所述功能程序进行测试;
第二输出子模块50215,用于输出所述硬件仿真器的目标响应。
可选的,如图8所示,所述终端还包括:
采集模块509,用于采集所述功能程序访问所述硬件仿真器的多个寄存器的目标时间;
记录模块5010,用于记录与每个目标时间相对应的寄存器的地址;
第一获取子模块5021包括:
第二获取子模块50216,用于获取与每个目标时间相对应的寄存器的值;
绘图模块50217,用于基于各个目标时间、与每个目标时间相对应的寄存器的地址和与每个目标时间相对应的寄存器的值绘出时序波形图。
可选的,所述功能程序为预先设置硬件仿真器调试为真的功能程序。
本实施例中,上述终端可以是图1和图4所示的实施例中的终端,且图1和图4所示的实施例中终端的任何实施方式都可以被本实施例中的终端所实现,这里不再赘述。
本实施例,提出一种终端,功能程序调试方法可以在这种终端上实现,本发明利用硬件仿真器对功能程序进行调试,能够在保留原始功能程序的基础上做到无单板调试,并且本发明中的硬件仿真器可以实现动态配置硬件模拟参数,进而可以在不同状态下对功能程序进行调试,减少了软件开发的工作量并且降低了成本。
本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取介质中,该程序在执行时,包括以下步骤:
接收待测试的功能程序;
获取硬件仿真器的目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述功能程序的测试结果。
可选的,在所述接收待测试的功能程序的步骤之前,所述方法还包括:
接收第一目标操作;
根据所述第一目标操作设置多个寄存器地址;
所述获取硬件仿真器的目标寄存器值,包括:
从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述功能程序的测试结果。
可选的,在所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值的步骤之前,所述方法还包括:
接收第二目标操作;
根据所述第二目标操作将所述硬件仿真器的当前寄存器值修改为所述目标寄存器值;
所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值,包括:
检测所述功能程序向所述硬件仿真器发送的目标指令;
对所述目标指令进行解析获得目标寄存器地址;
基于所述目标寄存器地址找寻目标寄存器,并且从所述目标寄存器中读取所述目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述硬件仿真器的目标响应。
可选的,在所述接收待测试的功能程序的步骤之后,所述方法还包括:
采集所述功能程序访问所述硬件仿真器的多个寄存器的目标时间;
记录与每个目标时间相对应的寄存器的地址;
所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值,包括:
获取与每个目标时间相对应的寄存器的值;
基于各个目标时间、与每个目标时间相对应的寄存器的地址和与每个目标时间相对应的寄存器的值绘出时序波形图。
可选的,所述功能程序为预先设置硬件仿真器调试为真的功能程序。
所述的存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种功能程序调试方法,其特征在于,包括:
接收待测试的功能程序,所述功能程序包括一开关,所述开关用于决定访问真实硬件或者访问硬件仿真器;
获取硬件仿真器的目标寄存器值,所述硬件仿真器允许设置多个虚拟寄存器对应的寄存器地址,每个所述寄存器地址内的寄存器值允许被动态修改;
基于所述目标寄存器值,对所述功能程序进行测试,所述硬件仿真器的状态与配置参数一一对应,不同的所述配置参数用于对所述功能程序的不同处理分支进行测试;
输出所述功能程序的测试结果。
2.如权利要求1所述的方法,其特征在于,在所述接收待测试的功能程序的步骤之前,所述方法还包括:
接收第一目标操作;
根据所述第一目标操作设置多个寄存器地址;
所述获取硬件仿真器的目标寄存器值,包括:
从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述功能程序的测试结果。
3.如权利要求2所述的方法,其特征在于,在所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值的步骤之前,所述方法还包括:
接收第二目标操作;
根据所述第二目标操作将所述硬件仿真器的当前寄存器值修改为所述目标寄存器值,其中,所述当前寄存器值是指在接收到所述第二目标操作之前所述设置的寄存器地址相对应的寄存器中的寄存器值,所述目标寄存器值是指根据所述第二目标操作对所述设置的寄存器地址相对应的寄存器进行修改后的寄存器值;
所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值,包括:
检测所述功能程序向所述硬件仿真器发送的目标指令;
对所述目标指令进行解析获得目标寄存器地址;
基于所述目标寄存器地址找寻目标寄存器,并且从所述目标寄存器中读取所述目标寄存器值;
基于所述目标寄存器值,对所述功能程序进行测试;
输出所述硬件仿真器的目标响应。
4.如权利要求2所述的方法,其特征在于,在所述接收待测试的功能程序的步骤之后,所述方法还包括:
采集所述功能程序访问所述硬件仿真器的多个寄存器的目标时间;
记录与每个目标时间相对应的寄存器的地址;
所述从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值,包括:
获取与每个目标时间相对应的寄存器的值;
基于各个目标时间、与每个目标时间相对应的寄存器的地址和与每个目标时间相对应的寄存器的值绘出时序波形图。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述功能程序为预先设置硬件仿真器调试为真的功能程序。
6.一种终端,其特征在于,包括:
第一接收模块,用于接收待测试的功能程序,所述功能程序包括一开关,所述开关用于决定访问真实硬件或者访问硬件仿真器;
获取模块,用于获取硬件仿真器的目标寄存器值,所述硬件仿真器允许设置多个虚拟寄存器对应的寄存器地址,每个所述寄存器地址内的寄存器值允许被动态修改;
测试模块,用于基于所述目标寄存器值,对所述功能程序进行测试,所述硬件仿真器的状态与配置参数一一对应,不同的所述配置参数用于对所述功能程序的不同处理分支进行测试;
输出模块,用于输出所述功能程序的测试结果。
7.如权利要求6所述的终端,其特征在于,所述终端还包括:
第二接收模块,用于接收第一目标操作;
设置模块,用于根据所述第一目标操作设置多个寄存器地址;
所述获取模块包括:
第一获取子模块,用于从设置的寄存器地址相对应的寄存器中获取所述硬件仿真器的目标寄存器值;
第一测试子模块,用于基于所述目标寄存器值,对所述功能程序进行测试;
第一输出子模块,用于输出所述功能程序的测试结果。
8.如权利要求7所述的终端,其特征在于,所述终端还包括:
第三接收模块,用于接收第二目标操作;
修改模块,用于根据所述第二目标操作将所述硬件仿真器的当前寄存器值修改为所述目标寄存器值,其中,所述当前寄存器值是指在接收到所述第二目标操作之前所述设置的寄存器地址相对应的寄存器中的寄存器值,所述目标寄存器值是指根据所述第二目标操作对所述设置的寄存器地址相对应的寄存器进行修改后的寄存器值;
所述第一获取子模块包括:
检测模块,用于检测所述功能程序向所述硬件仿真器发送的目标指令;
解析模块,用于对所述目标指令进行解析获得目标寄存器地址;
读取模块,用于基于所述目标寄存器地址找寻目标寄存器,并且从所述目标寄存器中读取所述目标寄存器值;
第二测试子模块,用于基于所述目标寄存器值,对所述功能程序进行测试;
第二输出子模块,用于输出所述硬件仿真器的目标响应。
9.如权利要求7所述的终端,其特征在于,所述终端还包括:
采集模块,用于采集所述功能程序访问所述硬件仿真器的多个寄存器的目标时间;
记录模块,用于记录与每个目标时间相对应的寄存器的地址;
所述第一获取子模块包括:
第二获取子模块,用于获取与每个目标时间相对应的寄存器的值;
绘图模块,用于基于各个目标时间、与每个目标时间相对应的寄存器的地址和与每个目标时间相对应的寄存器的值绘出时序波形图。
10.如权利要求6-9中任一项所述的终端,其特征在于,所述功能程序为预先设置硬件仿真器调试为真的功能程序。
CN201710169897.4A 2017-03-21 2017-03-21 一种功能程序调试方法和终端 Active CN108628734B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710169897.4A CN108628734B (zh) 2017-03-21 2017-03-21 一种功能程序调试方法和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710169897.4A CN108628734B (zh) 2017-03-21 2017-03-21 一种功能程序调试方法和终端

Publications (2)

Publication Number Publication Date
CN108628734A CN108628734A (zh) 2018-10-09
CN108628734B true CN108628734B (zh) 2023-03-28

Family

ID=63686644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710169897.4A Active CN108628734B (zh) 2017-03-21 2017-03-21 一种功能程序调试方法和终端

Country Status (1)

Country Link
CN (1) CN108628734B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111044925A (zh) * 2019-12-20 2020-04-21 深圳市新威尔电子有限公司 用于电池检测系统的仿真器
CN111025166A (zh) * 2019-12-27 2020-04-17 深圳市新威尔电子有限公司 用于电池检测系统的调试器
CN112667514B (zh) * 2020-12-31 2024-08-20 海光信息技术股份有限公司 一种微程序的调试方法及其调试装置
CN113535588A (zh) * 2021-08-09 2021-10-22 北京烁科精微电子装备有限公司 一种cmp设备模拟测试方法和测试系统
CN114564414B (zh) * 2022-04-28 2022-08-09 武汉慧联无限科技有限公司 调试方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951704A (en) * 1997-02-19 1999-09-14 Advantest Corp. Test system emulator
JP2001051025A (ja) * 1999-08-12 2001-02-23 Advantest Corp 半導体試験用プログラムデバッグ装置
EP1610136A1 (en) * 2003-03-31 2005-12-28 Advantest Corporation Test emulation device, test module emulation device, and recording medium recorded with programs for the devices
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式系统的程序调试方法及嵌入式系统
CN103207823A (zh) * 2012-01-13 2013-07-17 上海华虹集成电路有限责任公司 一种处理器芯片仿真器
CN103714190A (zh) * 2013-05-07 2014-04-09 深圳市汇春科技有限公司 简单高效的在线仿真方法及接口电路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101019210B1 (ko) * 2007-04-25 2011-03-04 이화여자대학교 산학협력단 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951704A (en) * 1997-02-19 1999-09-14 Advantest Corp. Test system emulator
JP2001051025A (ja) * 1999-08-12 2001-02-23 Advantest Corp 半導体試験用プログラムデバッグ装置
EP1610136A1 (en) * 2003-03-31 2005-12-28 Advantest Corporation Test emulation device, test module emulation device, and recording medium recorded with programs for the devices
CN103207823A (zh) * 2012-01-13 2013-07-17 上海华虹集成电路有限责任公司 一种处理器芯片仿真器
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式系统的程序调试方法及嵌入式系统
CN103714190A (zh) * 2013-05-07 2014-04-09 深圳市汇春科技有限公司 简单高效的在线仿真方法及接口电路

Also Published As

Publication number Publication date
CN108628734A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN108628734B (zh) 一种功能程序调试方法和终端
CN108984389B (zh) 一种应用程序测试方法及终端设备
US9465718B2 (en) Filter generation for load testing managed environments
CN107193733A (zh) 模拟Monkey测试的方法、装置和系统
CN110543420B (zh) 一种软件测试方法、系统、终端及存储介质
CN110806970A (zh) 一种基于模拟服务端响应的客户端测试方法、装置和电子设备
CN112416775B (zh) 基于人工智能的软件自动化测试方法、装置及电子设备
CN112286750A (zh) 一种gpio验证方法、装置、电子设备和介质
CN117076337B (zh) 一种数据传输方法、装置、电子设备及可读存储介质
CN118091369A (zh) 一种芯片测试方法、系统、设备及计算机可读存储介质
CN110261758B (zh) 待测器件验证装置及相关产品
CN109902001B (zh) 对未初始化变量的检测方法及终端设备
US11397662B2 (en) Method for debugging computer program, device employing method, and storage medium
WO2023230883A1 (zh) 一种测试方法、系统及装置
CN115732025A (zh) Ram访问冲突的验证方法及验证装置
CN110059390B (zh) 待测器件验证装置及相关产品
CN113094221B (zh) 故障注入方法、装置、计算机设备以及可读存储介质
CN114756463A (zh) 一种测试环境开发方法、系统、设备以及介质
RU2729210C1 (ru) Комплекс тестирования программного обеспечения электронных устройств
CN111258838B (zh) 验证组件生成方法、装置、存储介质及验证平台
CN113238953A (zh) Ui自动化测试方法、装置、电子设备和存储介质
CN112905445A (zh) 一种基于日志的测试方法、装置及计算机系统
CN111966545A (zh) PCIe分线器热插拔测试方法、装置、设备及存储介质
CN112540920A (zh) 测试方法、装置、设备和存储介质
CN111106979A (zh) 一种交换机阈值告警测试的方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant