CN116541310B - Riscv处理器集成的调试开发系统 - Google Patents
Riscv处理器集成的调试开发系统 Download PDFInfo
- Publication number
- CN116541310B CN116541310B CN202310814162.8A CN202310814162A CN116541310B CN 116541310 B CN116541310 B CN 116541310B CN 202310814162 A CN202310814162 A CN 202310814162A CN 116541310 B CN116541310 B CN 116541310B
- Authority
- CN
- China
- Prior art keywords
- debugging
- debug
- window
- command
- end module
- 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
Links
- 238000011161 development Methods 0.000 title claims abstract description 34
- 238000004891 communication Methods 0.000 claims abstract description 23
- 230000000007 visual effect Effects 0.000 claims abstract description 15
- 238000004088 simulation Methods 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 35
- 230000001360 synchronised effect Effects 0.000 claims description 21
- 230000002093 peripheral effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及处理器调试技术领域,本发明公开了一种RISCV处理器集成的调试开发系统,调试开发系统包括集成的前端模块、后端模块以及通信模块;前端模块用于生成调试请求,并将调试请求通过通信模块发送至后端模块;其中,前端模块包括代码编辑器、可视化操作组件及展示组件;后端模块用于接收调试请求,根据调试请求的请求类型触发相应的调试事件,再将调试事件转换成调试命令,并根据调试命令通过OpenOCD调试通路下发至待调试对象进行相应的调试模拟,以得到调试结果,再将调试结果通过通信模块反馈到展示组件。本发明的RISCV处理器集成的调试开发系统的调试协调性好,便于进行高效和有序的调试分析。
Description
技术领域
本发明涉及处理器调试技术领域,尤其是涉及一种RISCV处理器集成的调试开发系统。
背景技术
RISCV是一个基于精简指令集(RISC)原则的开源指令集架构,目前已经成为流行的开源处理器指令集体系。在开发针对RISCV架构的程序时,开发人员需要在PC机(又称为宿主机)上完成应用程序的编辑、编译、链接,调试运行等过程,由于RISCV指令体系和PC机差异很大,所以需要引用多种交叉编译和调试工具,完成交叉编译和交叉调试过程。目前,在开源社区已经有多种针对RISCV架构的交叉编译和调试工具,综合使用不同的工具,可以帮助工程师提前发现程序中的问题。
Visual Studio Code(以下简称Vscode)是一款由微软开发且跨平台的免费源代码编辑器,现在已经成为软件工程师编辑,查看代码的流行工具,它支持用户安装插件进行功能扩展。
然而,工程师在调试RISCV处理器的程序时,要针对代码编译,程序链接,程序调试等过程运行不同的开发工具。这些开发工具基本使用命令行启动,每个工具独立运行在一个命令行窗口,每次进行调试定位问题后,需要按照步骤重新启动命令行窗口。工程师也需要在代码编辑工具以及各种交叉工具的命令行窗口中,来回切换当前窗口来查看内容和打印信息。RISCV的各个交叉编译和调试工具独立工作,每次调试过程要从头开始时,需要重新启动各个工具,耗时耗力,并且有些调试工具的启动过程有先后顺序限制,重启操作容易出错。调试分析时,工程师需要来回切换窗口查看打印信息,无法将注意力集中在代码编辑窗口、分析和定位程序问题的效率受到严重影响。
发明内容
本发明实施例的目的在于提供一种RISCV处理器集成的调试开发系统,以解决现有的RISCV处理器的软件代码多核协同麻烦且调试开发效率低的问题。
为了解决上述技术问题,本发明实施例提供了一种RISCV处理器集成的调试开发系统,所述调试开发系统包括集成的前端模块、后端模块以及将所述前端模块与所述后端模块信号连接的通信模块;
所述前端模块用于生成调试请求,并将所述调试请求通过所述通信模块发送至所述后端模块;其中,所述前端模块包括代码编辑器、可视化操作组件及展示组件,所述代码编辑器用于编辑代码,所述可视化操作组件用于进行可视化和同步异步切换调试操作,所述展示组件用于实现相应的窗口展示;
所述后端模块用于接收所述调试请求,根据所述调试请求的请求类型触发相应的调试事件,再将所述调试事件转换成调试命令,并根据所述调试命令通过OpenOCD调试通路下发至待调试对象进行相应的调试模拟,以得到调试结果,再将所述调试结果通过所述通信模块反馈到所述展示组件。
优选的,所述后端模块包括调试会话和调试工具;所述调试会话用于接收所述调试请求,并根据所述调试请求控制所述调试工具的工作状态,所述调试工具用于将所述调试命令下发到所述待调试对象。
优选的,所述调试会话包括调试器前台、调试适配器和调试器后台;所述调试工具包括调试器GDB和OpenOCD;
所述调试器前台用于处理所述调试请求,并根据所述调试请求触发相应的所述调试事件;
所述调试适配器用于将所述调试事件进行响应执行,并根据相应的调试协议将所述调试事件转换成下发给所述调试器GDB的调试命令;
所述调试器GDB用于接收下发的所述调试命令,通过所述OpenOCD在所述待调试对象上执行该命令,并捕获命令执行结果,反馈给所述调试适配器;
所述调试器后台用于根据所述调试命令管理所述OpenOCD和所述调试器GDB的进程。
优选的,所述展示组件包括调试窗口、终端窗口、汇编代码展示窗口、内存展示窗口、寄存器展示窗口和外设展示窗口。
优选的,所述可视化操作组件包括调试按钮、同步异步切换按钮及右键菜单操作项;
所述调试按钮用于发送所述调试请求到所述后端模块;
所述同步异步切换按钮用于使能同步或异步调试;启动调试任务时,可以指定某些核间使用SMP调试或AMP调试;其中,当只有架构相同的核才可使用所述SMP调试;
所述右键菜单用于实现文件管理,程序编译、调试、运行及工程设置操作;其中,所述工程设置中,可设置每个核的架构和指令集详细参数。
优选的,所述前端模块还包括插件注册子模块;所述插件注册子模块用于进行插件注册并输出至所述展示组件。
优选的,所述插件注册子模块包括窗口初始化单元、注册命令单元、绑定单元、配置单元以及绑定窗口单元;
所述窗口初始化单元,用于对窗口组件进行初始化;
所述注册命令单元,用于将定义好的内容窗口和操作窗口内容进行刷新、数据格式转换和数值复制的命令注册至Vscode运行环境中;
所述绑定单元,用于在插件定义调试开始、调试结束和调试重启的调试时间点的执行逻辑,并将其绑定在所述插件的生命周期里;
所述配置单元,用于根据调试运行环境和用户预先设置的参数对所述调试工具、调试过程、调试命令和调试断点进行初始化配置;
所述绑定窗口单元,用于绑定窗口交互组件和调试事件,且窗口内容可以根据所述调试事件进行更新。
优选的, 所述展示组件还包括汇编代码展示窗口、内存展示窗口、寄存器展示窗口和外设展示窗口。
优选的,所述通信模块为Socket通信接口。
优选的, 当调试多核程序时,通过采用1个GDB调试服务+N个线程方式实现多核SMP调试;其中,一个线程对应所述SMP调试的一个核,或者一个任务;
采用M个GDB调试服务实现多核AMP调试;其中,一个GDB调试服务对应一个核;
采用M个GDB调试服务+N个线程方式实现多核AMP调试+SMP调试;其中,一个GDB调试服务对应一种异构核,一个线程对应SMP调试的一个核,或者一个任务;
其中,N和M均为正整数。
优选的,启动调试时,根据所述工程设置的核参数,将配置相同的核组成SMP调试模式;配置不同的核组成AMP调试模式。
优选的,在进行同步异步调试切换时,调试栏中显示为有按钮同步;根据调试需要,可选中/去选中该按钮状态,切换同步/异步调试状态;
其中,同步调试时,将调试操作命令下发给所有核调试模块,使得所有核均执行相同操作;异步调试时,只将调试操作命令下发给当前选择的核,并使其执行对应操作。
优选的,所述SMP调试,用于支持每个CPU的内核运行同一操作系统实例,此时配置为每个线程对应调试一个系统任务。
与现有技术相比,本发明中的RISCV处理器集成的调试开发系统,可实现同构和异构多核的同步或者异步调试,并且支持调试实时操作系统如FreeRTOS的任务。另外,通过将代码编辑、编译链接和调试运行的功能集成于Vscode开发调试平台,协同运行交叉编译和调试工具,同时,将开发过程的信息和输出内容汇总于Vscode窗口,可以提高工程师开发RISCV程序的效率。另外,集成调试开发平台降低了工程师开发的上手难度,工程师不用关心繁杂的命令行窗口,可以更快地聚焦于程序开发过程中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1为本发明实施列提供的RISCV处理器集成的调试开发系统的模块图;
图2为本发明实施列提供的前端模块的模块图;
图3为本发明实施列提供的插件注册子模块的模块图;
图4为本发明实施列提供的后端模块的模块图;
图5为本发明实施列提供的展示组件的模块图;
图6为本发明实施列提供的SMP调试的同步异步切换示意图一;
图7为本发明实施列提供的SMP调试的同步异步切换示意图二;
图8为本发明实施列提供的AMP调试的同步异步切换示意图一;
图9为本发明实施列提供的AMP调试的同步异步切换示意图二。
图中,100、RISCV处理器集成的调试开发系统,1、前端模块,11、代码编辑器,12、可视化操作组件,13、展示组件,131、调试窗口,132、终端窗口,133、汇编代码展示窗口,134、内存展示窗口,135、寄存器展示窗口,136、外设展示窗口,14、插件注册子模块,141、窗口初始化单元,142、注册命令单元,143、绑定单元,144、配置单元,145、绑定窗口单元,2、后端模块,21、调试会话,211、调试适配器,212、调试器后台,213、调试器前台,22、调试工具,221、调试器GDB,222、OpenOCD, 3、通信模块,4、RISCV模拟器。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参阅附图1-图5所示,本发明实施例提供了一种RISCV处理器集成的调试开发系统100,所述调试开发系统100包括集成的前端模块1、后端模块2以及将所述前端模块1与所述后端模块2信号连接的通信模块3。
所述前端模块1用于生成调试请求,并将所述调试请求通过所述通信模块3发送至所述后端模块2;其中,所述前端模块1包括代码编辑器11、可视化操作组件12及展示组件13,所述代码编辑器11用于编辑代码,所述可视化操作组件12用于进行可视化和同步异步切换调试操作,所述展示组件13用于实现相应的窗口展示;
本实施例中,所述展示组件13包括调试窗口131、终端窗口132、汇编代码展示窗口133、内存展示窗口134、寄存器展示窗口135和外设展示窗口136。
插件定义了汇编代码展示窗口133、内存展示窗口134、寄存器展示窗口135和外设展示窗口136,其中,汇编代码展示窗口133、内存展示窗口134、寄存器展示窗口135和外设展示窗口136分别用于汇编代码、设置内存、寄存器和外设等内容。
可选的,展示组件13不仅仅限于上述的窗口,还可以包括显示窗口、数据处理窗口等,具体根据实际需求进行选择,此处不再一一描述。
本实施例中,所述可视化操作组件12包括调试按钮、同步异步切换按钮及右键菜单操作项;
所述调试按钮用于发送所述调试请求到所述后端模块;
所述同步异步切换按钮用于使能同步或异步调试;启动调试任务时,可以指定某些核间使用SMP调试或AMP调试;其中,当只有架构相同的核才可使用所述SMP调试;
所述右键菜单用于实现文件管理,程序编译、调试、运行及工程设置操作;其中,所述工程设置中,可设置每个核的架构和指令集详细参数。
所述后端模块2用于接收所述调试请求,根据所述调试请求的请求类型触发相应的调试事件,再将所述调试事件转换成调试命令,并根据所述调试命令通过OpenOCD调试通路下发至待调试对象进行相应的调试模拟,以得到调试结果,再将所述调试结果通过所述通信模块3反馈到所述展示组件。
其中,OpenOCD调试通路是基于开源项目,添加定制功能,实现GDB服务和待调试对象间的信号传输。
其中,待调试对象包括RISCV模拟器、FPGA和IC芯片等。
具体的,在芯片设计之前,可使用RISCV模拟器实现软件开发和调试;芯片设计阶段可以使用FPGA作为载体运行或调试软件;IC芯片制作完成后,即可基于IC芯片实现软件开发和调试。
具体的,通过将代码编辑、编译链接和调试运行的功能集成于Vscode开发调试平台,协同运行交叉编译和调试工具22,同时,将开发过程的信息和输出内容汇总于Vscode窗口,可以提高工程师开发RISCV程序的效率。另外,集成调试开发平台降低了工程师开发的上手难度,工程师不用关心繁杂的命令行窗口,可以更快地聚焦于程序开发过程中。
本实施例中,所述后端模块2包括调试会话21和调试工具22;所述调试会话21用于接收所述调试请求,并根据所述调试请求控制所述调试工具22的工作状态,所述调试工具22用于将所述调试命令下发到所述RISCV模拟器4;所述RISCV模拟器4用于接收所述调试命令并根据所述调试命令对所述待调试对象进行对应的调试,得到所述调试结果。通过调试会话21定义调试会话21框架,调试会话21统一管理调试工具22的启动、停止,以及对调试工具22的状态进行监控。
本实施例中,所述调试会话21包括调试器前台213、调试适配器211和调试器后台212;所述调试工具22包括调试器GDB221和OpenOCD 222;
所述调试器前台213用于处理所述调试请求,并根据所述调试请求触发相应的所述调试事件;
所述调试适配器211用于将所述调试事件进行响应执行,并根据相应的调试协议将所述调试事件转换成下发给所述调试器GDB221的调试命令;
所述调试器GDB221用于接收下发的所述调试命令,通过所述OpenOCD222在所述待调试对象上执行该命令,并捕获命令执行结果,反馈给所述调试适配器211;
所述调试器后台212用于根据所述调试命令管理所述OpenOCD 222和所述调试器GDB221的进程。
在实际实施过程中,通过调试窗口131连接待调试对象的数据,通过所述调试器后台212管理所述OpenOCD 222和所述RISCV模拟器4进程。通过所述调试器前台213处理所述调试请求,并根据所述调试请求触发相应的所述调试事件;所述调试适配器211将所述调试事件进行响应执行,并根据相应的调试协议将所述调试事件转换成下发给所述调试器GDB221的调试命令;所述调试器GDB221接收下发的所述调试命令并进行调试后发送到所述OpenOCD 222;所述OpenOCD 222通过调试端口响应所述调试器GDB221发送的所述调试命令,并下发至所述RISCV模拟器4执行; RISCV模拟器4执行完成后,将调试结果回传至终端窗口132或汇编代码展示窗口133或内存展示窗口134或寄存器展示窗口135或外设展示窗口136等展示组件;终端窗口132连接终端设备,通过终端设备显示调试结果,完成当前调试操作。
其中,后端模块2主要包含调试会话21的管理,在调试会话21中响应前端模块1的调试请求,通过调试器前台213和调试器后台212实现调试命令的下发,并且通过通信接口将程序执行信息和打印输出展示于终端窗口132等展示组件。
本实施例中,所述前端模块1还包括插件注册子模块14;所述插件注册子模块14用于进行插件注册并输出至所述展示组件13。插件注册子模块14主要完成插件注册流程,调用Vscode可视化组件接口创建调试过程中需要的展示组件13,在注册过程中初始化窗口,命令,调试参数和事件等。
本实施例中,所述插件注册子模块14包括窗口初始化单元141、注册命令单元142、绑定单元143、配置单元144以及绑定窗口单元145;
所述窗口初始化单元141,用于对窗口组件进行初始化;
所述注册命令单元142,用于将定义好的内容窗口和操作窗口内容进行刷新、数据格式转换和数值复制的命令注册至Vscode运行环境中;
所述绑定单元143,用于在插件定义调试开始、调试结束和调试重启的调试时间点的执行逻辑,并将其绑定在所述插件的生命周期里;其中,生命周期表示软件的产生直到报废或停止使用的生命周期。
所述配置单元144,用于根据调试运行环境和用户预先设置的参数对所述调试工具22、调试过程、调试命令和调试断点进行初始化配置;
所述绑定窗口单元145,用于绑定窗口交互组件和调试事件,且窗口内容可以根据所述调试事件进行更新。
本实施例中,所述通信模块3为Socket通信接口。Socket通信接口是一种即时通信接口,用于进程间信息交互。
本实施例中,当调试多核程序时,采用1个GDB调试服务+N个线程方式实现多核SMP调试。可选地,一个线程对应SMP调试的一个核,或者一个任务;
采用M个GDB调试服务实现多核AMP调试。其中,一个GDB调试服务对应一个核;
采用M个GDB调试服务+N个线程方式实现多核AMP+SMP调试。其中,一个GDB调试服务对应一种异构核。可选地,一个线程对应SMP的一个核,或者一个任务;其中,N和M均为正整数。
优选的,在进行同步异步调试切换时,调试栏中显示为有按钮同步;根据调试需要,可选中/去选中该按钮状态,切换同步/异步调试状态;
其中,同步调试时,将调试操作命令下发给所有核调试模块,使得所有核均执行相同操作;异步调试时,只将调试操作命令下发给当前选择的核,并使其执行对应操作;
启动调试时,根据工程设置的核参数,将配置相同的核组成SMP调试模式;配置不同的核组成AMP调试模式。
优选的,若其中某个GDB调试服务对应的核心上,运行实时操作系统,如FreeRTOS,可创建SMP模式调试。此时,一个线程对应一个系统任务。
示例性的,本发明实施例提供的RISCV处理器集成的调试开发系统的使用方法如下:
S1、通过所述前端模块1用于生成调试请求(如同构同步异步切换按钮改变同步或异步状态),并将所述调试请求发送至所述后端模块2;
S2、通过所述后端模块2接收所述调试请求,并根据所述调试请求的请求类型触发相应的调试事件,再将所述调试事件转换成调试命令,并根据所述调试命令对所述待调试对象进行相应的调试模拟,以得到调试结果,再将所述调试结果通过所述通信模块3反馈到所述展示组件13;
S3、通过所述展示组件13将调试结果进行显示。
具体的,本发明实施例提供的RISCV处理器集成的调试开发系统100的调试过程如下:
1、SMP(Symmetrical Multi Processing)调试:对多个内存、资源共享的CPU且每个CPU的结构都一样的芯片架构的调试称为SMP调试。其中,GDB Process表示调试器服务进程,OpenOCD表示为调试通路软体,Debug Module表示调试模块,Spike/FPGA表示待调试对象。
当调试多核程序时,本发明采用1个GDB调试服务个线程/>方式实现多核SMP调试。其中,一个线程对应一个核,或者一个任务。如图6为本发明实施列提供的SMP调试的同步异步切换示意图一。
当调试FreeRTOS(免费实时操作系统)时,本发明可以通过相应的设置,采用1个GDB调试服务+N个线程方式实现系统多任务调试。此时,一个线程对应FreeRTOS一个任务。如图7为本发明实施列提供的SMP调试的同步异步切换示意图二。
2、AMP(Asymmetrical Multi-processing)调试:通过提供多个CPU,且各个CPU在架构上可以不一样,每个CPU内核运行一个独立的操作系统或同一操作系统的独立实例,每个CPU拥有自己的独立资源。这种结构最大的特点在于不共享资源。对此类架构的芯片的软体调试称为AMP调试。
支持不同架构的核运行不同的ELF文件,各个所述ELF文件的启动配置不尽不同,采用不同的GDB调试服务。如图8为本发明实施列提供的AMP调试的同步异步切换示意图一。
若其中某个核心,或者某些相同架构的核心上,运行FreeRTOS,可以在对应的GDB调试服务下创建SMP模式,调试FreeRTOS的任务。FreeRTOS为一种常见的嵌入式实时操作系统。图9为本发明实施列提供的AMP调试的同步异步切换示意图二。
本发明中的RISCV处理器集成的调试开发系统,提出了一种包含界面、命令、支持SMP/AMP的同步异步调试方式;可实现同构和异构多核的同步或者异步调试,并且支持调试实时操作系统如FreeRTOS的任务。同时,通过将代码编辑、编译链接和调试运行的功能集成于Vscode开发调试平台,协同运行交叉编译和调试工具,同时,将开发过程的信息和输出内容汇总于Vscode窗口,可以提高工程师开发RISCV程序的效率。另外,集成调试开发平台降低了工程师开发的上手难度,工程师不用关心繁杂的命令行窗口,可以更快地聚焦于程序开发过程中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种RISCV处理器集成的调试开发系统,其特征在于,所述调试开发系统包括集成的前端模块、后端模块以及将所述前端模块与所述后端模块信号连接的通信模块;
所述前端模块用于生成调试请求,并将所述调试请求通过所述通信模块发送至所述后端模块;其中,所述前端模块包括代码编辑器、可视化操作组件及展示组件,所述代码编辑器用于编辑代码,所述可视化操作组件用于进行可视化和同步异步切换调试操作,所述展示组件用于实现相应的窗口展示;
所述后端模块用于接收所述调试请求,根据所述调试请求的请求类型触发相应的调试事件,再将所述调试事件转换成调试命令,并根据所述调试命令通过OpenOCD调试通路下发至待调试对象进行相应的调试模拟,以得到调试结果,再将所述调试结果通过所述通信模块反馈到所述展示组件;
所述后端模块包括调试会话和调试工具;所述调试会话用于接收所述调试请求,并根据所述调试请求控制所述调试工具的工作状态,所述调试工具用于将所述调试命令下发到所述待调试对象;
所述调试会话包括调试器前台、调试适配器和调试器后台;所述调试工具包括调试器GDB和OpenOCD;
所述调试器前台用于处理所述调试请求,并根据所述调试请求触发相应的所述调试事件;
所述调试适配器用于将所述调试事件进行响应执行,并根据相应的调试协议将所述调试事件转换成下发给所述调试器GDB的调试命令;
所述调试器GDB用于接收下发的所述调试命令,通过所述OpenOCD在所述待调试对象上执行该命令,并捕获命令执行结果,反馈给所述调试适配器;
所述调试器后台用于根据所述调试命令管理所述OpenOCD和所述调试器GDB的进程;
所述可视化操作组件包括调试按钮、同步异步切换按钮及右键菜单操作项;
所述调试按钮用于发送所述调试请求到所述后端模块;
所述同步异步切换按钮用于使能同步或异步调试;启动调试任务时,指定某些核间使用SMP调试或AMP调试;其中,当只有架构相同的核才可使用所述SMP调试;
所述右键菜单用于实现文件管理,程序编译、调试、运行及工程设置操作;其中,所述工程设置中,可设置每个核的架构和指令集详细参数;
当调试多核程序时,通过采用1个GDB调试服务+N个线程方式实现多核SMP调试;其中,一个线程对应所述SMP调试的一个核,或者一个任务;
采用M个GDB调试服务实现多核AMP调试;其中,一个所述GDB调试服务对应一个核;
采用M个GDB调试服务+N个线程方式实现多核AMP调试+SMP调试;其中,一个所述GDB调试服务对应一种异构核,一个线程对应所述SMP调试的一个核,或者一个任务;
其中,N和M均为正整数。
2.如权利要求1所述的RISCV处理器集成的调试开发系统,其特征在于,所述展示组件包括调试窗口、终端窗口、汇编代码展示窗口、内存展示窗口、寄存器展示窗口和外设展示窗口。
3.如权利要求1所述的RISCV处理器集成的调试开发系统,其特征在于,所述前端模块还包括插件注册子模块;所述插件注册子模块用于进行插件注册并输出至所述展示组件。
4.如权利要求3所述的RISCV处理器集成的调试开发系统,其特征在于,所述插件注册子模块包括窗口初始化单元、注册命令单元、绑定单元、配置单元以及绑定窗口单元;
所述窗口初始化单元,用于对窗口组件进行初始化;
所述注册命令单元,用于将定义好的内容窗口和操作窗口内容进行刷新、数据格式转换和数值复制的命令注册至Vscode运行环境中;
所述绑定单元,用于在插件定义调试开始、调试结束和调试重启的调试时间点的执行逻辑,并将其绑定在所述插件的生命周期里;
所述配置单元,用于根据调试运行环境和用户预先设置的参数对所述调试工具、调试过程、调试命令和调试断点进行初始化配置;
所述绑定窗口单元,用于绑定窗口交互组件和调试事件,且窗口内容可以根据所述调试事件进行更新。
5.如权利要求1所述的RISCV处理器集成的调试开发系统,其特征在于,所述通信模块为Socket通信接口。
6.如权利要求1所述的RISCV处理器集成的调试开发系统,其特征在于,启动调试时,根据所述工程设置的核参数,将配置相同的核组成SMP调试模式;配置不同的核组成AMP调试模式。
7.如权利要求1所述的RISCV处理器集成的调试开发系统,其特征在于,在进行同步异步调试切换时,调试栏中显示为有按钮同步;根据调试需要,可选中/去选中该按钮状态,切换同步/异步调试状态;
其中,同步调试时,将调试操作命令下发给所有核调试模块,使得所有核均执行相同操作;异步调试时,只将调试操作命令下发给当前选择的核,并使其执行对应操作。
8.如权利要求1所述的RISCV处理器集成的调试开发系统,其特征在于,所述SMP调试,用于支持每个CPU的内核运行同一操作系统实例,此时配置为每个线程对应调试一个系统任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310814162.8A CN116541310B (zh) | 2023-07-05 | 2023-07-05 | Riscv处理器集成的调试开发系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310814162.8A CN116541310B (zh) | 2023-07-05 | 2023-07-05 | Riscv处理器集成的调试开发系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541310A CN116541310A (zh) | 2023-08-04 |
CN116541310B true CN116541310B (zh) | 2023-09-01 |
Family
ID=87445617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310814162.8A Active CN116541310B (zh) | 2023-07-05 | 2023-07-05 | Riscv处理器集成的调试开发系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541310B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789413A (zh) * | 2011-05-23 | 2012-11-21 | 同济大学 | 一种并行程序的调试系统及方法 |
CN108897689A (zh) * | 2018-07-03 | 2018-11-27 | 深圳Tcl数字技术有限公司 | 嵌入式应用程序仿真调试方法、设备以及可读存储介质 |
CN111124887A (zh) * | 2019-11-25 | 2020-05-08 | 四川长虹电器股份有限公司 | 一种risc-v debug系统的仿真验证方法 |
CN115221053A (zh) * | 2022-07-15 | 2022-10-21 | 成都穿山云甲科技有限公司 | 一种基于以太网的dsp调试架构 |
CN115454881A (zh) * | 2022-11-10 | 2022-12-09 | 北京红山微电子技术有限公司 | Risc-v架构的调试系统及调试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446933B (zh) * | 2014-09-26 | 2018-04-24 | 扬智科技股份有限公司 | 多核心处理器的调试系统与调试方法 |
-
2023
- 2023-07-05 CN CN202310814162.8A patent/CN116541310B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789413A (zh) * | 2011-05-23 | 2012-11-21 | 同济大学 | 一种并行程序的调试系统及方法 |
CN108897689A (zh) * | 2018-07-03 | 2018-11-27 | 深圳Tcl数字技术有限公司 | 嵌入式应用程序仿真调试方法、设备以及可读存储介质 |
CN111124887A (zh) * | 2019-11-25 | 2020-05-08 | 四川长虹电器股份有限公司 | 一种risc-v debug系统的仿真验证方法 |
CN115221053A (zh) * | 2022-07-15 | 2022-10-21 | 成都穿山云甲科技有限公司 | 一种基于以太网的dsp调试架构 |
CN115454881A (zh) * | 2022-11-10 | 2022-12-09 | 北京红山微电子技术有限公司 | Risc-v架构的调试系统及调试方法 |
Non-Patent Citations (1)
Title |
---|
基于RISC-V架构的SoC设计与实现;赵坤;中国优秀硕士学位论文全文数据库 (信息科技辑)(第11期);第1-65页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116541310A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399897A (zh) | 基于kubernetes的应用发布方法以及系统 | |
US9032366B2 (en) | Method and apparatus for performing configuration of aeronautical system in compliance with the ARINC 653 standard | |
CN103914315A (zh) | 驱动程序的配置方法 | |
WO2007028227A1 (en) | Integrating different programming language debug tools for observing thread execution | |
JPH0512025A (ja) | オブジエクト指向言語間インタフエース実現方法 | |
CN102902620A (zh) | 基于gdb的异构计算调试环境的实现系统 | |
CN110727429A (zh) | 一种前端页面的生成方法、装置及设备 | |
CN112506854A (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN109507991B (zh) | 一种双轴伺服控制平台调试系统及方法 | |
CN116541310B (zh) | Riscv处理器集成的调试开发系统 | |
CN110764864A (zh) | 一种基于Terraform的可视化资源编排方法 | |
CN117667075A (zh) | 基于脚手架工具的软件开发方法、系统、设备及存储介质 | |
JPH05298052A (ja) | ウインドウシステムおよびイベント処理方法 | |
CN112486492A (zh) | 页面生成方法、装置、存储介质及电子设备 | |
CN100349121C (zh) | 嵌入式并行计算系统以及嵌入式并行计算方法 | |
CN112214416A (zh) | 调试小程序的方法、装置、电子设备和存储介质 | |
JPH08314760A (ja) | プログラム開発支援装置 | |
CN112579460B (zh) | 一种基于多核嵌入式系统的多级调试方法 | |
CN113126961B (zh) | 流水线处理方法、装置和存储介质 | |
CN114895893A (zh) | 多源数据处理方法、装置、设备及存储介质 | |
JP2007213417A (ja) | プログラムコード生成装置、方法、及びコンピュータプログラム | |
CN114036060A (zh) | 用于芯片测试的方法、系统和计算机可读介质 | |
CN114461419A (zh) | 一种消息推送方法、系统、计算设备与可读存储介质 | |
CN117376229B (zh) | 基于嵌入式设备的ftp文件系统软件交叉调试方法及系统 | |
EP4325358A1 (en) | Arithmetic device, and method for operating program |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240111 Address after: Room 01, 11th Floor, Unit 2, Building 1, No. 88 Shujin Road, Chengdu High tech Zone, China (Sichuan) Pilot Free Trade Zone, Chengdu City, Sichuan Province, 610000 Patentee after: Ruisi Xinke (Chengdu) Technology Co.,Ltd. Address before: 518000 room 105, floor 1, building 1, Qianhai Shenzhen Hong Kong youth dream workshop, No. 35, Qianwan 1st Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong Patentee before: Ruisixinke (Shenzhen) Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |