CN103218294A - 一种嵌入式***的调试方法、调试转换装置和*** - Google Patents

一种嵌入式***的调试方法、调试转换装置和*** Download PDF

Info

Publication number
CN103218294A
CN103218294A CN2013101309268A CN201310130926A CN103218294A CN 103218294 A CN103218294 A CN 103218294A CN 2013101309268 A CN2013101309268 A CN 2013101309268A CN 201310130926 A CN201310130926 A CN 201310130926A CN 103218294 A CN103218294 A CN 103218294A
Authority
CN
China
Prior art keywords
line
debugging
source code
rule
order
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.)
Granted
Application number
CN2013101309268A
Other languages
English (en)
Other versions
CN103218294B (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.)
NANTONG HANGDA ELECTRONIC TECHNOLOGY Co.,Ltd.
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310130926.8A priority Critical patent/CN103218294B/zh
Publication of CN103218294A publication Critical patent/CN103218294A/zh
Application granted granted Critical
Publication of CN103218294B publication Critical patent/CN103218294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种嵌入式***的调试方法、调试转换装置和***,其中方法的实现包括:获取定制的在线调试命令到离线调试命令的转换规则;在接收到在线调试命令的源码后,按照所述转换规则,将所述在线调试命令的源码转换成支持离线调试的代码;将所述支持离线调试的代码发送给目标板。通过将在线调试命令进行从在线调试命令的源码到离线调试的代码的转换,实现在线调试命令的离线调试,可以解决嵌入式***软件的在线调试和离线调试的重复开发问题,避免对不同的平台实现离线调试,或对相同的平台实现不同版本的离线调试时都需要修改调试器客户端的问题,因此,可以增加在线调试工具的使用范围,缩短离线调试工具的开发时间,降低了开发成本。

Description

