CN102902624B - 一种软件调试系统及方法 - Google Patents

一种软件调试系统及方法 Download PDF

Info

Publication number
CN102902624B
CN102902624B CN201210444258.1A CN201210444258A CN102902624B CN 102902624 B CN102902624 B CN 102902624B CN 201210444258 A CN201210444258 A CN 201210444258A CN 102902624 B CN102902624 B CN 102902624B
Authority
CN
China
Prior art keywords
debugging
proxy device
debug
target machine
message
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
CN201210444258.1A
Other languages
English (en)
Other versions
CN102902624A (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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201210444258.1A priority Critical patent/CN102902624B/zh
Publication of CN102902624A publication Critical patent/CN102902624A/zh
Application granted granted Critical
Publication of CN102902624B publication Critical patent/CN102902624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及计算机软件工程领域,具体公开了一种软件调试系统及方法,本发明作为基于嵌入式系统软件的调试工具,通过调试代理装置,并利用调试目标机上的GPIO仿真通用总线接口,以输出丰富的调试信息到调试主机上,提高了调试效率,还实现了简便的断点调试,进而提高软件调试的灵活性。

Description

一种软件调试系统及方法
技术领域
本发明涉及计算机软件工程领域,尤其涉及一种软件调试系统及方法。
背景技术
现有技术中,涉及嵌入式系统的调试都是基于系统应用级(系统任务级)来进行调试通信的,即在嵌入式系统硬件都已经正常驱动,且相应的操作系统已经正常运行的前提下进行调试应用的,而没有在嵌入式硬件系统最初期的驱动的高效率调试。
目前,在通信行业的嵌入式系统开发中,经常需要开发基于不同型号处理器平台且适用于不同操作系统(如linux、VxWorks等)的嵌入式系统,因此经常需要将不同操作系统移植到不同型号的处理器上,而在对处理器进行调试的初期,所有的系统通信资源都暂不可用,甚至连中断信号等资源也是不可用的,即硬件系统驱动尚未成功初始化,并且无相应操作系统支持时,主要是在通用输入/输出(General Purpose Input Output,简称GPIO)管脚上链接若干个LED灯,并通过操作处理器来控制LED灯进行有规律的亮/灭,从而实现对处理器最初期驱动的调试;但是,由于上述的调试方法所传达的调试信息不够丰富,以致使调试效率的低下。
发明内容
针对现有的嵌入式硬件系统最初期的调试中存在的上述问题,现提供一种能够传递较为丰富信息的软件调试系统及方法,以实现对嵌入式硬件系统最初期的高效率调试。
具体技术方案如下:
一种软件调试系统,应用于嵌入式系统软件调试,包括调试主机和被调试目标机,其中,还包括调试代理装置,所述被调试目标机上设置有GPIO模块;
所述调试代理装置通过通用接口总线与所述调试主机进行链接,以进行双向通信;
所述被调试目标机通过所述GPIO模块对调试信息的格式进行处理后,利用仿真接口总线将所述调试信息发送至所述调试代理装置;
所述调试代理装置通过控制线将控制信息传送至所述被调试目标机;
其中,所述调试主机中设置有调试应用程序,所述被调试目标机中设置有与所述调试应用程序匹配的调试函数。
上述软件调试系统,其中,所述GPIO模块还包括GPIO管脚输入/输出方向配置寄存器和GPIO管脚信号数据寄存器。
上述软件调试系统,其中,所述仿真接口总线为IIC总线或SPI总线。
上述软件调试系统,其中,所述通用接口总线为RS-232总线、USB总线接口或以太网接口等。
上述软件调试系统,其中,所述GPIO模块对所述调试信息的格式进行处理前,所述调试信息的格式为ASCII格式。
上述软件调试系统,其中,所述调试应用程序用于显示从所述调试代理装置接收到的调试信息,同时根据调试需求发送所述控制信息至所述调试代理装置。
上述软件调试系统,其中,所述调试函数用于完成通过所述仿真接口总线发送调试信息至所述调试代理装置,同时实现控制信息命令。
一种软件调试方法,包括如上述任意一项所述的软件调试系统,其中,
被测试目标机通过GPIO模块将调试信息的格式转换为与仿真接口总线匹配的格式后,经仿真接口总线将调试信息发送至调试代理装置;
调试代理装置将接收到的调试信息的格式转换为与通用接口总线匹配的格式后,经通用接口总线将调试信息发送至调试主机;
调试主机通过调试应用程序将接收的调试信息进行显示,并根据调试需求发送控制信息至调试代理装置;
调试代理装置将接收到的控制信息经控制线发送至被调试目标机,且被调试目标机利用调试函数实现对调试信息的控制;
其中,所述调试函数还用于完成通过仿真接口总线发送调试信息至调试代理装置。
本发明一种软件调试系统及方法,作为基于嵌入式系统软件的调试工具,通过调试代理装置,并利用调试目标机上的GPIO仿真通用总线接口,以输出丰富的调试信息到调试主机上,提高了调试效率,还实现了简便的断点调试,进而提高软件调试的灵活性。
附图说明
图1为本发明一种软件调试系统及方法的系统结构示意图;
图2为本发明一种软件调试系统及方法的方法流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
为了提高在操作系统移植中对嵌入式处理器及其外设的初期调试开发的效率,本发明一种软件调试系统,应用于嵌入式系统软件调试,包括调试主机、被调试目标机和调试代理装置,且该被调试目标机上设置有GPIO模块;调试代理装置通过通用接口总线与调试主机进行链接,以进行双向通信;被调试目标机通过GPIO模块对调试信息的格式进行处理后,利用仿真接口总线将调试信息发送至调试代理装置;调试代理装置通过控制线将控制信息传送至被调试目标机;其中,调试主机中设置有调试应用程序,被调试目标机中设置有与调试应用程序匹配的调试函数。
进一步的,GPIO模块包括多个管脚、GPIO管脚输入/输出方向配置寄存器和GPIO管脚信号数据寄存器,上述的控制线和仿真接口总线分别通过管脚与被调试目标机进行链接;其中,GPIO模块一般是目标机中处理器的标准设备,有的设计的GPIO管脚多,有的少,仿真接口的信号线实际上是利用GPIO的管脚信号线来代替的,只是通过程序把信号转换为符合被仿真接口数据格式,由用于仿真接口的GPIO信号线来发送。
优选的,仿真接口总线为IIC总线或SPI总线,通用接口总线为RS-232总线,且GPIO模块对调试信息的格式进行处理前,调试信息的格式为ASCII格式。
优选的,上述控制信息为断点调试指令,调试应用程序用于显示从调试代理装置接收到的调试信息,同时根据调试需求发送控制信息至调试代理装置,调试函数用于完成通过仿真接口总线发送调试信息至调试代理装置,同时实现控制信息命令。
如图1所示,本申请一种软件调试系统,包括调试主机、被调试目标机和调试代理装置,调试代理装置通过通用接口总线1与调试主机进行链接,被调试目标机通过仿真接口总线2将调试信息发送至调试代理装置,调试代理装置通过控制线3将控制信息传送至被调试目标机,即该调试代理装置用于不同通信总线协议之间的转换,同时也对调试命令进行解析,以对被调试目标机进行控制,且该调试主机中设置有调试应用程序,被调试目标机中设置有与调试应用程序匹配的调试函数。
由于本申请一种软件调试系统主要用于调试系统上电初始化过程,因此系统本身的各种内部设备所提供的资源是不可用的,比如串行通信中的UART通信接口,甚至连中断信号资源也是不可用的,而只能够使用处理器的GPIO资源,所以被调试目标机中设置有GPIO模块,且该GPIO模块包括多个管脚、GPIO输入输出方向配置寄存器和GPIO管脚信号数据寄存器。
如图1-2所示,首先,被调试目标机利用调试函数将字符串ASCII码格式的调试信息,通过本地GPIO仿真为与仿真接口总线2匹配的格式,如IIC总线接口格式或SPI总线接口格式等,并将该调试信息经仿真接口总线2传递到调试代理装置中,调试代理装置会将该调试信号再次进行转换,以匹配通用接口总线1的传输格式,如RS-232接口格式等,调试主机利用调试应用程序显示进行显示,以便于调试人员的处理。
其次,调试主机利用调试应用程序,并通过通用接口总线1向调试代理装置传输一个断点调试指令,再由调试代理装置解析之后,通过调试代理装置上的一个特殊的断点控制管脚经控制线3向与之相连的目标机的GPIO管脚发出高电平或者低电平来传递单一电平信号,当被调试目标机获取该电平信号之后,利用调试函数确定是否继续执行其它的系统调试代码,即通过规定简单的电平信号,以达到通过调试主机向被调试目标机下达较为单一的信号控制命令,从而指定目标机执行下一动作,进而实现断点调试的目的。
具体的,当在被调试目标机的调试代码中需要调试的位置调用调试函数,输出所要调试的调试信息,包括输出某个变量或者寄存器的值,且该调试函数会将这些调试信息通过GPIO仿真为与仿真接口总线2匹配格式的数据信息,并将该数据信息传输到调试代理装置中,再由该调试代理装置转换为调试主机相应总线接口格式(即与通用接口总线1匹配的格式)的数据信息,最后显示到调试主机的配套的调试应用程序中进行显示;当调试主机的调试应用程序显示了一条完整的调试信息之后,可以通过该调试应用程序下达一个断点调试命令到调试代理装置中,并由调试代理装置解析之后,再由与之相连的被调试目标机上的相应GPIO管脚读取该调试命令,且被调试目标机中的调试函数会在发送一条调试信息之后轮询地查询该调试命令,如果查询到该调试命令由非断点调试信号转换为了断点调试信号,如由低电平转换为高电平,则被调试目标机中的调试函数会通过GPIO仿真接口,向调试代理装置发送一个应答指令,调试代理装置在解析该应答指令之后会改变断点控制管脚信号为低电平,即将断点调试状态转换为非断点调试状态,然后跳出被调试目标机中的调试函数并继续执行被调试目标机上的其它的初始化调试代码。这样,就不仅达到了被调试目标机向调试主机发送丰富的调试信息的目的,同时也可以实现断点调试的目的,以此来实现更加灵活高效的调试方法。
本申请中,被调试目标机端所需要的调试接口设计较为简便,以仿真IIC总线为例,由于IIC总线只需要两根信号线,因此加上断点调试控制信号线,以及共地信号线,调试接口总共需要四根信号线,其中仅占用被调试目标机处理器三个GPIO管脚资源,进一步实现节省被调试目标机处理器的GPIO管脚资源。
其中,调试主机端的调试应用程序,不仅能显示从调试代理装置中接收到的调试信息,还能根据调试需求下达断点调试命令,并为调试开发人员提供友好的调试界面。
本申请的一种软件调试系统及方法,适用于不同平台的BSP移植调试开发过程中,尤其是应用于VxWorks BSP移植调试开发过程,不仅能实现高效灵活的调试方案,还能节省VxWorks BSP移植开发时间,从而缩短相应项目的开发周期,同时,该发明亦可替代价格昂贵的JTAG调试工具,以满足在在实际中多平台的研发需求,从而提高项目平台调试开发效率。
本发明一种软件调试系统及方法,作为基于嵌入式系统软件的调试工具,通过调试代理装置,并利用调试目标机上的GPIO仿真通用总线接口,以输出丰富的调试信息到调试主机上,提高了调试效率,还实现了简便的断点调试,进而提高软件调试的灵活性。
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (8)

1.一种软件调试系统,应用于嵌入式系统软件调试,包括调试主机和被调试目标机,其特征在于,还包括调试代理装置,所述被调试目标机上设置有GPIO模块;
所述调试代理装置通过通用接口总线与所述调试主机进行链接,以进行双向通信;
所述被调试目标机通过所述GPIO模块对调试信息的格式进行处理后,利用仿真接口总线将所述调试信息发送至所述调试代理装置;
所述调试代理装置通过控制线将控制信息传送至所述被调试目标机;
其中,所述调试主机中设置有调试应用程序,所述被调试目标机中设置有与所述调试应用程序匹配的调试函数;以及,
所述调试主机的调试应用程序显示了一条完整的调试信息之后,通过所述调试应用程序下达一个断点调试命令到所述调试代理装置中,并由所述调试代理装置解析之后,再由与所述调试代理装置相连的所述被调试目标机上的所述GPIO模块读取所述调试命令,且所述被调试目标机中的调试函数会在发送一条调试信息之后轮询地查询所述调试命令,如果查询到该调试命令由非断点调试信号转换为了断点调试信号,则被调试目标机中的调试函数会通过GPIO模块向调试代理装置发送一个应答指令,调试代理装置在解析该应答指令之后会改变断点控制管脚信号,以跳出所述被调试目标机中的调试函数并继续执行所述被调试目标机上的其它的初始化调试代码。
2.如权利要求1所述软件调试系统,其特征在于,所述GPIO模块还包括GPIO管脚输入/输出方向配置寄存器和GPIO管脚信号数据寄存器。
3.如权利要求1所述软件调试系统,其特征在于,所述仿真接口总线为IIC总线或SPI总线。
4.如权利要求1所述软件调试系统,其特征在于,所述通用接口总线为RS-232总线、USB总线接口或以太网接口。
5.如权利要求1所述软件调试系统,其特征在于,所述GPIO模块对所述调试信息的格式进行处理前,所述调试信息的格式为ASCII格式。
6.如权利要求1所述软件调试系统,其特征在于,所述调试应用程序用于显示从所述调试代理装置接收到的调试信息,同时根据调试需求发送所述控制信息至所述调试代理装置。
7.如权利要求1所述软件调试系统,其特征在于,所述调试函数用于完成通过所述仿真接口总线发送调试信息至所述调试代理装置,同时实现控制信息命令。
8.一种软件调试方法,包括如上述权利要求1-7中任意一项所述的软件调试系统,其特征在于,
被测试目标机通过GPIO模块将调试信息的格式转换为与仿真接口总线匹配的格式后,经仿真接口总线将调试信息发送至调试代理装置;
调试代理装置将接收到的调试信息的格式装换为与通用接口总线匹配的格式后,经通用接口总线将调试信息发送至调试主机;
调试主机通过调试应用程序将接收的调试信息进行显示,并根据调试需求发送控制信息至调试代理装置;
调试代理装置将接收到的控制信息经控制线发送至被调试目标机,且被调试目标机利用调试函数实现对调试信息的控制;
其中,所述调试函数还用于完成通过仿真接口总线发送调试信息至调试代理装置。
CN201210444258.1A 2012-11-09 2012-11-09 一种软件调试系统及方法 Active CN102902624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210444258.1A CN102902624B (zh) 2012-11-09 2012-11-09 一种软件调试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210444258.1A CN102902624B (zh) 2012-11-09 2012-11-09 一种软件调试系统及方法

Publications (2)

Publication Number Publication Date
CN102902624A CN102902624A (zh) 2013-01-30
CN102902624B true CN102902624B (zh) 2015-10-21

Family

ID=47574869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210444258.1A Active CN102902624B (zh) 2012-11-09 2012-11-09 一种软件调试系统及方法

Country Status (1)

Country Link
CN (1) CN102902624B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103235755A (zh) * 2013-04-16 2013-08-07 合肥联宝信息技术有限公司 一种bios远程网络调试方法
CN103226504B (zh) * 2013-04-19 2016-05-11 中国科学院自动化研究所 一种分布式片上调试系统
CN105607998B (zh) * 2015-12-11 2018-10-12 成都新兴信息技术研究所 一种通过在线方式进行嵌入软件调试的系统与方法
CN106227651A (zh) * 2016-07-12 2016-12-14 南京百敖软件有限公司 基于gpio模块的固件调试系统
CN106227688A (zh) * 2016-07-26 2016-12-14 中国航空工业集团公司西安飞行自动控制研究所 一种兼容多模式的目标机软件维护通信方法
CN108062274A (zh) * 2016-11-09 2018-05-22 厦门雅迅网络股份有限公司 一种用于嵌入式系统汇编启动代码的调试方法
CN109815143B (zh) * 2019-01-11 2022-02-08 尤羿飞 嵌入式控制器的dsp软件的远程调试系统及方法
CN112565036B (zh) * 2020-11-24 2022-08-30 炬芯科技股份有限公司 数据传输方法、装置、存储介质及通信系统
CN113448866B (zh) * 2021-07-15 2022-07-05 杭州国芯科技股份有限公司 一种嵌入式软件开发辅助调试系统及调试方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162438A (zh) * 2006-10-10 2008-04-16 北京中电华大电子设计有限责任公司 一种嵌入式处理器的调试技术
CN101930395A (zh) * 2009-06-18 2010-12-29 炬才微电子(深圳)有限公司 一种交叉调试系统、方法及调试器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092570B2 (en) * 2007-07-28 2015-07-28 Sam Michael Memory management for remote software debuggers and methods
US8176310B2 (en) * 2009-06-19 2012-05-08 Phoenix Technologies Ltd. Debugger application configured to communicate with a debugger module via a GPIO

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162438A (zh) * 2006-10-10 2008-04-16 北京中电华大电子设计有限责任公司 一种嵌入式处理器的调试技术
CN101930395A (zh) * 2009-06-18 2010-12-29 炬才微电子(深圳)有限公司 一种交叉调试系统、方法及调试器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《ARM调试系统的研究与实现》;周智俊;《中国优秀硕士学位论文全文数据库》;20090415(第4期);参见正文第16-17页,第24页,第30页,第41-43页,第61-62页,图3.3,图5.2,图5.4,图5.6,图5.14 *

Also Published As

Publication number Publication date
CN102902624A (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
CN102902624B (zh) 一种软件调试系统及方法
CN102662648B (zh) 一种通讯终端的嵌入式软件开发仿真平台及其应用
CN102801818B (zh) 基于ZigBee技术的传感器通用接口采集系统
CN102917095A (zh) 一种基于Android系统的终端测试的方法及装置
CN105740139B (zh) 一种基于虚拟环境的嵌入式软件调试方法
CN105068860A (zh) 一种基于ARM的Linux采煤机管理主机系统
CN104468260A (zh) 一种移动终端设备的识别方法、装置及系统
CN105224753A (zh) 非能动核电厂多专业设计验证平台
CN104699524A (zh) 一种静态编译动态仿真的soc芯片验证系统及验证方法
CN101666855B (zh) 一种集成电路的通用测试系统和方法
CN102591752A (zh) 一种基于高通平台外围设备的在线调试方法
CN204576492U (zh) 一种软件配置项的测试装置
CN103927257A (zh) 一种安卓行为事件的触发方法和触发装置
CN102635379B (zh) 一种液压间架控制器的程序在线升级方法
CN109460355B (zh) 通用型mcu无线调试器
CN110532010A (zh) 一种带usb的量产器升级固态硬盘的方法
CN115168129B (zh) 植入仿真器的自动化测试系统及ssd硬盘测试方法
CN103677919A (zh) 一种基于串口的机载软件更新方法
CN103246620A (zh) 一种基于usb设备的数据交换方法
CN201378317Y (zh) 一种采用jtag方式的代码下载系统
CN103414622A (zh) 基于can总线的仿真方法
CN103150952A (zh) 可重构的eda实验平台
CN102567070A (zh) 手机软件调试方法及其模拟器
CN100337215C (zh) 测试执行器
CN208589013U (zh) 一种基于cpu通过jtag方式远程更新fpga的装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20180313

Granted publication date: 20151021

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20210313

Granted publication date: 20151021

PD01 Discharge of preservation of patent
PP01 Preservation of patent right

Effective date of registration: 20210313

Granted publication date: 20151021

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20240313

Granted publication date: 20151021