CN113590462A - 基于Eclipse插件的DSP程序运行调试方法 - Google Patents

基于Eclipse插件的DSP程序运行调试方法 Download PDF

Info

Publication number
CN113590462A
CN113590462A CN202110661054.2A CN202110661054A CN113590462A CN 113590462 A CN113590462 A CN 113590462A CN 202110661054 A CN202110661054 A CN 202110661054A CN 113590462 A CN113590462 A CN 113590462A
Authority
CN
China
Prior art keywords
debugging
eclipse
command
interface
dsp
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.)
Pending
Application number
CN202110661054.2A
Other languages
English (en)
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.)
Qingdao Benyuan Microelectronics Co ltd
Original Assignee
Qingdao Benyuan Microelectronics Co ltd
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 Qingdao Benyuan Microelectronics Co ltd filed Critical Qingdao Benyuan Microelectronics Co ltd
Priority to CN202110661054.2A priority Critical patent/CN113590462A/zh
Publication of CN113590462A publication Critical patent/CN113590462A/zh
Pending legal-status Critical Current

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/3668Software testing
    • 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/3628Software debugging of optimised code

Landscapes

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

Abstract

本发明公开了一种基于Eclipse插件的DSP程序运行调试方法,在调试初始化时注册相关服务类,通过Eclipse界面发起调试操作,Eclipse调用对应服务类的处理方法,处理方法根据方法参数创建调试命令对象,将调试命令对象添加至命令队列,发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法,用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码,C++代码通过COM组件调用DSP调试接口,将调试结果返回给Java端代码,Java端接收到调试结果将其反映在Eclipse界面上,从而实现了通过在Eclipse内操作来运行调试DSP程序。

Description

基于Eclipse插件的DSP程序运行调试方法
技术领域
本发明属于计算机技术领域,具体地说,是涉及一种基于Eclipse插件的DSP程序运行调试方法。
背景技术
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台;就其本身而言,它只是一个框架和一组服务,通过插件开发组件,开发者可以根据需要在框架中添加自己定制的功能。通过现有的CDT(C/C++ Development Tooling)与Embedded CDT插件可以帮助开发者高效率地开发C/C++代码,并对程序进行编译与调试运行。
目前Eclipse支持的处理器限于x86、Arm与RISC-V,现阶段并不支持对于DSP程序的调试与运行。
发明内容
本发明的目的在于提供一种基于Eclipse插件的DSP程序运行调试方法,使用户可以通过在Eclipse内操作来运行调试DSP程序,解决Eclipse调试框架无法适配DSP程序的技术问题。
本发明采用以下技术方案予以实现:
提出一种基于Eclipse插件的DSP程序运行调试方法,包括:通过Eclipse界面发起调试操作;Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将所述调试命令对象添加至命令队列;发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法;用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码;在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码;Java端接收到所述调试结果,将调试结果反映在Eclipse界面上。
进一步的,在发起调试操作之前,所述方法还包括:注册调试相关的服务;所述服务用于处理在Eclipse界面上进行调试操作,并基于DSF框架,为继承自org.eclipse.cdt.dsf.service.AbstractDsfService的类,以及实现与其所提供服务对应的org.eclipse.cdt.dsf.debug.service包中的接口。
进一步的,所述调试操作为:启动、终端运行或调试;或,发送程序运行控制命令;所述命令包括:运行、停止、步进、步过、步出、汇编级步进或复位;或,查看调试信息视图和/或在视图上操作。
进一步的,所述命令调试对象包括:表示方法名的字符串;表示参数类型的数组,数组中每一个元素代表一个参数的类型;保存参数具体值的数组,与表示参数类型的数组对应,数组中每一个元素代表一个参数值。
进一步的,所述通过COM组件调用DSP调试接口的操作包括:初始化当前线程COM组件库;调用DSP调试接口;卸载COM组件库。
与现有技术相比,本发明的优点和积极效果是:本发明提出的基于Eclipse插件的DSP程序运行调试方法中,用户通过Eclipse界面注册调试相关的服务并发起调试操作,Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将调试命令对象添加至命令队列,发送命令的线程则读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法,用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码,在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码,Java端接收到所述调试结果,将调试结果反映在Eclipse界面上 ,从而实现了通过在Eclipse内操作来运行调试DSP程序,解决Eclipse调试框架无法适配DSP程序的技术问题。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1 为本发明提出的基于Eclipse插件的DSP程序运行调试方法的流程图;
图2为本发明中Eclipse端Java通过C++端代码调用DSP调试接口的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细的说明。
如图1和图2所示,本发明提出的基于Eclipse插件的DSP程序运行调试方法,包括如下步骤:
步骤S1:通过Eclipse界面发起调试操作。
本发明基于安装有CDT插件的Eclipse集成开发环境,CDT插件提供对C/C++开发的必要支持。
用户首先在Eclipse环境中注册调试相关的服务,该服务用于处理在Eclipse界面上进行的调试操作,该服务基于DSF(调试服务框架)框架,为继承自org.eclipse.cdt.dsf.service.AbstractDsfService的类,并实现与其所提供服务对应的org.eclipse.cdt.dsf.debug.service包中的接口。
举例来说:断点服务BreakpointsService实现了
org.eclipse.cdt.dsf.debug.service.IBreakpoints接口,至少包含insertBreakpoint方法用来实现插入断点;removeBreakpoint方法实现删除断点。
该服务采用C++代码重写调试操作的处理方法,并被存储于本地.dll文件中。
调试操作包括以下之一:
1)启动、终端运行或调试。
2)发送程序运行控制命令;所述命令包括:运行、停止、步进、步过、步出、汇编级步进或复位。
3)查看调试信息视图和/或在视图上操作;所述视图包括:调试视图、控制台视图、断点视图、局部变量视图、表达式视图、反汇编视图、寄存器视图、和/或内存视图。
步骤S2:Eclipse根据发起的调试操作调用对应服务类的处理方法,处理方法根据方法参数创建调试命令对象,将调试命令对象添加至命令队列。
所述调试命令对象至少包含以下关键信息:
1)表示方法名的字符串。
2)表示参数类型的数组,数组中每一个元素代表一个参数的类型。
3)保存参数具体值的数组,与表示参数类型的数组对应,数组中每一个元素代表一个参数值。
步骤S3:发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法。
负责发送命令的服务在调试初始化时启动一个线程来处理命令队列,当命令队列中存在调试命令对象时,便依次取出调试命令对象,获取调试命令对象的对应信息,并通过反射的方式调用用于后端交互的类中对应的方法。
步骤S4:用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码。
后于后端交互的类负责调用本地.dll文件中的C++代码,具体的,通过JNA框架调用本地.dll 文件中的C++代码。
步骤S5:在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码;
C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码,这里调用DSP调试接口操作包括:
1)初始化当前线程COM组件库。
2)调用DSP调试接口。
3)卸载COM组件库。
步骤S6:Java端接收到所述调试结果,将调试结果反映在Eclipse界面上。
至此,完成一次调试操作。
上述本发明提出的基于Eclipse插件的DSP程序运行调试方法中,用户通过Eclipse界面注册调试相关的服务并发起调试操作,Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将命令对象添加至命令队列,发送命令的线程则读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法,用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码,在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码,Java端接收到所述调试结果,将调试结果反映在Eclipse界面上 ,从而实现了通过在Eclipse内操作来运行调试DSP程序,解决Eclipse调试框架无法适配DSP程序的技术问题。
应该指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (5)

1.基于Eclipse插件的DSP程序运行调试方法,其特征在于,包括:
通过Eclipse界面发起调试操作;
Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将所述调试命令对象添加至命令队列;
发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法;
用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码;
在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码;
Java端接收到所述调试结果,将调试结果反映在Eclipse界面上。
2.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,在发起调试操作之前,所述方法还包括:
注册调试相关的服务;所述服务用于处理在Eclipse界面上进行调试操作,并基于DSF框架,为继承自
org.eclipse.cdt.dsf.service.AbstractDsfService的类,以及实现与其所提供服务对应的org.eclipse.cdt.dsf.debug.service包中的接口。
3.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,所述调试操作为:
启动、终端运行或调试;或,
发送程序运行控制命令;所述命令包括:运行、停止、步进、步过、步出、汇编级步进或复位;或,
查看调试信息视图和/或在视图上操作。
4.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,所述命令调试对象包括:
表示方法名的字符串;
表示参数类型的数组,数组中每一个元素代表一个参数的类型;
保存参数具体值的数组,与表示参数类型的数组对应,数组中每一个元素代表一个参数值。
5.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,所述通过COM组件调用DSP调试接口的操作包括:
初始化当前线程COM组件库;
调用DSP调试接口;
卸载COM组件库。
CN202110661054.2A 2021-06-15 2021-06-15 基于Eclipse插件的DSP程序运行调试方法 Pending CN113590462A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110661054.2A CN113590462A (zh) 2021-06-15 2021-06-15 基于Eclipse插件的DSP程序运行调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110661054.2A CN113590462A (zh) 2021-06-15 2021-06-15 基于Eclipse插件的DSP程序运行调试方法

Publications (1)

Publication Number Publication Date
CN113590462A true CN113590462A (zh) 2021-11-02

Family

ID=78243633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110661054.2A Pending CN113590462A (zh) 2021-06-15 2021-06-15 基于Eclipse插件的DSP程序运行调试方法

Country Status (1)

Country Link
CN (1) CN113590462A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060064677A1 (en) * 2004-09-22 2006-03-23 Maya Bickson Debugger and method for debugging computer programs across multiple programming languages
CN104731566A (zh) * 2013-12-19 2015-06-24 华为软件技术有限公司 集成开发环境测试装置、方法及系统
CN105912463A (zh) * 2016-05-20 2016-08-31 东信和平科技股份有限公司 基于mp300设备的智能卡协议自动测试系统和方法
CN111858337A (zh) * 2020-07-21 2020-10-30 麒麟软件有限公司 一种支持Java应用程序调试Native函数的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060064677A1 (en) * 2004-09-22 2006-03-23 Maya Bickson Debugger and method for debugging computer programs across multiple programming languages
CN104731566A (zh) * 2013-12-19 2015-06-24 华为软件技术有限公司 集成开发环境测试装置、方法及系统
CN105912463A (zh) * 2016-05-20 2016-08-31 东信和平科技股份有限公司 基于mp300设备的智能卡协议自动测试系统和方法
CN111858337A (zh) * 2020-07-21 2020-10-30 麒麟软件有限公司 一种支持Java应用程序调试Native函数的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱艳等: "Eclipse开源代码的多核DSP调试系统集成", 单片机与嵌入式系统应用, vol. 15, no. 177, pages 11 - 17 *

Similar Documents

Publication Publication Date Title
JP5415557B2 (ja) デバッギングのためのユーザ・スクリプト・コードの変換
US9417931B2 (en) Unified metadata for external components
CN102402427B (zh) 一种Java应用程序的更新方法及装置
US7281237B2 (en) Run-time verification of annotated software code
US8201143B2 (en) Dynamic mating of a modified user interface with pre-modified user interface code library
EP2246783B1 (en) Method and apparatus for automatically generating source code files in a file storage unit
US20160232017A1 (en) System and Method for Reloading Constructors
US7269464B2 (en) System, method and computer program product for providing an interface for instantiating additional programmable logic controller functionality
JP5396979B2 (ja) ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム
AU2892200A (en) Automatic stub/adapter generator
US20040268301A1 (en) Adding new compiler methods to an integrated development environment
EP0706684A1 (en) System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers
CN106055368B (zh) 应用更新方法和装置
KR20000026296A (ko) 망 관리 시스템 및 클래스 동적 추가 방법
WO2019090994A1 (zh) 测试脚本自动化执行方法、装置、设备以及存储介质
US20090320007A1 (en) Local metadata for external components
CN113885967B (zh) 一种小程序的启动方法、装置、设备及介质
CN107577609B (zh) 一种基于主机端动态链接的嵌入式系统动态模块调试系统
CN106850650B (zh) 用于游戏客户端访问数据的方法及客户端游戏系统
US20080141219A1 (en) Multiple inheritance facility for java script language
US20080281861A1 (en) Method and system for dynamically generating enterprise java beans during installation of a service component architecture application
CN113590462A (zh) 基于Eclipse插件的DSP程序运行调试方法
CN114911541A (zh) 配置信息的处理方法、装置、电子设备及存储介质
US7526752B1 (en) Introspection support for generic types
CN110275710B (zh) 一种Java本地接口一致性检查方法及系统、存储介质及终端

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