一种嵌入式***的调试方法、调试转换装置和***
技术领域
本发明涉及通信技术领域,特别涉及一种嵌入式***的调试方法、调试转换装置和***。
背景技术
嵌入式***通常是面向特定应用的,它对逻辑的执行顺序和执行时间要求非常严格。嵌入式***适用于对功能、可靠性、成本、体积、功耗要求严格的专用***。对于嵌入式***的软件开发也不同于通用应用软件,前者要求开发者对嵌入式***的硬件有足够的了解,开发一个好的嵌入式***的软件非常困难,因此非常有必要有适合嵌入式***的调试器。
现有的嵌入式调试方式主要有两种方式:一种是在线调试,另外一种是离线调试。
嵌入式***的在线调试的方案通常如下:部署调试器服务端在嵌入式单板(即:目标板)上,部署调试器客户端在PC(personal computer,个人计算机)上,客户端和服务端通过网口或串口等通道连接。服务端负责访问或控制嵌入式***的资源(比如,内存、寄存器等),PC机上的客户端负责接受用户的命令输入,进行命令解析、调试信息解析和被调试程序的实时/非实时分析,以及调试分析结果输出等。
在线调试又包括非实时调试方式(即:stop调试方式),实时调试方式(即:non-stop调试方式)。Stop调试方式需要先将被调试程序停止,然后分析程序的信息和状态。non-stop调试方式则可实时获取程序的相关状态信息等。这两种在线调试方式都存在缺陷,具体如下:
(1)、如果某时刻调试器的客户端与目标板的服务端的连接中断,则程序出现异常。这时由于调试器的客户端无法获取被调试程序的实时情况,也无法控制被调试程序的状态,导致在线调试方式失效。
(2)、由于程序的异常通常具有随机性和不可复现性,导致将该类问题的复现难度较大,在线调试的失效将导致问题定位和分析的效率降低。
离线测试的方案,由于测试过程在目标板完成,不存在目标板与调试器之间的连接;因此可以避免上述技术缺陷,离线调试的方案通常如下:目标板将包括备份的转储文件,备份的转储文件包含有寄存器信息、内存信息和操作***信息等;目标板在调试器上离线的获取调试信息以及上述备份的转储文件,然后对程序异常原因进行分析。但是离线调试也存在如下缺陷:
由于目标板运行的平台种类繁多,备份的转储文件中包含操作***以及目标板平台有关的信息,因此备份的转储文件在格式上存在差异。另外,在目标板的***软件开发阶段,该***软件的版本升级通常很快,然而对不同版本***软件对应的转储文件格式又存在差异。因此,调试器客户端在实现支持不同平台的转储文件,或支持相同平台不同版本的转储文件,则需要对调试器客户端进行大量改动。这样,为了解决调试器客户端与平台在文件格式支持上的矛盾,仍然需要修改调试器客户端,而往往修改调试器需要大量的人力和时间。
综上所述,离线调试由于需要不断修改调试器客户端来实现离线调试,导致实现离线分析的难度较大、成本较高、时间长。另外,在线调试和离线调试的调试工具需要分别开发,存在重复开发的问题。
发明内容
本发明实施例提供了一种嵌入式***的调试方法、调试转换装置和***,用于增加在线调试工具的使用范围,缩短离线调试工具的开发时间,降低开发成本。
本发明实施例一方面提供了一种嵌入式***的调试方法,包括:
获取定制的在线调试命令到离线调试命令的转换规则;
在接收到在线调试命令的源码后,按照所述转换规则,将所述在线调试命令的源码转换成支持离线调试的代码;
将所述支持离线调试的代码发送给目标板。
结合一方面的实现方式,在第一种可选的实现方式中,所述将所述在线调试命令的源码转换成支持离线调试的代码,将所述支持离线调试的代码发送给目标板包括:
将所述在线调试命令的源码转换成离线调试命令的源码;将得到的离线命令源码和当前的调试器客户端,进行二次编译生成支持离线调试的调试器客户端,将所述支持离线调试的调试器客户端发送给目标板;或者,
将所述在线调试命令的源码转换成离线调试命令的代码并链接为动态库,将所述动态库发送给目标板。
结合第一种可选的实现方式,在第二种可选的实现方式中,所述将所述在线调试命令的源码转换成离线调试命令的源码包括:
使用编译器将所述在线调试命令的源码转换成离线命令的源码;或者,通过客户端工具将所述在线调试命令的源码转换成离线命令的源码。
结合第二种可选的实现方式,在第三种可选的实现方式中,所述使用编译器将所述在线调试命令的源码转换成离线命令的源码包括:
读入所述在线调试命令的源码,根据所述转换规则进行字符串的规则匹配,若匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,然后输出离线调试命令的源码。
结合一方面、第一种、第二种或第三种可选的实现方式,在第四种可选的实现方式中,所述转换规则包括:
符号表信息转换规则、寄存器及调用栈规则、调试输出接口转换规则、内存分布规则中的至少一项;
所述符号表信息转换规则为:在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则;
所述寄存器及调用栈规则为:通用寄存器个数,函数返回地址,栈指针或者个人计算机PC指针的寄存器配置,以及函数调用栈信息;
所述调试输出接口转换规则为:在线调试的命令接口转换到离线调试命令接口的规则;
所述内存分布规则为:确定私有内存或者共享内存的大小及分布的规则。
本发明实施例二方面提供了一种嵌入式***的调试转换装置,包括:
规则获取单元,用于获取定制的在线调试命令到离线调试命令的转换规则;
源码接收单元,用于接收在线调试命令的源码;
转换单元,用于在所述源码接收单元接收到在线调试命令的源码后,按照所述规则获取单元获取到的转换规则,将所述在线调试命令的源码转换成支持离线调试的代码;
发送单元,用于将所述转换单元得到的支持离线调试的代码发送给目标板。
结合二方面的实现方式,在第一种可选的实现方式中,所述转换单元,具体用于将所述在线调试命令的源码转换成离线调试命令的源码;将得到的离线命令源码和当前的调试器客户端进行二次编译生成支持离线调试的调试器客户端;或者,将所述在线调试命令的源码转换成离线调试命令的代码并链接为动态库;
所述发送单元,具体用于将所述转换单元得到的支持离线调试的调试器客户端发送给目标板;或者将所述转换单元得到的动态库发送给目标板。
结合二方面的实现方式,在第二种可选的实现方式中,所述转换单元,具体用于使用编译器将所述在线调试命令的源码转换成离线命令的源码;或者,通过客户端工具将所述在线调试命令的源码转换成离线命令的源码。
结合第二种的实现方式,在第三种可选的实现方式中,所述转换单元包括:
读取单元,用于读入所述源码接收单元接收的在线调试命令的源码;
匹配单元,用于根据所述规则获取单元获取的转换规则进行字符串的规则匹配;
源码生成单元,用于若所述匹配单元匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,然后输出离线调试命令的源码。
结合一方面、第一种、第二种或第三种可选的实现方式,在第四种可选的实现方式中,所述规则获取单元,获取的转换规则包括:符号表信息转换规则、寄存器及调用栈规则、调试输出接口转换规则、内存分布规则中的至少一项;
所述符号表信息转换规则为:在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则;
所述寄存器及调用栈规则为:通用寄存器个数,函数返回地址,栈指针或者个人计算机PC指针的寄存器配置,以及函数调用栈信息;
所述调试输出接口转换规则为:在线调试的命令接口转换到离线调试命令接口的规则;
所述内存分布规则为:确定私有内存或者共享内存的大小及分布的规则。
本发明实施例三方面提供了一种嵌入式***的调试***,包括,调试器、目标板,还包括:本发明实施例提供的任意一项的调试转换装置;
所述调试转换装置从所述调试器的客户端接收在线调试命令的源码,并将支持离线调试的代码输出给所述目标板的服务端。
从以上技术方案可以看出,本发明实施例具有以下优点:通过将在线调试命令进行从在线调试命令的源码到离线调试的代码的转换,实现在线调试命令的离线调试,可以解决嵌入式***软件的在线调试和离线调试的重复开发问题,避免对不同的平台实现离线调试,或对相同的平台实现不同版本的离线调试时都需要修改调试器客户端的问题,因此,可以增加在线调试工具的使用范围,缩短离线调试工具的开发时间,降低了开发成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例生成离线命令的模块结构示意图;
图3为本发明实施例典型的调试器组网示意图;
图4为本发明实施例在线命令转换成离线命令的流程示意图;
图5为本发明实施例源到源转换过程实例示意图;
图6为本发明实施例调试转换装置结构示意图;
图7为本发明实施例调试转换装置结构示意图;
图8为本发明实施例***结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种嵌入式***的调试方法,如图1所示,包括:
101:获取定制的在线调试命令到离线调试命令的转换规则;
上述在线调试命令到离线调试命令的转换规则,可以是任意可以建立在线调试命令到离线调试命令对应关系的规则,转换规则可以根据实际需要增加或者减少,具体的形式本发明实施例给出了如下举例:可选地,上述转换规则包括:符号表信息转换规则、寄存器及调用栈规则、调试输出接口转换规则、内存分布规则中的至少一项;上述符号表信息转换规则为:在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则;上述寄存器及调用栈规则为:通用寄存器个数,函数返回地址,栈指针或者个人计算机PC指针的寄存器配置,以及函数调用栈信息;上述调试输出接口转换规则为:在线调试的命令接口转换到离线调试命令接口的规则;上述内存分布规则为:确定私有内存或者共享内存的大小及分布的规则。需要说明的是,代码转换的规则可以有很多种类,以上举例不应理解为对本发明实施例的限定。
102:在接收到在线调试命令的源码后,按照上述转换规则,将上述在线调试命令的源码转换成支持离线调试的代码;
可选地,本发明实施例给出了两种可选的支持离线调试的代码的方案,如下:上述将上述在线调试命令的源码转换成支持离线调试的代码包括:将上述在线调试命令的源码转换成离线调试命令的源码;将得到的离线命令源码和当前的调试器客户端,进行二次编译生成支持离线调试的调试器客户端;或者,将上述在线调试命令的源码转换成离线调试命令的代码并链接为动态库。
可选地,本发明实施例还给出了两种在线调试命令到离线调试命令的源码到源码的转换实现方案,具体地:上述将上述在线调试命令的源码转换成离线调试命令的源码包括:使用编译器将上述在线调试命令的源码转换成离线命令的源码;或者,通过客户端工具将上述在线调试命令的源码转换成离线命令的源码。
可选地,本发明实施例还给出了使用编译器实现源码到源码的转换的具体实现方式,如下:上述使用编译器将上述在线调试命令的源码转换成离线命令的源码包括:读入上述在线调试命令的源码,根据上述转换规则进行字符串的规则匹配,若匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,然后输出离线调试命令的源码。
103:将上述支持离线调试的代码发送给目标板。
以上方案,通过将在线调试命令进行从在线调试命令的源码到离线调试的代码的转换,实现在线调试命令的离线调试,可以解决嵌入式***软件的在线调试和离线调试的重复开发问题,避免对不同的平台实现离线调试,或对相同的平台实现不同版本的离线调试时都需要修改调试器客户端的问题,因此,可以增加在线调试工具的使用范围,缩短离线调试工具的开发时间,降低了开发成本。
可选地,对应于前面实施例的两种可选的支持离线调试的代码的方案,上述将上述支持离线调试的代码发送给目标板包括:将上述支持离线调试的调试器客户端发送给目标板;或者,将上述动态库发送给目标板。
以下实施例分别就结构组成、调试组网、源码转换以及实例的角度对以上实施例的方案进行更详细的举例说明。
一、结构组成
请参阅图2所示为:通过源到源转换,生成离线命令的模块结构示意图,其中箭头方向为数据流向。
本例中为嵌入式***开发的在线和离线调试器都可以使用C作为编程语言。在线调试命令源码(主要是.c和.h文件)作为离线命令转换器的输入源。
离线命令转换器主要有三个部分:符号解析模块、转储文件解析模块及源到源转换模块。
符号解析模块从输入源中获取全局符号的定义及地址映射表,以及与业务相关的符号描述信息,进行符号解析与处理后,输出到源到源转换模块。
源到源转换模块的另一个输入来自转储文件解析模块,转储文件解析模块主要完成对离线文件寄存器及调用栈规则的分析与处理,这部分通常与嵌入式***的ISA(Industrial Standard Architecture,工业标准结构总线)强相关。
当源到源转换模块获取到需要的信息后就可以通过内部定义好的规则完成最后的离线调试命令源码(主要是.c和.h文件)的输出。此时的离线调试器已经具有了在线调试器模块拥有的业务相关符号表信息及地址信息,使用离线调试器的打印接口就可以获取产品业务相关信息。
二、调试组网
如图3所示的典型的调试器组网示意图,
在线调试场景下,位于PC(personal computer,个人计算机)端的调试器客户端和位于目标板(Board)上的调试服务端通过ETH(Ethernet,网口)或者串口等通道进行通信。其中在PC侧还包含有IDE(Integrated DevelopmentEnvironment,集成开发环境),在Board侧还包含有应用程序、***以及内存/寄存器。
离线调试场景下,调试器客户端通过文件I/O从个人电脑的转储文件(Core File on PC)中获取所需要的寄存器/内存信息,操作***信息或产品业务信息。
三、源码转换
请参阅图4为:在线命令转换成离线命令的流程示意图。
401:制定在线调试命令平滑到离线调试命令的转换规则;
在线调试命令到离线命令的转换有一套完整的规则。规则的定制主要可以包含以下几部分:符号表信息转换规则,主要制定将在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则。寄存器及调用栈规则,包括通用寄存器个数,函数返回地址,栈指针及PC指针等寄存器配置,以及函数调用栈信息等。调试输出接口转换规则,制定将在线调试的命令接口转换到离线调试命令接口。内存分布规则,确定私有内存或者共享内存的大小及分布等。可以根据实际业务的需求,添加或者删减某些规则。
402:使用源码转换编译器将在线调试命令的源码转换成离线调试命令的源码;
本步骤的转换的基本原理可以为:读入在线调试命令的源码,根据上述制定的转换规则进行字符串的规则匹配。如果匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,再由编译器输出最后的离线调试命令的源码。
403:通过将402中生成的离线调试命令的源码连同架构及转换无关的离线调试的源码,编译在一起即可生成新的离线调试器客户端。
以上方案步骤402和403均可以采用其他方式进行替换,具体如下:
上述流程示意图4中的402是采用了源码转换编译器将在线调试命令的源码转换成离线调试命令的源码。替代方案可以不依赖于编译器,单独实现一个将在线调试命令的源码转换成离线调试命令的源码的转换客户端工具。也就是说转换工具可以脱离编译器,客户端工具具备解析流程图规则,生成最终源码的功能。
流程示意图4中的402另一种替代方案是通过编译器,将转换出来的离线命令的代码(主要是.c和.h文件)链接成一个动态库(.dll或.so格式)。那么403中的二次编译就可以省略,离线的调试器客户端只需要动态加载402中生成的动态库就能完成相应的调试功能。
四、实例
以下是一种实施场景:
请参阅图5所示为一个源到源转换过程实例,该实例以查询当前***的CPU(Central Processing Unit,中央处理器)负载率为例,图5采用C语言编写,可参考C语言编写的相关规范,其中左侧一列为在线调试命令的源码,右侧箭头指向的是与之对应的离线调试命令的源码,该实例将在线调试命令的源码转换成离线调试命令的源码的过程。主要分为三个步骤:
1、识别出该命令实现中的全局变量。这是一个业务相关的全局变量,首先是要具有识别这个业务符号的转换规则。规则很简单,识别引号内的字符串(即图5中,上面的大框中的最上一个虚线框内的粗体字内容)。
离线命令转换器不断读入输入文件(即图5左侧侧代码),当识别到DSP_LkAddr关键字时(这是一个业务查询符号地址的调用接口,在规则制定的时候,会把这个接口调用配置在规则内,用于字符串的匹配),离线命令转换器匹配到这个关键字后面的用双引号括起来的字符串,在这个例子中就是gstruCpuLoad。附带的隐含转换规则是将原有结构体成员调用转换为已识别字符串的成员调用,如struCpuLoad.uwCurLoad---->gstruCpuLoad.uwCurLoad,这个转换结果将作为下面函数调用转换接口的输入。如图5所示的箭头所示的转换对应关系。
2、获取全局变量值的函数调用,替换成离线调试客户端中的函数调用。
如图5中,将在线查询业务变量地址的调用接口DSP_CommRead转换成相应的离线调用接口getSymAddrSize,同时把上面struCpuLoad.uwCurLoad---->gstruCpuLoad.uwCurLoad转换结果作为接口参数传入。
3、命令返回结果输出的函数调用替换成离线调试客户端的函数调用。
全局符号及获取全局量的接口转换完成后,就可以实现最后一步平台打印输出接口的转换,这个转换了实现了最后调试结果输出切换的功能。比如本例中的在线调试接口LBB_DSP_Printf转换到离线打印接口printf。
采用以上方案,由于嵌入式***软件的在线调试和离线调试应用于不同的场景,且都是必不可少的调试方式。本发明实施例实现在线调试命令的离线调试,可以解决嵌入式***软件的在线调试和离线调试的重复开发问题,通过将在线调试命令进行从在线调试命令的源码到离线调试的代码的转换,转换成可以在PC机上使用的离线调试命令,以及将命令中涉及到的产品业务信息使用符号解析功能转换成地址和长度,离线命令通过查询相应的内存地址区间即可以获取***相关信息。实现在线调试命令的离线调试可以避免对不同的平台实现离线调试,或对相同的平台实现不同版本的离线调试时都需要修改调试器客户端的问题,因此,本发明方法可以增加在线调试工具的使用范围,缩短离线调试工具的开发时间,降低了开发成本。
本发明实施例还提供了一种嵌入式***的调试转换装置,如图6所示,包括:
规则获取单元601,用于获取定制的在线调试命令到离线调试命令的转换规则;
源码接收单元602,用于接收在线调试命令的源码;
转换单元603,用于在上述源码接收单元602接收到在线调试命令的源码后,按照上述规则获取单元601获取到的转换规则,将上述在线调试命令的源码转换成支持离线调试的代码;
发送单元604,用于将上述转换单元603得到的支持离线调试的代码发送给目标板。
以上方案,通过将在线调试命令进行从在线调试命令的源码到离线调试的代码的转换,实现在线调试命令的离线调试,可以解决嵌入式***软件的在线调试和离线调试的重复开发问题,避免对不同的平台实现离线调试,或对相同的平台实现不同版本的离线调试时都需要修改调试器客户端的问题,因此,可以增加在线调试工具的使用范围,缩短离线调试工具的开发时间,降低了开发成本。
可选地,上述转换单元603,具体用于将上述在线调试命令的源码转换成离线调试命令的源码;将得到的离线命令源码和当前的调试器客户端进行二次编译生成支持离线调试的调试器客户端;或者,将上述在线调试命令的源码转换成离线调试命令的代码并链接为动态库;
上述发送单元604,具体用于将上述转换单元603得到的支持离线调试的调试器客户端发送给目标板;或者将上述转换单元603得到的动态库发送给目标板。
可选地,上述转换单元603,具体用于使用编译器将上述在线调试命令的源码转换成离线命令的源码;或者,通过客户端工具将上述在线调试命令的源码转换成离线命令的源码。
可选地,如图7所示,上述转换单元603包括:
读取单元701,用于读入上述源码接收单元602接收的在线调试命令的源码;
匹配单元702,用于根据上述规则获取单元601获取的转换规则进行字符串的规则匹配;
源码生成单元704,用于若上述匹配单元702匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,然后输出离线调试命令的源码。
可选地,上述规则获取单元601,获取的转换规则包括:符号表信息转换规则、寄存器及调用栈规则、调试输出接口转换规则、内存分布规则中的至少一项;
上述符号表信息转换规则为:在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则;
上述寄存器及调用栈规则为:通用寄存器个数,函数返回地址,栈指针或者个人计算机PC指针的寄存器配置,以及函数调用栈信息;
上述调试输出接口转换规则为:在线调试的命令接口转换到离线调试命令接口的规则;
上述内存分布规则为:确定私有内存或者共享内存的大小及分布的规则。
本发明实施例还提供了一种嵌入式***的调试***,如图8所示,包括,调试器801、目标板803,还包括:本发明实施例提供的任意一种调试转换装置802;上述调试转换装置802从上述调试器801的客户端接收在线调试命令的源码,并将支持离线调试的代码输出给上述目标板803的服务端。
值得注意的是,上述调试转换装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (11)

1.一种嵌入式***的调试方法,其特征在于,包括:
获取定制的在线调试命令到离线调试命令的转换规则;
在接收到在线调试命令的源码后,按照所述转换规则,将所述在线调试命令的源码转换成支持离线调试的代码;
将所述支持离线调试的代码发送给目标板。
2.根据权利要求1所述方法,其特征在于,所述将所述在线调试命令的源码转换成支持离线调试的代码,将所述支持离线调试的代码发送给目标板包括:
将所述在线调试命令的源码转换成离线调试命令的源码;将得到的离线命令源码和当前的调试器客户端,进行二次编译生成支持离线调试的调试器客户端,将所述支持离线调试的调试器客户端发送给目标板;或者,
将所述在线调试命令的源码转换成离线调试命令的代码并链接为动态库,将所述动态库发送给目标板。
3.根据权利要求2所述方法,其特征在于,所述将所述在线调试命令的源码转换成离线调试命令的源码包括:
使用编译器将所述在线调试命令的源码转换成离线命令的源码;或者,通过客户端工具将所述在线调试命令的源码转换成离线命令的源码。
4.根据权利要求3所述方法,其特征在于,所述使用编译器将所述在线调试命令的源码转换成离线命令的源码包括:
读入所述在线调试命令的源码,根据所述转换规则进行字符串的规则匹配,若匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,然后输出离线调试命令的源码。
5.根据权利要求1至4任意一项所述方法,其特征在于,所述转换规则包括:
符号表信息转换规则、寄存器及调用栈规则、调试输出接口转换规则、内存分布规则中的至少一项;
所述符号表信息转换规则为:在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则;
所述寄存器及调用栈规则为:通用寄存器个数,函数返回地址,栈指针或者个人计算机PC指针的寄存器配置,以及函数调用栈信息;
所述调试输出接口转换规则为:在线调试的命令接口转换到离线调试命令接口的规则;
所述内存分布规则为:确定私有内存或者共享内存的大小及分布的规则。
6.一种嵌入式***的调试转换装置,其特征在于,包括:
规则获取单元,用于获取定制的在线调试命令到离线调试命令的转换规则;
源码接收单元,用于接收在线调试命令的源码;
转换单元,用于在所述源码接收单元接收到在线调试命令的源码后,按照所述规则获取单元获取到的转换规则,将所述在线调试命令的源码转换成支持离线调试的代码;
发送单元,用于将所述转换单元得到的支持离线调试的代码发送给目标板。
7.根据权利要求6所述调试转换装置,其特征在于,
所述转换单元,具体用于将所述在线调试命令的源码转换成离线调试命令的源码;将得到的离线命令源码和当前的调试器客户端进行二次编译生成支持离线调试的调试器客户端;或者,将所述在线调试命令的源码转换成离线调试命令的代码并链接为动态库;
所述发送单元,具体用于将所述转换单元得到的支持离线调试的调试器客户端发送给目标板;或者将所述转换单元得到的动态库发送给目标板。
8.根据权利要求6所述调试转换装置,其特征在于,
所述转换单元,具体用于使用编译器将所述在线调试命令的源码转换成离线命令的源码;或者,通过客户端工具将所述在线调试命令的源码转换成离线命令的源码。
9.根据权利要求8所述调试转换装置,其特征在于,所述转换单元包括:
读取单元,用于读入所述源码接收单元接收的在线调试命令的源码;
匹配单元,用于根据所述规则获取单元获取的转换规则进行字符串的规则匹配;
源码生成单元,用于若所述匹配单元匹配成功,则调用转换处理接口生成编译器能识别的词法或者语法单元,然后输出离线调试命令的源码。
10.根据权利要求6至9任意一项所述装置,其特征在于,
所述规则获取单元,获取的转换规则包括:符号表信息转换规则、寄存器及调用栈规则、调试输出接口转换规则、内存分布规则中的至少一项;
所述符号表信息转换规则为:在线调试命令业务相关符号或者全局符号的地址映射信息转换到在线调试器能识别的符号信息的规则;
所述寄存器及调用栈规则为:通用寄存器个数,函数返回地址,栈指针或者个人计算机PC指针的寄存器配置,以及函数调用栈信息;
所述调试输出接口转换规则为:在线调试的命令接口转换到离线调试命令接口的规则;
所述内存分布规则为:确定私有内存或者共享内存的大小及分布的规则。
11.一种嵌入式***的调试***,包括,调试器、目标板,其特征在于,还包括:权利要求6至10任意一项的调试转换装置;
所述调试转换装置从所述调试器的客户端接收在线调试命令的源码,并将支持离线调试的代码输出给所述目标板的服务端。
CN201310130926.8A 2013-04-16 2013-04-16 一种嵌入式***的调试方法、调试转换装置和*** Active CN103218294B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310130926.8A CN103218294B (zh) 2013-04-16 2013-04-16 一种嵌入式***的调试方法、调试转换装置和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310130926.8A CN103218294B (zh) 2013-04-16 2013-04-16 一种嵌入式***的调试方法、调试转换装置和***

Publications (2)

Publication Number Publication Date
CN103218294A true CN103218294A (zh) 2013-07-24
CN103218294B CN103218294B (zh) 2015-12-02

Family

ID=48816112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310130926.8A Active CN103218294B (zh) 2013-04-16 2013-04-16 一种嵌入式***的调试方法、调试转换装置和***

Country Status (1)

Country Link
CN (1) CN103218294B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631716A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 一种调试命令的转换方法和设备
CN104461905A (zh) * 2014-12-30 2015-03-25 东信和平科技股份有限公司 一种智能卡虚拟机、api库与上层应用同时调试的方法及***
CN106897633A (zh) * 2017-05-02 2017-06-27 成都优孚达信息技术有限公司 一种嵌入式的在线离线功能转换设备
CN107632819A (zh) * 2016-07-14 2018-01-26 南京南瑞继保电气有限公司 一种基于符号表的可编程逻辑调试的方法和***
CN109213676A (zh) * 2018-07-06 2019-01-15 中国电力科学研究院有限公司 一种用于测试脚本的离线调试方法及装置
CN109507991A (zh) * 2018-12-25 2019-03-22 中国兵器装备集团自动化研究所 一种双轴伺服控制平台调试***及方法
CN109656535A (zh) * 2018-12-24 2019-04-19 苏州思必驰信息科技有限公司 基于浏览器的语音技能离线开发方法
CN109726213A (zh) * 2018-12-10 2019-05-07 网易无尾熊(杭州)科技有限公司 一种程序代码转换方法、装置、介质和计算设备
CN110806976A (zh) * 2019-10-24 2020-02-18 青岛英泰软件技术有限公司 远程推送shell和CMD命令的方法
CN110853327A (zh) * 2019-11-02 2020-02-28 杭州雅格纳科技有限公司 一种基于单片机的船舶机舱设备数据现场调试采集方法及装置
CN111143218A (zh) * 2019-12-27 2020-05-12 深圳市共进电子股份有限公司 适用于5G嵌入式设备的log调试方法、装置和可读存储介质
CN112416790A (zh) * 2020-11-30 2021-02-26 中国航空工业集团公司西安航空计算技术研究所 一种嵌入式软件离线重放调试方法和装置
CN114020607A (zh) * 2021-10-26 2022-02-08 苏州浪潮智能科技有限公司 Bmc调试方法、装置及计算机设备
CN114253837A (zh) * 2021-11-22 2022-03-29 杭州加速科技有限公司 一种ate测试机程序的多线程调试方法、***及测试机台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100086B1 (en) * 1998-03-31 2006-08-29 Seiko Epson Corporation Microcomputer, electronic equipment and debugging system
CN1862507A (zh) * 2006-03-10 2006-11-15 华为技术有限公司 一种单板故障定位辅助装置及定位方法
US7177791B1 (en) * 2003-12-05 2007-02-13 Unisys Corporation Offline emulated input/output processor debugger
CN101126989A (zh) * 2006-08-15 2008-02-20 凌阳科技股份有限公司 手机仿真***及其方法
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式***的程序调试方法及嵌入式***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100086B1 (en) * 1998-03-31 2006-08-29 Seiko Epson Corporation Microcomputer, electronic equipment and debugging system
US7177791B1 (en) * 2003-12-05 2007-02-13 Unisys Corporation Offline emulated input/output processor debugger
CN1862507A (zh) * 2006-03-10 2006-11-15 华为技术有限公司 一种单板故障定位辅助装置及定位方法
CN101126989A (zh) * 2006-08-15 2008-02-20 凌阳科技股份有限公司 手机仿真***及其方法
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式***的程序调试方法及嵌入式***

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631716A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 一种调试命令的转换方法和设备
CN104461905A (zh) * 2014-12-30 2015-03-25 东信和平科技股份有限公司 一种智能卡虚拟机、api库与上层应用同时调试的方法及***
CN107632819B (zh) * 2016-07-14 2021-02-09 南京南瑞继保电气有限公司 一种基于符号表的可编程逻辑调试的方法和***
CN107632819A (zh) * 2016-07-14 2018-01-26 南京南瑞继保电气有限公司 一种基于符号表的可编程逻辑调试的方法和***
CN106897633A (zh) * 2017-05-02 2017-06-27 成都优孚达信息技术有限公司 一种嵌入式的在线离线功能转换设备
CN106897633B (zh) * 2017-05-02 2023-11-28 义乌中国小商品城大数据有限公司 一种嵌入式的在线离线功能转换设备
CN109213676A (zh) * 2018-07-06 2019-01-15 中国电力科学研究院有限公司 一种用于测试脚本的离线调试方法及装置
CN109726213A (zh) * 2018-12-10 2019-05-07 网易无尾熊(杭州)科技有限公司 一种程序代码转换方法、装置、介质和计算设备
CN109726213B (zh) * 2018-12-10 2021-11-19 阿里巴巴(中国)有限公司 一种程序代码转换方法、装置、介质和计算设备
CN109656535A (zh) * 2018-12-24 2019-04-19 苏州思必驰信息科技有限公司 基于浏览器的语音技能离线开发方法
CN109656535B (zh) * 2018-12-24 2022-02-08 思必驰科技股份有限公司 基于浏览器的语音技能离线开发方法
CN109507991A (zh) * 2018-12-25 2019-03-22 中国兵器装备集团自动化研究所 一种双轴伺服控制平台调试***及方法
CN110806976A (zh) * 2019-10-24 2020-02-18 青岛英泰软件技术有限公司 远程推送shell和CMD命令的方法
CN110853327A (zh) * 2019-11-02 2020-02-28 杭州雅格纳科技有限公司 一种基于单片机的船舶机舱设备数据现场调试采集方法及装置
CN111143218A (zh) * 2019-12-27 2020-05-12 深圳市共进电子股份有限公司 适用于5G嵌入式设备的log调试方法、装置和可读存储介质
CN111143218B (zh) * 2019-12-27 2024-03-26 深圳市共进电子股份有限公司 适用于5G嵌入式设备的log调试方法、装置和可读存储介质
CN112416790A (zh) * 2020-11-30 2021-02-26 中国航空工业集团公司西安航空计算技术研究所 一种嵌入式软件离线重放调试方法和装置
CN114020607A (zh) * 2021-10-26 2022-02-08 苏州浪潮智能科技有限公司 Bmc调试方法、装置及计算机设备
CN114020607B (zh) * 2021-10-26 2024-02-13 苏州浪潮智能科技有限公司 Bmc调试方法、装置及计算机设备
CN114253837A (zh) * 2021-11-22 2022-03-29 杭州加速科技有限公司 一种ate测试机程序的多线程调试方法、***及测试机台

Also Published As

Publication number Publication date
CN103218294B (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN103218294A (zh) 一种嵌入式***的调试方法、调试转换装置和***
US7761586B2 (en) Accessing and manipulating data in a data flow graph
CN101908015B (zh) 一种基于构件生成测试案例的装置及方法
CN100561476C (zh) 一种基于asn类型对象的代码生成方法
US20200359094A1 (en) Screen parameter configuration system
CN104346146B (zh) 一种跨平台转换应用代码的方法及装置
CN111813804B (zh) 一种数据查询方法、装置、电子设备及存储介质
CN102087594B (zh) 扩展点和插件的管理方法和装置
CN102495797A (zh) 智能卡测试装置和测试方法
CN100375057C (zh) 一种自动化测试辅助***及相应的软件自动测试方法
CN101126981A (zh) 脚本命令注册方法、调用源程序代码的方法和装置
CN100517222C (zh) 支持转换引擎与映射规则相分离的模型转换装置及其方法
CN102866944A (zh) 一种压力测试***及方法
CN101149746A (zh) 在多个web服务中发现至少一个web服务的方法
CN101174237B (zh) 一种自动化测试方法、***及一种测试设备
CN201435074Y (zh) 一种基于构件生成测试案例的装置
CN105446819B (zh) 一种服务连接***及其设计方法
CN101211360A (zh) 处理报表数据源中多个数据表格的***及方法
CN114202419A (zh) 一种报文生成方法、装置、设备、存储介质及程序产品
CN114047970A (zh) 一种autosar架构软件的配置方法及***
CN109614084A (zh) web程序及其快速开发框架、开发方法与相关设备
CN108876527A (zh) 服务方法和服务装置、应用开放平台和存储介质
CN116755669A (zh) 一种基于dsl语言操作模型的低代码开发方法和工具
EP3005087A1 (en) Declarative configuration elements
CN116680270A (zh) 数据表转换方法、装置和存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20191213

Address after: No.1, floor 3, No.319, zhanggongshan Road, Yuhui District, Bengbu City, Anhui Province

Patentee after: Bengbu guijiu Intellectual Property Service Co., Ltd

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201019

Address after: 226000 No. 998 Century Avenue, hi tech Zone, Jiangsu, Nantong

Patentee after: NANTONG HANGDA ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: No.1, floor 3, No.319, zhanggongshan Road, Yuhui District, Bengbu City, Anhui Province

Patentee before: Bengbu guijiu Intellectual Property Service Co.,Ltd.

TR01 Transfer of patent right