CN102902624B - 一种软件调试系统及方法 - Google Patents
一种软件调试系统及方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000004891 communication Methods 0.000 claims description 9
- 230000013011 mating Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 239000002253 acid Substances 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
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模块将调试信息的格式转换为与仿真接口总线匹配的格式后,经仿真接口总线将调试信息发送至调试代理装置;
调试代理装置将接收到的调试信息的格式装换为与通用接口总线匹配的格式后,经通用接口总线将调试信息发送至调试主机;
调试主机通过调试应用程序将接收的调试信息进行显示,并根据调试需求发送控制信息至调试代理装置;
调试代理装置将接收到的控制信息经控制线发送至被调试目标机,且被调试目标机利用调试函数实现对调试信息的控制;
其中,所述调试函数还用于完成通过仿真接口总线发送调试信息至调试代理装置。
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)
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)
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)
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 |
-
2012
- 2012-11-09 CN CN201210444258.1A patent/CN102902624B/zh active Active
Patent Citations (2)
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)
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 |