CN109726135A - 一种多核调试方法、装置及计算机可读存储介质 - Google Patents
一种多核调试方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109726135A CN109726135A CN201910071061.XA CN201910071061A CN109726135A CN 109726135 A CN109726135 A CN 109726135A CN 201910071061 A CN201910071061 A CN 201910071061A CN 109726135 A CN109726135 A CN 109726135A
- Authority
- CN
- China
- Prior art keywords
- debugging
- core
- kernel
- processor
- core processor
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 239000000725 suspension Substances 0.000 claims description 39
- 238000001514 detection method Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 7
- 230000001276 controlling effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明的实施方式提供了一种多核调试方法、装置及计算机可读存储介质,该方法适用于基于RISC‑V指令集架构的多核处理器,包括:响应于多核调试装置的启动指令,与所述多核处理器的每一个内核建立调试关系;调试关系建立后,响应于第一预设事件,控制所述多核处理器中的指定内核暂停运行;指定内核暂停运行之后,根据预设选核指令控制所述内部调试模块切换当前调试核,以及根据所述内部调试模块获取切换后的所述当前调试核的调试信息。利用上述方法能够实现RISC‑V指令集架构的多核处理器的多核调试功能。
Description
技术领域
本发明涉及计算机领域,具体涉及一种多核调试方法、装置及计算机可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
RISC-V是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),由于其具有完全开源、设计简单、易于移植与拓展、模块化设计等多个优点,近年来受到大量芯片厂商的青睐。
程序调试是将编写完成的计算机程序投入实际运行前借助仿真器进行测试以修正语法错误与逻辑错误的过程,也是保证信息正确性必不可少的部分。相应地,RISC-V架构同样也定义了一套相对简单基本的调试机制,包括在CPU中提供了一个内部的调试模块(Debug Module),外部的多核调试装置可以通过调试总线(Debug bus)与调试传输模块(Debug Transport module)与其进行通信,以及通过系统总线(System bus)与每个核通信。它包含调试RISC-V核所需要的一些功能,然而,基于RISC-V架构的多核处理器架构暂时不支持多核调试的功能。现有技术中,一般只能采用多路(Muxing)技术进行多核调试,也即采用多核独立的调试器调试相应的单核,所谓的多核调试实质上是多个单核调试的集合,这造成了硬件资源的浪费。
发明内容
针对现有技术中的基于RISC-V架构的多核处理器不支持多核调试的问题,本发明提供了一种调试方法、装置和计算机介质,从而可以实现RISC-V的多核调试功能。
在本发明实施方式的第一方面,提出一种多核调试方法,其特征在于,应用于基于RISC-V指令集的多核处理器,上述多核处理器包括内部调试模块,上述方法包括:
响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系;
调试关系建立后,响应于第一预设事件,控制上述多核处理器中的指定内核暂停运行;
指定内核暂停运行之后,根据预设选核指令,控制上述内部调试模块切换当前调试核,以及根据上述内部调试模块获取切换后的上述当前调试核的调试信息。
可选地,其中,
上述根据预设选核指令控制上述内部调试模块切换当前调试核,以及根据上述内部调试模块获取切换后的上述当前调试核的调试信息包括:
接收上述预设选核指令,上述预设选核指令包括第一选核指令与第二选核指令;
根据上述第一选核指令将上述多核处理器中的第一内核设置为上述当前调试核,从而获取上述当前调试核的调试信息作为第一调试信息;
在获取上述第一调试信息之后,根据第二选核指令将上述当前调试核从上述第一内核切换为上述第二内核,并获取上述当前调试核的调试信息作为第二调试信息。
可选地,其中,
上述第一预设事件包含以下中的至少一种:
接收到用于控制多核处理器中的任意一个内核进入调试模式的调试指令;
上述多核处理器中的任意一个内核在运行调试程序时撞到预设断点。
可选地,其中,
上述根据预设选核指令控制上述内部调试模块切换当前调试核包括:
接收上述预设选核指令,上述预设选核指令包括目标内核的ID;
判断上述当前调试核的ID与上述目标内核的ID是否一致;
若上述目标内核的ID不同于上述当前调试核的ID,则向上述多核处理器的内部调试模块发送切换指令,上述内部调试模块响应于上述切换指令将上述当前调试核切换为上述目标内核;
若上述目标内核的ID与上述当前调试核的ID相同,则保留上述当前调试核;
其中,上述当前调试核的ID存储于上述多核处理器的内部调试模块中。
可选地,其中,
上述响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系包括:
响应于上述多核调试装置的启动指令,对上述多核处理器执行第一检测;
控制上述多核处理器中的每一个内核暂停运行;
在上述多核处理器中的每一个内核均暂停运行之后,对上述多个处理器中的每一个内核执行第二检测,从而建立上述多核调试装置与上述多核处理器的每一个内核之间的调试关系。
可选地,其中,上述多核处理器的每一个内核建立调试关系进一步包括检测多核处理器中是否存在处于等待中断状态的内核;
若检测到多核处理器中存在至少一个处于等待中断状态的第三内核,则在对多核处理器进行多核调试时,忽略第三内核。
可选地,其中,上述对上述多核处理器执行第一检测包括:
对上述多核处理器的处理器类型进行检测;
对上述多核处理器的内核数量进行检测。
可选地,其中,上述对上述多个处理器中的每一个内核执行第二检测包括:
对上述多个处理器中的每一个内核执行内核字长检测;
对上述多个处理器中的每一个内核执行MISA检测。
根据本发明实施方式的第二方面,提供一种一种多核调试装置,其特征在于,应用于基于RISC-V指令集的多核处理器,上述多核处理器包括内部调试模块,上述装置包括:
启动模块,用于响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系;
内核暂停模块,用于在调试关系建立后,响应于第一预设事件,控制多核处理器中的指定内核暂停运行;
内核切换模块,用于在指定内核暂停运行之后,根据预设选核指令,控制上述内部调试模块切换当前调试核,以及根据上述内部调试模块获取切换后的上述当前调试核的调试信息。
可选地,其中,上述内核切换模块进一步用于:
接收上述预设选核指令,上述预设选核指令包括第一选核指令与第二选核指令;
根据上述第一选核指令将上述多核处理器中的第一内核设置为上述当前调试核,从而获取上述当前调试核的调试信息作为第一调试信息;
在获取上述第一调试信息之后,根据第二选核指令将上述当前调试核从上述第一内核切换为上述第二内核,并获取上述当前调试核的调试信息作为第二调试信息。
可选地,其中,上述第一预设事件包含以下中的至少一种:
接收到用于控制多核处理器中的任意一个内核进入调试模式的调试指令;上述多核处理器中的任意一个内核在运行调试程序时撞到预设断点。
可选地,其中,上述内核切换模块进一步用于:
接收上述预设选核指令,上述预设选核指令包括目标内核的ID;
判断上述当前调试核的ID与上述目标内核的ID是否一致;
若上述目标内核的ID不同于上述当前调试核的ID,则向上述多核处理器的内部调试模块发送切换指令,上述内部调试模块响应于上述切换指令将上述当前调试核切换为上述目标内核;
若上述目标内核的ID与上述当前调试核的ID相同,则保留上述当前调试核;
其中,上述当前调试核的ID存储于上述多核处理器的内部调试模块中。
可选地,其中,上述启动模块进一步用于:
响应于上述多核调试装置的启动指令,对上述多核处理器执行第一检测;
控制上述多核处理器中的每一个内核暂停运行;
在上述多核处理器中的每一个内核均暂停运行之后,对上述多个处理器中的每一个内核执行第二检测,从而建立上述多核调试装置与上述多核处理器的每一个内核之间的调试关系。
可选地,其中,启动模块进一步用于:
检测所述多核处理器中是否存在处于等待中断状态的内核;
若检测到多核处理器中存在至少一个处于等待中断状态的第三内核,则在对多核处理器进行多核调试时,忽略第三内核。
可选地,其中,启动模块进一步用于:
对上述多核处理器的处理器类型进行检测;
对上述多核处理器的内核数量进行检测。
可选地,其中,启动模块进一步用于:对上述多个处理器中的每一个内核执行内核字长检测;
对上述多个处理器中的每一个内核执行MISA检测。
根据本发明实施方式的第三方面,提出一种多核调试装置,其特征在于,应用于基于RISC-V指令集的多核处理器,上述多核处理器包括内部调试模块,上述装置包括:
一个或者多个处理器;
存储器,用于存储一个或多个程序;
当上述一个或多个程序被上述一个或者多个处理器执行时,使得上述一个或多个处理器实现:
响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系;
调试关系建立后,响应于第一预设事件,控制多核处理器中的指定内核暂停运行;
指定内核暂停运行之后,根据预设选核指令,控制上述内部调试模块切换当前调试核,以及根据上述内部调试模块获取切换后的上述当前调试核的调试信息。
根据本发明实施方式的第四方面,提出一种计算机可读存储介质,上述计算机可读存储介质存储有程序,当上述程序被处理器执行时,使得上述处理器执行如上所述的方法。
正是通过本发明实施方式所提供的提出一种调试方法、装置和计算机可读存储介质,通过建立外部的多核调试装置与多核处理器的每一个内核之间的调试关系。进而通过对多核处理器的内部调试模块中的当前调试核进行按需切换,实现了基于RISC指令集架构的多核处理器的多核调试。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了根据本发明实施例的多核调试系统示意图;
图2示出了根据本发明实施例的一种多核调试方法流程图;
图3示出了根据本发明实施例的另一种多核调试方法流程图;
图4示出了根据本发明实施例的又一种多核调试方法流程图;
图5示出了根据本发明实施例的又一种多核调试方法流程图;
图6示出了根据本发明实施例的又一种多核调试方法流程图;
图7示出了根据本发明实施例的一种多核调试装置示意图;
图8示出了根据本发明实施例的另一种多核调试装置示意图;
图9示出了根据本发明实施例的一种中断处理系统的计算机可读存储介质的示意图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
本发明实施例提供一种多核调试方法,应用于如图1所示的多核调试系统,参见附图1,该多核调试系统包括多核处理器101(目标机)与外部的多核调试装置102(宿主机);其中,目标机与宿主机通过通信连接,需要注意的是,该外部的多核调试装置可以是包含调试软件的任意主机,而非专门的调试器设备。
下面结合图2对本发明实施例进行详细描述,如图2所示,本发明提供的一种多核调试方法包括:
步骤201:响应于多核调试装置的启动指令,与多核处理器的每一个内核建立调试关系;
步骤202:调试关系建立后,响应于第一预设事件,控制多核处理器中的指定内核暂停运行;
步骤203:指定内核暂停运行之后,根据预设选核指令,控制内部调试模块切换当前调试核,以及根据内部调试模块获取切换后的当前调试核的调试信息。
具体地,在上述步骤201中,建立调试关系指的是外部的多核调试装置在开启后与多核处理器的每一个核建立的连接关系,这种连接关系保证了该外部的多核调试装置得以对多核处理器的每一个核进行调试。
具体地,在上述步骤202中,第一预设事件指的是用于触发上述多核处理器进入调试状态的预设事件。
具体地,在上述步骤202中,上述控制上述多核处理器中的指定内核暂停运行的步骤中,具体可以通过调试软件依次配置上述指定内核的寄存器来完成全局暂停运行。
具体地,在上述步骤203中,上述当前调试核指的是内部调试模块中所指定的当前进行调试的核。本领域技术人员可以理解的是,基于RISC-V精简指令集的处理器定义了一种内部调试模块,该内部调试模块中存储有“当前调试核的ID”,通过将“当前调试核的ID”设置为用户准备进行调试的内核的ID,就可以用户准备进行调试的内核进行调试。进一步讲,若某一个内核被设置为当前调试核,则外部的多核调试器从内部调试模块获取的调试信息就是该内核的寄存器信息。
以下结合具体示例对本实施例进行详细描述:
例如,多核处理器包括第一内核001与第二内核002,第一内核001与第二内核002分别运行两个计算任务①、②,其中,任务①由第一内核001执行、任务②由第二内核002执行。外部调试软件在上电初始化后连接至上述多核处理器,多核处理器运行上述待调试的程序。当准备调试第一内核001时,就在第一内核001的计算任务的某个地方打个断点,当遇到第一个断点时,上述第一内核001暂停运行、第二内核002继续运行,而后根据预设选核指令a将第一内核001设置为当前调试核,通过查看该第一内核001的指定寄存器参数以获取任务①的调试信息;第一次调试完成后,第一内核001恢复运行第、第二内核002继续运行。之后,向调试器发送暂停指令,第一内核001与第二内核002都暂停,此时可以自由选择第一内核001或第二内核002,然后通过查看指定核的相关状态从而完成调试,完成调试后,第一内核001与第二内核002恢复运行。
利用以上技术方案,本实施例通过建立外部的多核调试装置与多核处理器的每一个内核之间的调试关系,进而通过对多核处理器的内部调试模块中的当前调试核进行按需切换,实现了基于RISC指令集的多核处理器的多核调试。
基于图2提供的一种多核调试方法,本申请的一些实施例还提供了该调试方法的一些具体实施方案,以及扩展方案,下面进行说明。
在一实施例中,进一步对上述第一预设事件进行示例性说明,具体地,上述第一预设事件包含以下中的至少一种:
(1)上述调试器接收到用于控制多核处理器中的任意一个内核进行调试的调试指令;
具体地,上述预设的调试指令指的控制内核暂停运行的指令,也即用户可以通过外部的多核调试装置在调试程序运行过程中的任意时间点向多核处理器发送暂停运行的指令。
(2)上述多核处理器中的任意一个内核在运行调试程序时撞到预设断点。
具体地,用户可以在调试程序中的任意位置处插入断点,当处理器内核运行调试程序到断点处会自动触发停止。可选地,当检测到多核处理器中的一个内核响应于撞到预设断点而暂停运行这一事件时,多核调试器也可以向多核处理器中的其他内核发送暂停运行指令以实现全局暂停。
本实施例通过采用多种调试触发条件,可以提高对于多种调试场景的可适用性。
本实施例对上述第一预设事件不作具体限制,本实施例仅以上述方法为例进行描述。
图3示出了本发明提供的另一个多核调试方法的流程示意图,结合图1与图2,本实施例进一步对根据预设选核指令控制上述内部调试模块切换当前调试核进行示例性说明,如图3所示,包括如下步骤:
步骤301:接收上述预设选核指令,上述预设选核指令包括目标内核的ID;
步骤302:判断上述当前调试核的ID与上述目标内核的ID是否一致;
步骤303:若上述目标内核的ID不同于上述当前调试核的ID,则向上述多核处理器的内部调试模块发送切换指令,上述内部调试模块响应于上述切换指令将上述当前调试核切换为上述目标内核;
步骤304:若上述目标内核的ID与上述当前调试核的ID相同,则保留上述当前调试核;
其中,上述当前调试核的ID存储于上述多核处理器的内部调试模块中。
值得注意的是,通过将内部调试模块的当前调试核ID切换成目标内核ID来实现当前调试核的切换这一技术方案是由基于RISC-V精简指令集架构所具体定义的CPU内部调试模块实现的,本领域技术人员可以从现有技术获得,本实施例不再赘述。
具体地,由于在调试程序运行的不同阶段,用户可能有不同的调试需求,比如在不同时刻需要对不同的内核进行调试;用户可以随时向外部的多核调试装置发送选核指令请求切换当前调试核;外部的多核调试装置在接收到用户发送的选核指令之后,会对选核指令进行解析以获取该选核指令中的目标内核ID;当处理器的内核响应于预设事件而进入调试状态时,外部的多核调试装置就会将目标内核ID与存储于CPU的内部调试模块的当前调试核ID进行匹配;若当前调试核ID与目标内核ID不匹配(不相同),则将内部调试模块的当前调试核ID切换成目标内核ID,从而实现当前调试核的切换;相应地,若当前调试核ID与目标内核ID匹配(相同),则无需切换。
例如,多核处理器包括第一内核001与第二内核002,接收上述预设选核指令,对预设选核指令进行解析,获得目标内核的ID“第二内核002”;获得内部调试模块中当前调试核的ID,假设其为“第一内核001”;判断目标内核的ID“第二内核002”与当前调试核的ID“第一内核001”是否一致;可以看出目标内核的ID明显不同于上述当前调试核的ID,则向上述多核处理器的内部调试模块发送切换指令,控制内部调试模块将当前调试核的ID切换设置为“第二内核002”。利用以上技术方案,本实施例通过更改ID设置即可完成调试内核的切换。
图4示出了本发明提供的另一个多核调试方法的流程示意图,利用本实施例可以实现对多个内核执行同步调试,如图4所示,包括如下步骤:
步骤401:响应于外部的多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系;
步骤402:响应于第一预设事件,控制上述多核处理器中的指定内核暂停运行;
步骤403:接收上述预设选核指令,上述预设选核指令包括第一选核指令与第二选核指令;
步骤404:根据上述第一选核指令将上述多核处理器中的第一内核设置为上述当前调试核,从而获取上述当前调试核的调试信息作为第一调试信息;
步骤405:在获取上述第一调试信息之后,根据第二选核指令将上述当前调试核从上述第一内核切换为上述第二内核,并获取上述当前调试核的调试信息作为第二调试信息。
此外,上述步骤401、步骤402具有前述实施例中步骤201、步骤202相同或相似的技术特征,在此不再赘述。
具体地,在面对用户的同步调试的调试需求时,本实施例在获取第一内核的第一调试信息之后,不立即恢复多核处理器的运行,而是在停核状态下对当前调试核进行又一次的切换,也即将第一内核切换为第二内核,进而在完成切换后获取对应于第二内核所的第二调试信息,从而可以同步获得第一内核的第一调试信息以及第二内核的第二调试信息。
例如,多核处理器包括第一内核001与第二内核002,该第一内核001与第二内核002同时执行待调试的程序中同一任务:绘制预设图像,在待调试的程序中的指定位置植入一个断点。外部调试软件在上电初始化后连接至上述多核处理器,多核处理器运行上述待调试的程序。当遇到该断点时,上述第一内核001和第二内核002一并暂停运行,而后根据第一选核指令c将第一内核001设置为当前调试核,通过查看该第一内核001的指定寄存器参数以获取第一调试信息;而后根据第二选核指令d将CPU内部调试模块内存储的当前调试核ID从第一内核001切换为第二内核002,通过查看该第二内核002的指定寄存器参数以获取第二调试信息。
值得注意的是,本实施例不限于两个内核的同步调试,多核处理器中的与外部的多核调试装置建立了调试关系的任意内核均可以作为第一内核或第二内核进行切换。此外,尽管本实施例中的第一调试信息与第二调试信息并非完全同时获取的,然而由于内核处于暂停状态,所获取的多个调试信息仍然是同步的。
在实际的程序运行过程中,可能存在多个内核共同执行同一个任务的情况,此时,可能需要对多个核执行同步的调试以获取更加准确的调试结果,因此本实施例可以通过在一次调试过程中执行多个选核指令以实现同时获取多个内核的调试信息。
利用上述技术方案在一次调试过程中同时获得多个内核的调试信息,相较于前述实施例,本发明实施例进一步提供了一种多核同步调试的技术方案。
图5示出了本发明提供的另一个多核调试方法的流程示意图,结合图2或图4,本实施例进一步对如何通过响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系进行示例性说明,如图5所示,包括如下步骤:
步骤501:响应于上述多核调试装置的启动指令,对上述多核处理器执行第一检测;
步骤502:控制上述多核处理器中的每一个内核暂停运行;
步骤503:在上述多核处理器中的每一个内核均暂停运行之后,对上述多个处理器中的每一个内核执行第二检测,从而建立上述多核调试装置与上述多核处理器的每一个内核之间的调试关系。
具体地,上述步骤501中,第一检测指的是外部的多核调试装置对多核处理器整体进行的检测。例如,处理器类型检测或处理器内核数量检测。
具体地,上述步骤中,上述控制上述多核处理器中的每一个内核暂停运行的操作步骤的目的在于,当对多核处理器中的每一个内核进行检测的时候,需要每一个内核处于暂停运行状态,否则可能会获得不准确的检测信息。
具体地,上述步骤503中,第二检测指的是外部的多核调试装置对多核处理器中的每一个内核所单独进行的检测。例如,内核字长检测或MISA检测。
基于上述图1与图2,本实施例进一步对与多核处理器的每一个内核建立调试关系进行示例性说明,如图6所示,包括如下步骤:
步骤601:检测多核处理器中是否存在处于等待中断状态的内核;
步骤602:若检测到多核处理器中存在至少一个处于所述等待中断状态的第三内核,则在对多核处理器进行多核调试时,忽略第三内核。
具体地,在多核处理器的实际程序运行过程中,为了节省能耗,经常在一个或多个内核无需执行任务时,将其设置为暂时休眠状态或WFI(wait for interrupt,等待中断)状态,等到程序运行到预设位置时,再由运行中的内核将处于WFI状态的内核唤醒。然而由于RISC-V的设计缺陷,如果一个内核处于WFI状态,那么外部的多核调试装置无法正确获知关于该内核的信息,进一步无法与该内核建立正确的调试关系。因此,本实施例采取在对多核处理器的每一个内核建立调试关系之前先检测每一个内核是否处于WFI状态,进而如果某个核处于WFI时,在操作核的时候(暂停、恢复运行),跳过这个处于WFI状态的核,不对其进行处理,只需要调试其他不在WFI状态的核。然后在其他暂停、恢复等操作时,要加上对核是否处于WFI的判断,如果是就忽略。综合考虑内核的状态参数,外部的多核调试装置可以与每一个内核建立正确的调试关系。
利用上述技术方案可以排除由于内核处于特殊状态所导致的调试关系建立不正确的问题,进一步保证了调试的正确运行,相较于前述实施例,本实施例中的方法可以大大降低调试错误率。
对应于图2所提供的多核调试方法,本发明实施例还提供一种多核调试装置,应用于如图1所示的多核调试系统,参见附图1,该多核调试系统包括多核处理器101(目标机)与外部的多核调试装置102(宿主机);其中,目标机与宿主机通过通信连接,需要注意的是,该外部的多核调试装置可以是包含调试软件的任意主机,而非专门的调试器设备。
下面结合图7对本发明实施例进行详细描述,如图7所示,本发明提供的一种多核调试装置包括:
启动模块701,用于响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系;
内核暂停模块702,用于在调试关系建立之后,响应于第一预设事件,控制多核处理器中的指定内核暂停运行;
内核切换模块703,用于在指定内核暂停运行之后,根据预设选核指令,控制上述内部调试模块切换当前调试核,以及根据上述内部调试模块获取切换后的上述当前调试核的调试信息。
具体地,在对上述启动模块701的描述中,建立调试关系指的是外部的多核调试装置在开启后与多核处理器的每一个核建立的连接关系,这种连接关系保证了该外部的多核调试装置得以对多核处理器的每一个核进行调试。
具体地,在对上述内核暂停模块702的描述中,第一预设事件指的是用于触发上述多核处理器进入调试状态的预设事件。
具体地,在对上述内核暂停模块702的描述中,上述控制上述多核处理器中的指定内核暂停运行的步骤中,具体可以通过调试软件依次配置上述指定内核的寄存器来完成全局暂停运行。
具体地,在对上述内核切换模块703的描述中,上述当前调试核指的是内部调试模块中所指定的当前进行调试的核。本领域技术人员可以理解的是,基于RISC-V精简指令集的处理器定义了一种内部调试模块,该内部调试模块中存储有“当前调试核的ID”,通过将“当前调试核的ID”设置为用户准备进行调试的内核的ID,就可以用户准备进行调试的内核进行调试。进一步讲,若某一个内核被设置为当前调试核,则外部的多核调试器从内部调试模块获取的调试信息就是该内核的寄存器信息。
以下结合具体示例对本实施例进行详细描述:
例如,多核处理器包括第一内核001与第二内核002,第一内核001与第二内核002分别运行两个计算任务①、②,其中,任务①由第一内核001执行、任务②由第二内核002执行。外部调试软件在上电初始化后连接至上述多核处理器,多核处理器运行上述待调试的程序。当准备调试第一内核001时,就在第一内核001的计算任务的某个地方打个断点,当遇到第一个断点时,上述第一内核001暂停运行、第二内核002继续运行,而后根据预设选核指令a将第一内核001设置为当前调试核,通过查看该第一内核001的指定寄存器参数以获取任务①的调试信息;第一次调试完成后,第一内核001恢复运行第、第二内核002继续运行。之后,向调试器发送暂停指令,第一内核001与第二内核002都停下来,此时可以自由选择第一内核001或第二内核002,然后通过查看指定核的相关状态从而完成调试,完成调试后,第一内核001与第二内核002恢复运行。
利用以上技术方案,本实施例通过建立外部的多核调试装置与多核处理器的每一个内核之间的调试关系,进而通过对多核处理器的内部调试模块中的当前调试核进行按需切换,实现了基于RISC指令集的多核处理器的多核调试。
可选地,其中,上述内核切换模块进一步用于:
接收上述预设选核指令,上述预设选核指令包括第一选核指令与第二选核指令;
根据上述第一选核指令将上述多核处理器中的第一内核设置为上述当前调试核,从而获取上述当前调试核的调试信息作为第一调试信息;
在获取上述第一调试信息之后,根据第二选核指令将上述当前调试核从上述第一内核切换为上述第二内核,并获取上述当前调试核的调试信息作为第二调试信息。
可选地,其中,上述第一预设事件包含以下中的至少一种:
接收到用于控制多核处理器中的任意一个内核进入调试模式的调试指令;上述多核处理器中的任意一个内核在运行调试程序时撞到预设断点。
可选地,其中,上述内核切换模块进一步用于:
接收上述预设选核指令,上述预设选核指令包括目标内核的ID;
判断上述当前调试核的ID与上述目标内核的ID是否一致;
若上述目标内核的ID不同于上述当前调试核的ID,则向上述多核处理器的内部调试模块发送切换指令,上述内部调试模块响应于上述切换指令将上述当前调试核切换为上述目标内核;
若上述目标内核的ID与上述当前调试核的ID相同,则保留上述当前调试核;
其中,上述当前调试核的ID存储于上述多核处理器的内部调试模块中。
可选地,其中,上述启动模块进一步用于:
响应于上述多核调试装置的启动指令,对上述多核处理器执行第一检测;
控制上述多核处理器中的每一个内核暂停运行;
在上述多核处理器中的每一个内核均暂停运行之后,对上述多个处理器中的每一个内核执行第二检测,从而建立上述多核调试装置与上述多核处理器的每一个内核之间的调试关系。
可选地,其中,启动模块进一步用于:
检测所述多核处理器中是否存在处于等待中断状态的内核;
若检测到多核处理器中存在至少一个处于等待中断状态的第三内核,则在对多核处理器进行多核调试时,忽略第三内核。
可选地,其中,启动模块进一步用于:
对上述多核处理器的处理器类型进行检测;
对上述多核处理器的内核数量进行检测。
可选地,其中,启动模块进一步用于:对上述多个处理器中的每一个内核执行内核字长检测;
对上述多个处理器中的每一个内核执行MISA检测。
图8示出了本发明提供的另一个多核调试方法装置的装置示意图。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为设备、方法或计算机可读存储介质。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“设备”。
在一些可能的实施方式中,本发明的多核调试装置可以至少包括一个或多个处理器、以及至少一个存储器。其中,上述存储器存储有程序,当上述程序被上述处理器执行时,使得上述处理器执行如图2所示的步骤:
201:响应于多核调试装置的启动指令,与上述多核处理器的每一个内核建立调试关系;
202:调试关系建立之后,响应于第一预设事件,控制上述多核处理器中的指定内核暂停运行;
203:根据预设选核指令,控制上述内部调试模块切换当前调试核,以及根据上述内部调试模块获取切换后的上述当前调试核的调试信息。
此外,尽管附图中未示出,但本发明的上述程序被上述处理器执行时,还使得上述处理器执行上述示例性方法中描述的其他操作或步骤。
下面参照图8来描述根据本发明的这种实施方式的多核调试装置。图8显示的设备8仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,设备8可以以通用计算设备的形式表现,包括但不限于:至少一个处理器10、至少一个存储器20、连接不同设备组件的总线60。
总线60包括数据总线、地址总线和控制总线。
存储器20可以包括易失性存储器,例如随机存取存储器(RAM)21和/或高速缓存存储器22,还可以进一步包括只读存储器(ROM)23。
存储器20还可以包括程序模块24,这样的程序模块24包括但不限于:操作设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
设备8还可以与一个或多个外部设备2(例如键盘、指向设备、蓝牙设备等)通信,也可与一个或者多个其他设备进行通信。这种通信可以通过输入/输出(I/O)接口40进行,并在显示单元30上进行显示。并且,设备1还可以通过网络适配器50与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器50通过总线60与设备1中的其它模块通信。应当明白,尽管图中未示出,但可以结合设备1使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID设备、磁带驱动器以及数据备份存储设备等。
如图9所示,本发明的各个方面还可以实现为一种计算机可读存储介质的形式,其包括程序代码,当上述程序代码在被处理器执行时,上述程序代码用于使上述处理器执行上面描述的方法。
上面描述的方法包括了上面的附图中示出和未示出的多个操作和步骤,这里将不再赘述。
上述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的设备、设备或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图9所示,描述了根据本发明的实施方式的计算机可读存储介质90,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的计算机可读存储介质不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行设备、设备或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种多核调试方法,应用于基于RISC-V指令集的多核处理器,所述多核处理器包括内部调试模块,其特征在于,所述方法包括:
响应于多核调试装置的启动指令,与所述多核处理器的每一个内核建立调试关系;
所述调试关系建立后,响应于第一预设事件,控制所述多核处理器中的指定内核暂停运行;
所述指定内核暂停运行之后,根据预设选核指令,控制所述内部调试模块切换当前调试核,以及根据所述内部调试模块获取切换后的所述当前调试核的调试信息。
2.根据权利要求1所述的方法,其特征在于,
所述根据预设选核指令控制所述内部调试模块切换当前调试核,以及根据所述内部调试模块获取切换后的所述当前调试核的调试信息包括:
接收所述预设选核指令,所述预设选核指令包括第一选核指令与第二选核指令;
根据所述第一选核指令将所述多核处理器中的第一内核设置为所述当前调试核,从而获取所述当前调试核的调试信息作为第一调试信息;
在获取所述第一调试信息之后,根据第二选核指令将所述当前调试核从所述第一内核切换为所述第二内核,并获取所述当前调试核的调试信息作为第二调试信息。
3.根据权利要求1所述的方法,其特征在于,所述第一预设事件包含以下中的至少一种:
接收到用于控制所述多核处理器中的任意一个内核进入调试模式的调试指令;
所述多核处理器中的任意一个内核在运行调试程序时撞到预设断点。
4.根据权利要求1所述的方法,其特征在于,所述根据预设选核指令控制所述内部调试模块切换当前调试核包括:
接收所述预设选核指令,所述预设选核指令包括目标内核的ID;
判断所述当前调试核的ID与所述目标内核的ID是否一致;
若所述目标内核的ID不同于所述当前调试核的ID,则向所述多核处理器的内部调试模块发送切换指令,所述内部调试模块响应于所述切换指令将所述当前调试核切换为所述目标内核;
若所述目标内核的ID与所述当前调试核的ID相同,则保留所述当前调试核;
其中,所述当前调试核的ID存储于所述多核处理器的内部调试模块中。
5.根据权利要求1所述的方法,其特征在于,所述响应于多核调试装置的启动指令,与所述多核处理器的每一个内核建立调试关系包括:
响应于所述多核调试装置的启动指令,对所述多核处理器执行第一检测;
控制所述多核处理器中的每一个内核暂停运行;
在所述多核处理器中的每一个内核均暂停运行之后,对所述多个处理器中的每一个内核执行第二检测,从而建立所述多核调试装置与所述多核处理器的每一个内核之间的调试关系。
6.根据权利要求1所述的方法,其特征在于,所述与所述多核处理器的每一个内核建立调试关系进一步包括
检测所述多核处理器中是否存在处于等待中断状态的内核;
若检测到所述多核处理器中存在至少一个处于所述等待中断状态的第三内核,则在对所述多核处理器进行所述多核调试时,忽略所述第三内核。
7.根据权利要求5所述的方法,其特征在于,所述对所述多核处理器执行第一检测包括:
对所述多核处理器的处理器类型进行检测;
对所述多核处理器的内核数量进行检测。
8.根据权利要求5所述的方法,其特征在于,所述对所述多个处理器中的每一个内核执行第二检测包括:
对所述多个处理器中的每一个内核执行内核字长检测;
对所述多个处理器中的每一个内核执行MISA检测。
9.一种多核调试装置,应用于基于RISC-V指令集的多核处理器,所述多核处理器包括内部调试模块,其特征在于,所述装置包括:
启动模块,用于响应于多核调试装置的启动指令,与所述多核处理器的每一个内核建立调试关系;
内核暂停模块,用于在所述调试关系建立后,响应于第一预设事件,控制所述多核处理器中的指定内核暂停运行;
内核切换模块,用于在所述指定内核暂停运行之后,根据预设选核指令,控制所述内部调试模块切换当前调试核,以及根据所述内部调试模块获取切换后的所述当前调试核的调试信息。
10.根据权利要求9所述的装置,其特征在于,
所述内核切换模块进一步用于:
接收所述预设选核指令,所述预设选核指令包括第一选核指令与第二选核指令;
根据所述第一选核指令将所述多核处理器中的第一内核设置为所述当前调试核,从而获取所述当前调试核的调试信息作为第一调试信息;
在获取所述第一调试信息之后,根据第二选核指令将所述当前调试核从所述第一内核切换为所述第二内核,并获取所述当前调试核的调试信息作为第二调试信息。
11.根据权利要求9所述的装置,其特征在于,所述第一预设事件包含以下中的至少一种:
接收到用于控制所述多核处理器中的任意一个内核进入调试模式的调试指令;
所述多核处理器中的任意一个内核在运行调试程序时撞到预设断点。
12.根据权利要求9所述的装置,其特征在于,所述内核切换模块进一步用于:
接收所述预设选核指令,所述预设选核指令包括目标内核的ID;
判断所述当前调试核的ID与所述目标内核的ID是否一致;
若所述目标内核的ID不同于所述当前调试核的ID,则向所述多核处理器的内部调试模块发送切换指令,所述内部调试模块响应于所述切换指令将所述当前调试核切换为所述目标内核;
若所述目标内核的ID与所述当前调试核的ID相同,则保留所述当前调试核;
其中,所述当前调试核的ID存储于所述多核处理器的内部调试模块中。
13.根据权利要求9所述的装置,其特征在于,所述启动模块进一步用于:
响应于所述多核调试装置的启动指令,对所述多核处理器执行第一检测;
控制所述多核处理器中的每一个内核暂停运行;
在所述多核处理器中的每一个内核均暂停运行之后,对所述多个处理器中的每一个内核执行第二检测,从而建立所述多核调试装置与所述多核处理器的每一个内核之间的调试关系。
14.根据权利要求9所述的装置,其特征在于,所述启动模块进一步用于:
检测所述多核处理器中是否存在处于等待中断状态的内核;
若检测到所述多核处理器中存在至少一个处于所述等待中断状态的第三内核,则在对所述多核处理器进行所述多核调试时,忽略所述第三内核。
15.根据权利要求13所述的装置,其特征在于,所述启动模块进一步用于:
对所述多核处理器的处理器类型进行检测;
对所述多核处理器的内核数量进行检测。
16.根据权利要求13所述的装置,其特征在于,所述启动模块进一步用于:
对所述多个处理器中的每一个内核执行内核字长检测;
对所述多个处理器中的每一个内核执行MISA检测。
17.一种多核调试装置,应用于基于RISC-V指令集的多核处理器,所述多核处理器包括内部调试模块,其特征在于,所述装置包括:
一个或者多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器实现:
响应于多核调试装置的启动指令,与所述多核处理器的每一个内核建立调试关系;
所述调试关系建立后,响应于第一预设事件,控制所述多核处理器中的指定内核暂停运行;
所述指定内核暂停运行之后,根据预设选核指令,控制所述内部调试模块切换当前调试核,以及根据所述内部调试模块获取切换后的所述当前调试核的调试信息。
18.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910071061.XA CN109726135B (zh) | 2019-01-25 | 2019-01-25 | 一种多核调试方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910071061.XA CN109726135B (zh) | 2019-01-25 | 2019-01-25 | 一种多核调试方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726135A true CN109726135A (zh) | 2019-05-07 |
CN109726135B CN109726135B (zh) | 2022-06-14 |
Family
ID=66299968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910071061.XA Active CN109726135B (zh) | 2019-01-25 | 2019-01-25 | 一种多核调试方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726135B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124792A (zh) * | 2019-12-20 | 2020-05-08 | 北京东土科技股份有限公司 | 一种多核调试方法、装置及存储介质 |
CN111708662A (zh) * | 2020-05-26 | 2020-09-25 | 新华三技术有限公司 | 调试方法及装置 |
CN113132263A (zh) * | 2020-01-15 | 2021-07-16 | 北京小米移动软件有限公司 | 内核处理器调度方法、内核处理器调度装置及存储介质 |
CN113608788A (zh) * | 2021-07-13 | 2021-11-05 | 芯来智融半导体科技(上海)有限公司 | 多核处理器调试方法、处理器、电子设备和存储介质 |
CN113609066A (zh) * | 2021-06-25 | 2021-11-05 | 深圳大学 | 一种基于Rust的多核RISCV-CPU模拟器 |
CN114116590A (zh) * | 2021-11-03 | 2022-03-01 | 中汽创智科技有限公司 | 数据获取方法、装置、车辆、存储介质和电子设备 |
CN114546751A (zh) * | 2022-04-25 | 2022-05-27 | 南方科技大学 | 内核空间调试方法及其装置、计算机设备、存储介质 |
CN114625639A (zh) * | 2022-03-03 | 2022-06-14 | 上海先楫半导体科技有限公司 | 一种基于片上系统的调试方法、系统以及芯片 |
CN116340188A (zh) * | 2023-05-26 | 2023-06-27 | 深流微智能科技(深圳)有限公司 | Gpu芯片渲染任务的调试方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073565A (zh) * | 2010-12-31 | 2011-05-25 | 华为技术有限公司 | 触发操作方法、多核分组调试方法、装置及系统 |
CN102880536A (zh) * | 2012-09-07 | 2013-01-16 | 杭州中天微系统有限公司 | 一种多核处理器的jtag调试方法 |
CN103544105A (zh) * | 2013-10-24 | 2014-01-29 | 大唐移动通信设备有限公司 | 多核处理器中基于vcpu的调试方法和装置 |
CN103729288A (zh) * | 2013-11-01 | 2014-04-16 | 华中科技大学 | 一种嵌入式多核环境下应用程序的调试方法 |
WO2014166526A1 (de) * | 2013-04-09 | 2014-10-16 | Siemens Aktiengesellschaft | Mehrkern-prozessorsystem mit fehleranalysefunktion |
CN105224454A (zh) * | 2015-09-25 | 2016-01-06 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
CN105446933A (zh) * | 2014-09-26 | 2016-03-30 | 扬智科技股份有限公司 | 多核心处理器的调试系统与调试方法 |
-
2019
- 2019-01-25 CN CN201910071061.XA patent/CN109726135B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073565A (zh) * | 2010-12-31 | 2011-05-25 | 华为技术有限公司 | 触发操作方法、多核分组调试方法、装置及系统 |
CN102880536A (zh) * | 2012-09-07 | 2013-01-16 | 杭州中天微系统有限公司 | 一种多核处理器的jtag调试方法 |
WO2014166526A1 (de) * | 2013-04-09 | 2014-10-16 | Siemens Aktiengesellschaft | Mehrkern-prozessorsystem mit fehleranalysefunktion |
CN103544105A (zh) * | 2013-10-24 | 2014-01-29 | 大唐移动通信设备有限公司 | 多核处理器中基于vcpu的调试方法和装置 |
CN103729288A (zh) * | 2013-11-01 | 2014-04-16 | 华中科技大学 | 一种嵌入式多核环境下应用程序的调试方法 |
CN105446933A (zh) * | 2014-09-26 | 2016-03-30 | 扬智科技股份有限公司 | 多核心处理器的调试系统与调试方法 |
CN105224454A (zh) * | 2015-09-25 | 2016-01-06 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124792A (zh) * | 2019-12-20 | 2020-05-08 | 北京东土科技股份有限公司 | 一种多核调试方法、装置及存储介质 |
CN113132263A (zh) * | 2020-01-15 | 2021-07-16 | 北京小米移动软件有限公司 | 内核处理器调度方法、内核处理器调度装置及存储介质 |
CN113132263B (zh) * | 2020-01-15 | 2024-02-13 | 北京小米移动软件有限公司 | 内核处理器调度方法、内核处理器调度装置及存储介质 |
CN111708662B (zh) * | 2020-05-26 | 2023-09-29 | 新华三技术有限公司 | 调试方法及装置 |
CN111708662A (zh) * | 2020-05-26 | 2020-09-25 | 新华三技术有限公司 | 调试方法及装置 |
CN113609066A (zh) * | 2021-06-25 | 2021-11-05 | 深圳大学 | 一种基于Rust的多核RISCV-CPU模拟器 |
CN113609066B (zh) * | 2021-06-25 | 2024-04-12 | 深圳大学 | 一种基于Rust的多核RISCV-CPU模拟器 |
CN113608788A (zh) * | 2021-07-13 | 2021-11-05 | 芯来智融半导体科技(上海)有限公司 | 多核处理器调试方法、处理器、电子设备和存储介质 |
CN114116590B (zh) * | 2021-11-03 | 2023-10-31 | 中汽创智科技有限公司 | 数据获取方法、装置、车辆、存储介质和电子设备 |
CN114116590A (zh) * | 2021-11-03 | 2022-03-01 | 中汽创智科技有限公司 | 数据获取方法、装置、车辆、存储介质和电子设备 |
CN114625639A (zh) * | 2022-03-03 | 2022-06-14 | 上海先楫半导体科技有限公司 | 一种基于片上系统的调试方法、系统以及芯片 |
CN114625639B (zh) * | 2022-03-03 | 2024-05-28 | 上海先楫半导体科技有限公司 | 一种基于片上系统的调试方法、系统以及芯片 |
CN114546751B (zh) * | 2022-04-25 | 2022-07-26 | 南方科技大学 | 内核空间调试方法及其装置、计算机设备、存储介质 |
CN114546751A (zh) * | 2022-04-25 | 2022-05-27 | 南方科技大学 | 内核空间调试方法及其装置、计算机设备、存储介质 |
CN116340188A (zh) * | 2023-05-26 | 2023-06-27 | 深流微智能科技(深圳)有限公司 | Gpu芯片渲染任务的调试方法及系统 |
CN116340188B (zh) * | 2023-05-26 | 2023-08-04 | 深流微智能科技(深圳)有限公司 | Gpu芯片渲染任务的调试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109726135B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726135A (zh) | 一种多核调试方法、装置及计算机可读存储介质 | |
US8572438B2 (en) | N-way runtime interoperative debugging | |
CN105209925A (zh) | 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性 | |
CN105446933B (zh) | 多核心处理器的调试系统与调试方法 | |
CN108170494B (zh) | 一种用于智能终端的应用程序启动方法及启动系统 | |
CN102346235A (zh) | 一种面向硬件设备功能的自动测试系统及方法 | |
US8117430B2 (en) | Boot test system and method thereof | |
CN101706750A (zh) | 一种基于嵌入式模拟器的测试桩获取方法 | |
CN113960391B (zh) | 存储介质异常掉电测试装置及方法 | |
CN110673936A (zh) | 编排业务的断点续作方法、装置、存储介质及电子设备 | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
CN110941520B (zh) | 基于二取二安全控制单元的硬件功能测试系统及方法 | |
CN105740139A (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
TW201942736A (zh) | 函式選取方法和伺服器 | |
CN100386733C (zh) | 芯片电子硬件上具有中止执行能力的除错支援单元及方法 | |
CN101706752B (zh) | 一种软件错误现场定位的方法及装置 | |
CN117667672A (zh) | 一种用于工业软件的Python代码远程调试方法及系统 | |
CN109739760B (zh) | 一种代码调测测试方法及装置、存储介质 | |
CN108536586B (zh) | Android移动终端的信息获取方法、设备以及系统 | |
CN114116034B (zh) | 分布式刷机方法和装置 | |
JP2008135008A (ja) | プログラムモジュール検証方式 | |
CN100403275C (zh) | 应用于固件程序除错的微处理器与方法 | |
CN109144849A (zh) | 一种嵌入式软件调测方法 | |
CN110515849B (zh) | 一种断点调试方法、装置、系统、设备及存储介质 | |
JPH10240568A (ja) | エミュレータ装置およびエミュレーション方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201203 Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094 Applicant after: Canaan Bright Sight Co.,Ltd. Address before: 310000, room 12, building 4, building nine, No. nine, 1203 Ring Road, Hangzhou, Zhejiang, Jianggan District Applicant before: Hangzhou Canaan Creative Information Technology Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |