CN108107872B - 一种基于网络的dsp应用在线调试系统及调试方法 - Google Patents
一种基于网络的dsp应用在线调试系统及调试方法 Download PDFInfo
- Publication number
- CN108107872B CN108107872B CN201711460008.6A CN201711460008A CN108107872B CN 108107872 B CN108107872 B CN 108107872B CN 201711460008 A CN201711460008 A CN 201711460008A CN 108107872 B CN108107872 B CN 108107872B
- Authority
- CN
- China
- Prior art keywords
- debugging
- compiler
- program
- tool
- compiling
- 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
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Abstract
本发明公开了一种基于网络的DSP应用在线调试系统及调试方法,该系统包括编译控制模块、编译模块、调试桩模块、调试客户端模块以及人机交互模块;调试方法包括检测到有编译请求;采用C6X_CC工具进行编译处理,若编译请求是内核程序或Release版本的应用程序,调用CCS编译器,否则,调用GCC编译器;在Makefile中使用该C6X_CC工具,并根据需要传递‑fPIC、‑g、以及GCC或CCS所必须的参数。本发明不仅支持远程调试应用程序,而且保证了程序的运行效率,兼顾了应用程序开发调试的便利性和运行效率。并且具体使用什么编译器对用户不可见,不用编写复杂的Makefile,进一步提高了开发的便利性。
Description
技术领域
本发明涉及计算机技术,特别是涉及一种基于网络的DSP应用在线调试系统及调试方法。
背景技术
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器。
调试器是一种计算机程序,用于测试和调试其他程序。它的工作原理是基于中央处理器的异常机制,并由操作系统的异常分发\事件分发的子系统(或模块)负责将其封装处理后,以比较友好的方式与调试器进行实时交互。调试器的基本功能如下:
(1)控制软件的运行
调试器的最基本功能就是将一个飞速运行的程序中断下来,并且使其按照用户的意愿执行。调试器是靠迫使目标程序触发一个精心构造的异常来完成这些工作的。
(2)查看软件运行中的信息
查看软件的当前信息,这些信息包含但不限于当前线程的寄存器信息,堆栈信息、内存信息等。
(3)修改软件执行流程
修改内存信息、反汇编信息、堆栈信息、寄存器信息等等。
CCS的全称是Code Composer Studio,它是一种集成开发环境(IDE),支持TI的微控制器和嵌入式处理器产品系列(包括DSP处理器)。CCS包含一整套用于开发和调试嵌入式应用的工具。它包含了用于优化的C/C++编译器、源码编辑器、项目构建环境、调试器、描述器以及多种其他功能。CCS包含的调试器拥有上述调试器的基本特点,但在进行调试时,必须使用硬件仿真器通过JTAG接口调试目标板的程序,不支持远程调试。
GDB是一个用来调试程序的强力调试器。允许查看一个程序在执行时“内部”发生了什么,或者程序在崩溃时正在做什么。GDB同样拥有上述调试器的基本特点,同时支持远程调试。
GDB远程调试,其环境由宿主机GDB和目标机GDBServer共同构成,两者通过串口或网络连接。与CCS调试相比,GDB远程调试的主要特点是可以通过网络或串口远程调试目标板的程序。
在软件项目开发过程中,一个好的调试手段可以快速方便的定位问题,提高开发效率,在开发过程中占有很高的地位。远程调试技术,可以随时随地调试,方便快捷,并且不需要使用硬件调试工具,节约了硬件成本。
针对DSP处理器,CCS编译的程序运行效率高,与DSP处理器的契合度非常高,但编译的应用程序无法使用远程调试。
GCC编译器可以支持DSP处理器,并且编译的应用程序可以使用GDB进行远程调试,但程序的运行效率低下。
GCC编译的程序,指令长度固定四个字节;而CCS编译的程序,指令长度不定,有的四个字节,有的两个字节。因此,GDB适合调试GCC编译的应用程序,但无法调试CCS编译的应用程序。
因此,针对DSP处理器,CCS编译的应用程序执行效率高,但不支持远程调试,程序调试依赖硬件仿真器;GCC编译的应用程序可以使用GDB实现远程调试,但执行效率无法和CCS相比,且DSP实时系统中找不到与之配合的调试桩。这两个工具各有特点,但都无法兼顾开发的便利性和程序的运行效率。
发明内容
发明目的:为解决现有技术的不足,提供一种基于网络的DSP应用在线调试系统及调试方法。
技术方案:本发明的一种基于网络的DSP应用在线调试系统,该系统包括编译控制模块、编译模块、调试桩模块、调试客户端模块以及人机交互模块;
所述编译控制模块接受用户命令行输入或Makefile脚本输入,根据命令行参数进行命令转发;转发方法是:如果命令行或Makefile脚本参数同时包含-fPIC、-g选项,则生成gcc编译命令,如gcc-fPIC、-g….–o;如果命令行或Makefile脚本参数不包含-fPIC、-g选项,则生成ccs编译命令,如cl6x、–shared、–sysv….。之后命令转发模块调用生成的命令行,将控制权转移给新的命令行。
所述编译模块由命令转发模块选择调用,负责具体程序编译,如果是调试版本程序,生成带调试信息的执行文件;如果是运行版本程序,则生成高效的执行文件。
带调试信息的执行文件会被下载到目标系统,调试桩模块负责在目标系统中启动并关联编译模块生成的执行文件。所述调试客户端模块负责下载可执行文件并调用gdb远程连接调试桩模块,同时负责与用户交互;所述人机交互模块通过GDB API和GDB交互,接受用户输入,显示调试信息。
其中,所述编译控制模块为C6X_CC工具。
另一实施例中,一种基于上述调试系统的调试方法,包括以下步骤:
(1)检测到有编译请求,执行步骤(2);
(2)采用C6X_CC工具进行编译处理;
(3)系统远程调试。
进一步的,所述步骤(2)包括:
(21)根据传入的参数,如果参数总部包含-fPIC、-g选项,则本次编译的目标为Release版本或内核程序,执行步骤(22);否则,则执行步骤(23);
具体为:C6X_CC工具接受用户命令行输入或Makefile脚本输入,根据命令行参数进行命令转发;转发方法为:
如果命令行或Makefile脚本参数同时包含-fPIC和-g选项,则生成gcc编译命令,本次编译的目标为Release版本或内核程序,执行步骤(22);如果命令行或Makefile脚本参数不包含-fPIC、-g选项,则生成ccs编译命令,执行步骤(23);之后命令转发模块调用生成的命令行,将控制权转移给新的命令行;
(22)调用C6X_CC工具中的CCS编译器进行编译处理,生成目标程序(Release版本的应用程序或者是内核程序);该程序可在目标DSP系统上高效执行;
(23)调用C6X_CC工具中的GCC编译器进行编译处理,生成目标程序(Debug版本的应用程序),该程序带调试信息,可被GDB加载和调试。
进一步的,所述步骤(3)包括:
(31)将编译处理生成的Debug版本的应用程序下载到目标DSP系统;
(32)在目标DSP系统上执行实现了调试协议的调试桩模块并由桩模块加载并启动步骤(31)所下载的目标程序;
(33)在编译计算机上启动GDB加载编译处理所生成的目标程序,并连接目标DSP系统上的调式桩模块,开始调试;
(34)人机交互模块,通过GDB API和GDB交互,接受用户输入,显示调试信息。
有益效果:与现有技术相比,本发明提供一种基于网络的DSP应用在线调试系统及调试方法,相比以往的基于JTAG等硬件调试器的方法,大大提高了调试便捷性,不依赖硬件仿真器,连接也更加方便。另外,本发明调试方法应用C6X_CC工具,在编译内核或者Release版本的应用程序时,使用CCS编译器;在编译Debug版本应用程序时,使用GCC编译器。不仅支持远程调试应用程序,而且保证了程序的运行效率,兼顾了应用程序开发调试的便利性和运行效率。并且具体使用什么编译器对用户不可见,不用编写复杂的Makefile,进一步提高了开发的便利性。
附图说明
图1是本发明的调试方法流程图;
图2是本发明的编译流程图;
图3是本发明的调试流程图。
具体实施方式
下面结合附图对本发明的技术方案进行详细的说明。
本发明的一种基于网络的DSP应用在线调试系统,该系统包括编译控制模块、编译模块、调试桩模块、调试客户端模块以及人机交互模块;
所述编译控制模块接受用户命令行输入或Makefile脚本输入,根据命令行参数进行命令转发;转发方法是:如果命令行或Makefile脚本参数同时包含-fPIC、-g选项,则生成gcc编译命令,如gcc-fPIC、-g….–o;如果命令行或Makefile脚本参数不包含-fPIC、-g选项,则生成ccs编译命令,如cl6x、–shared、–sysv….。之后命令转发模块调用生成的命令行,将控制权转移给新的命令行。
所述编译模块由命令转发模块选择调用,负责具体程序编译,如果是调试版本程序,生成带调试信息的执行文件;如果是运行版本程序,则生成高效的执行文件。
带调试信息的执行文件会被下载到目标系统,调试桩模块负责在目标系统中启动并关联编译模块生成的执行文件。所述调试客户端模块负责下载可执行文件并调用gdb远程连接调试桩模块,同时负责与用户交互;所述人机交互模块通过GDB API和GDB交互,接受用户输入,显示调试信息。
其中,所述编译控制模块为C6X_CC工具。所述C6X_CC工具是一个封装了CCS编译器和GCC编译器的壳。
如图1所示,一种基于网络的DSP应用在线调试方法,该方法包括以下步骤:
(1)检测到有编译请求,执行步骤(2);
(2)采用C6X_CC工具进行编译处理,如图2所示,具体包括以下步骤:
(21)根据传入的参数,如果参数总部包含-fPIC、-g选项,则本次编译的目标为Release版本或内核程序,执行步骤(22);否则,则执行步骤(23);
具体为:C6X_CC工具接受用户命令行输入或Makefile脚本输入,根据命令行参数进行命令转发;转发方法为:
如果命令行或Makefile脚本参数同时包含-fPIC和-g选项,则生成gcc编译命令,本次编译的目标为Release版本或内核程序,执行步骤(22);如果命令行或Makefile脚本参数不包含-fPIC、-g选项,则生成ccs编译命令,执行步骤(23);之后命令转发模块调用生成的命令行,将控制权转移给新的命令行;
(22)调用C6X_CC工具中的CCS编译器进行编译处理,生成Release版本的应用程序或者是内核程序;
(23)调用C6X_CC工具中的GCC编译器进行编译处理,生成Debug版本的应用程序。
(3)系统远程调试,如图3所示,具体包括以下步骤:
(31)将编译处理生成的Debug版本的应用程序下载到目标DSP系统;
(32)在目标DSP系统上,执行实现了调试协议的调试桩模块,并由桩模块加载并启动步骤(31)所下载的目标程序;
(33)在编译计算机上,启动GDB加载编译处理所生成的目标程序,并连接目标DSP系统上的调式桩模块,开始调试;
(34)人机交互模块,通过GDB API和GDB交互,接受用户输入,显示调试信息。
Claims (5)
1.一种基于网络的DSP应用在线调试系统,其特征在于,该系统包括编译控制模块、编译模块、调试桩模块、调试客户端模块以及人机交互模块;
所述编译控制模块接受用户命令行输入或Makefile脚本输入,根据命令行参数进行命令转发;所述编译模块由命令转发模块选择调用,负责具体程序编译,生成执行文件;调试桩模块负责在目标系统中启动并关联编译模块生成的执行文件;所述调试客户端模块负责下载可执行文件并调用gdb远程连接调试桩模块,同时负责与用户交互;所述人机交互模块通过GDB API和GDB交互,接受用户输入,显示调试信息;
编译控制模块根据传入的参数,如果参数总部包含-fPIC、-g选项,则本次编译的目标为Release版本或内核程序,调用C6X_CC工具中的CCS编译器进行编译处理,生成Release版本的应用程序或者是内核程序;否则,调用C6X_CC工具中的GCC编译器进行编译处理,生成Debug版本的应用程序;C6X_CC工具是一个封装了CCS编译器和GCC编译器的壳。
2.根据权利要求1所述的一种基于网络的DSP应用在线调试系统,其特征在于,所述编译控制模块为C6X_CC工具。
3.一种基于权利要求1或2所述的基于网络的DSP应用在线调试系统的调试方法,其特征在于,包括以下步骤:
(1)检测到有编译请求,执行步骤(2);
(2)采用C6X_CC工具进行编译处理;
(3)系统远程调试。
4.根据权利要求3所述的一种基于网络的DSP应用在线调试方法,其特征在于,所述步骤(2)包括:
(21)根据传入的参数,如果参数总部包含-fPIC、-g选项,则本次编译的目标为Release版本或内核程序,执行步骤(22);否则,则执行步骤(23);
(22)调用C6X_CC工具中的CCS编译器进行编译处理,生成Release版本的应用程序或者是内核程序;
(23)调用C6X_CC工具中的GCC编译器进行编译处理,生成Debug版本的应用程序。
5.根据权利要求3所述的一种基于网络的DSP应用在线调试方法,其特征在于,所述步骤(3)包括:
(31)将编译处理生成的Debug版本的应用程序下载到目标DSP系统;
(32)在目标DSP系统上执行实现了调试协议的调试桩模块并由桩模块加载并启动所下载的目标程序;
(33)在编译计算机上启动GDB加载所生成的目标程序,并连接目标DSP系统上的调式桩模块,开始调试;
(34)人机交互模块,通过GDB API和GDB交互,接受用户输入,显示调试信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711460008.6A CN108107872B (zh) | 2017-12-28 | 2017-12-28 | 一种基于网络的dsp应用在线调试系统及调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711460008.6A CN108107872B (zh) | 2017-12-28 | 2017-12-28 | 一种基于网络的dsp应用在线调试系统及调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108107872A CN108107872A (zh) | 2018-06-01 |
CN108107872B true CN108107872B (zh) | 2019-03-22 |
Family
ID=62213996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711460008.6A Active CN108107872B (zh) | 2017-12-28 | 2017-12-28 | 一种基于网络的dsp应用在线调试系统及调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108107872B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522600B (zh) * | 2020-04-15 | 2023-05-16 | 中国电子科技集团公司第三十八研究所 | 一种在dsp上的异构计算框架构建方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251819A (zh) * | 2007-12-11 | 2008-08-27 | 浙江大学 | 一种适用于多处理器核系统芯片的调试方法 |
CN102063288A (zh) * | 2011-01-07 | 2011-05-18 | 四川九洲电器集团有限责任公司 | 一种面向dsp芯片的指令调度方法 |
CN102436184A (zh) * | 2011-10-08 | 2012-05-02 | 厦门大学 | 一种基于嵌入式处理器双目标机的控制实时仿真系统 |
CN105678727A (zh) * | 2016-01-12 | 2016-06-15 | 四川大学 | 基于异构多核构架的红外光与可见光图像实时融合系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231820A1 (en) * | 2010-03-19 | 2011-09-22 | Aricent Inc. | Exclusive logging |
-
2017
- 2017-12-28 CN CN201711460008.6A patent/CN108107872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251819A (zh) * | 2007-12-11 | 2008-08-27 | 浙江大学 | 一种适用于多处理器核系统芯片的调试方法 |
CN102063288A (zh) * | 2011-01-07 | 2011-05-18 | 四川九洲电器集团有限责任公司 | 一种面向dsp芯片的指令调度方法 |
CN102436184A (zh) * | 2011-10-08 | 2012-05-02 | 厦门大学 | 一种基于嵌入式处理器双目标机的控制实时仿真系统 |
CN105678727A (zh) * | 2016-01-12 | 2016-06-15 | 四川大学 | 基于异构多核构架的红外光与可见光图像实时融合系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108107872A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053836B (zh) | 一种Android应用开发的版本管理工具的实现方法 | |
US9372680B2 (en) | Methods and systems for producing, evaluating and simulating executable applications | |
CN101382915B (zh) | 一种软件调试系统及调试方法 | |
US9672133B2 (en) | Systems and methods for debugging applications using dual code generation | |
US9043765B2 (en) | Simultaneously targeting multiple homogeneous and heterogeneous runtime environments | |
WO2011054250A1 (zh) | 一种开发环境转换的方法及装置 | |
CN107870855A (zh) | 基于天熠嵌入式操作系统的调试系统 | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
CN107577609B (zh) | 一种基于主机端动态链接的嵌入式系统动态模块调试系统 | |
WO2016095570A1 (zh) | 一种嵌入式系统的调试方法及装置、存储介质 | |
JP2010250378A (ja) | ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム | |
CN103077112A (zh) | 一种软件调试的方法和系统 | |
CN101458633B (zh) | 通过脚本程序访问宿主程序的方法及其系统和装置 | |
CN115757183A (zh) | 天熠嵌入式操作系统下一种基于代理的任务级调试方法 | |
CN108107872B (zh) | 一种基于网络的dsp应用在线调试系统及调试方法 | |
CN102722438A (zh) | 一种内核调试的方法和设备 | |
CN109032607B (zh) | 基于lua脚本的机房监控实时数据解析引擎及脚本调试工具 | |
WO2004036420A1 (ja) | プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法 | |
KR101400396B1 (ko) | 메모리 주소를 이용한 임베디드 소프트웨어의 실시간 디버깅 방법 | |
CN111858337A (zh) | 一种支持Java应用程序调试Native函数的方法 | |
KR20160081200A (ko) | 스크립트 기반 마이크로컨트롤러 펌웨어 개발 플랫폼 | |
CN212675544U (zh) | Mcu自动构建和自动测试系统 | |
CN116909656B (zh) | 一种基于elf文件实现嵌入式动态APP加载的方法 | |
He et al. | Stethoscope: A sustainable runtime debugger for wireless sensor networks | |
JP2001256075A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |