远程调试方法及系统的制作方法

文档序号:6559332阅读:166来源:国知局
专利名称:远程调试方法及系统的制作方法
技术领域
本发明涉及调试技术,尤其是指一种远程调试方法以及调试系统。
背景技术
在开发、维护产品过程中,对设备软件的调试都是一个必不可少的过程。对于产品的开发和维护,常用的调试方法有三种,以下分别对这三种调试方法进行说明1、通过telnet方式调试,在进行调试时,必须要建立IP通道,调试的目标板需要将其IP地址提供给远程调试的客户端,客户端才能对设备软件进行进一步的调试,如果需要对多个目标板进行调试,就需要对多个目标板进行IP设定后才能进行调试;2、通过串口方式直接近端调试,将需要调试的目标板通过PC机串口连接,在PC机上对目标板进行调试,这种调试方法无法实现远程调试,但是其调试过程简单,也无需对目标板建立IP通道;3、通过符号表解析下发的远程调试命令,串口输出重定向到磁盘文件来调试,这种采用写磁盘文件的调试方式只能按照符号表中的函数命令执行,这种调试方式不能完全代替串口调试,并且这种调试方法的内存消耗比较大。
基于上述描述,现有技术的三种调试方法是独立存在的,互相之间无法兼容,并不能整合在一起使用,在调试环境发生改变的时候,尤其是现有的近端调试串口不能适用时,只能选择telnet方式或符号表解析下发的远程调试指令,但是这样就需要在设备中做出一些设定才能实现,所以现有的远程调试方法不能满足企业开发维护产品和设备的需要,故需要一种新的远程调试方法适应技术的发展,满足企业的需要。

发明内容
本发明提供一种远程调试方法及系统,用以解决现有技术中存在近端串口调试方法不能完全应用在远程调试,并且现有的远程调试方式无法实现串口调试的问题。
本发明方法包括以下步骤A、客户端根据调试端信息与调试端建立调试通道,将调试指令发送至调试端的主控板;B、所述主控板将接收的调试指令下发给调试端的目标板;C、所述目标板接收调试指令并作出相应处理。
本方法中,将主控板的IP、主控板与目标板的槽位或类型信息设置为调试端信息。
本方法中,在步骤A中,所述客户端与调试端建立调试通道包括以下步骤A1、客户端发送启动串口重定向请求;A2、调试端的主控板接收所述启动串口重定向请求,并将其通过板间通信的方式发送到目标板;A3、所述目标板的底层调试单元完成串口重定向初始化工作,并将启动成功响应返回给主控板;A4、所述主控板将所述串口重定向启动成功响应返回至客户端。
本方法中,所述步骤C中包括重定向串口输出的步骤,该步骤是指目标板输出串口信息经主控板发给客户端。
本方法中,所述重定向串口输出包括D1、所述目标板输出串口信息至所述主控板;D2、所述主控板检查该目标板串口重定向状态,当目标板的串口重定向状态已启动时,主控板将输出串口信息发送给客户端;反之,所述主控板向所述目标板下发停止串口重定向请求,所述目标板的底层调试单元停止串口重定向。
本方法中,所述串口信息为调试指令执行结果或程序运行过程跟踪信息或打印信息。
本方法中,所述目标板执行调试指令后,还包括停止所述目标板串口重定向步骤E1、客户端发出停止串口重定向请求;E2、所述主控板接收该请求,并向所述目标板发送所述停止串口重定向请求;E3、所述目标板接收停止串口重定向请求,由目标板的底层调试单元停止串口重定向,产生停止串口重定向的响应经主控板返回给客户端。
本方法中,在步骤E3中,若主控板超时未接收到所述停止串口重定向的响应,主控板对目标板进行状态跟踪,如跟踪到所述目标板仍在向主控板输出串口信息或仍向主控板发送握手信息,主控板向所述目标板下发停止串口重定向指令至目标板串口重定向真正停止。
本发明还提供一种远程调试系统,包括客户端以及调试端,其中所述调试端包括至少一个主控板,每一个主控板至少对应设置一个通过板间通信方式连接目标板;所述客户端与所述主控板通过网络进行通信,调试所述目标板。
所述客户端包括通信单元,与所述调试端的主控板进行信息交换;调试指令生成单元,生成调试指令,由通信单元发送至所述调试端。
所述主控板包括第一调试通道单元,用于客户端与目标板的指令传递。
所述主控板还包括目标板状态检测单元,用于对目标板状态的检测。
所述目标板包括第二调试通道单元,用于主控板与目标板底层调试单元之间的指令传递;底层调试单元,用于接收、解析以及执行客户端传送的调试指令。
所述底层调试单元包括调试接口管理单元,提供一组设定的API接口,根据调试通道开启初始化,并依据调试指令调用设定的接口;内存设备软件实体,用于模拟串口设备接收调试接口管理单元传递的信息,与命令解析单元之间进行串口通信;命令解析单元,用于解析并执行调试指令,输出串口信息。
调试接口管理单元所提供的设定API接口至少包括创建内存设备软件实体接口、释放内存设备软件实体接口、设置回调函数接口、注销回调函数接口、传入串口命令接口和定时轮询串口输出接口。
所述内存设备软件实体与命令解析单元之间采用I/O系统中断机制或轮询机制模拟串口设备通信。
本发明有益效果如下本发明的客户端在对目标板进行调试时,用了以主控板做为中心代理的远程串口调试方式,通过底层函数实现串口重定向,在系统中采用支持串口通信的软件逻辑实体(或称内存设备软件实体)来代替串口进行设备软件调试;客户端与主控板通过TCP/IP方式通信,目标板与主控板之间采用板间通信方式进行通信,由主控板与目标板提供的调试通道进行设备软件的调试,在本发明中,无需一一提供目标板的IP地址就可以实现远程调试,并且可以达到与近端串口调试相同的技术效果,本发明尤其适用于不能近端调试串口的场景下,为企业提供产品远程定位和设备维护提供有效手段并节省人力成本。


图1A为本发明实施例的方法流程图;
图1B为本发明实施例的一般串口命令下发和结果上报流程示意图;图2A为本发明实施例的启动串口重定向建立调试通道的流程示意图;图2B为本发明实施例的串口信息主动输出的流程示意图;图2C为本发明实施例的停止串口重定向的流程示意图;图3为本发明实施例的系统框图;图4为本发明实施例的底层调试单元的结构框图。
具体实施例方式
本实施例提供一种远程调试方法,如图1A所示,包括以下步骤101、客户端根据调试端信息与调试端建立调试通道,将调试指令发送至调试端的主控板;102、所述主控板将该指令下发给与该主控板通信连接的目标板;103、所述目标板接收调试指令并按照该指令进行相应处理;其中相应的处理包括接收、解析、执行调试指令以及串口输出重定向。目标板将接收的调试指令传递给目标板的底层调试单元,底层调试单元完成调试指令解析、执行与串口重定向输出,对应在图1B中所述的调用底层函数实际上是底层调试单元对指令的解析、执行以及串口重定向输出过程。
在本实施例中,所述的调试端信息包括主控板的IP以及主控板与目标板的槽位信息,其中所述槽位信息是指主控板或目标板在背板上的槽位。目标板的型号也可以做为调试端信息,实现客户端对要调试的目标板的识别。
结合如图1B所示,调试指令为串口命令,上述步骤对应图1B中的步骤1、2以及3,在本方法中,还包括步骤4目标板返回串口命令响应至主控板,再由步骤5主控板将该响应返回给客户端的步骤。在实施例中,由于实际调试过程中存在串口命令执行后(长时间)无响应的情形,所以步骤4及步骤5并非一定会执行,对串口命令的执行采取有输出就输出的方式(即不对串口命令的执行设定定时器);如果是因为主控板与目标板之间的通信出现故障导致不能正常上报响应结果,需要通过它们之间的握手超时来保证,例如一旦主控板按客户端要求建立了某个目标板的串口重定向通道,就需要维持与目标板之间的调试的通道。主控板可以每隔20s发一次握手消息,如果等待20s无响应,开始进行“连续无响应”计数(20s内有响应计数器清0),这时下发下一个握手消息,再等待20s,有响应则“连续无响应”计数器清0,如仍无响应则该计数器增1,如此循环,等到“连续无响应”计数器值达到3次,则可表明主控板与目标板通信中断,主控板需要更新该目标板的管理状态、通知客户端、完成停止重定向后续跟踪。与主控板类似,目标板以连续接收不到握手消息的次数进行判断,达到3次就主动中断,可以执行一些善后处理,如释放通道、将串口重定向恢复到串口设备。握手超时机制不仅限于此形式,在本发明的方案中也可以采用其他握手机制来实现。
在本实施例中,客户端与调试端之间构建的网络(可为因特网或者局域网)基于TCP/IP协议进行通信,对调试端的目标板进行远程调试,调试端由至少一个主控板以及与该主控板采用板间通信方式通信的多个目标板构成。采用本发明的方法进行设备软件调试时,客户端根据主控板IP以及目标板的槽位信息与调试端通信,该通信过程是为了建立调试通道并重定向目标板串口输出;在两端建立通信通道后,客户端发出调试指令,该指令由主控板下发给指定需要调试的目标板,由该目标板执行该调试指令,并将执行后的结果经主控板返回给客户端,完成目标板的调试。如客户端要对主控板进行调试,在发调试指令前,根据对客户端公开的调试端信息指定主控板的IP和主控板所在槽位,主控板执行该调试指令,将执行后的结果返回给客户端,完成主控板的调试,其中主控板内部模块间通信属于板内通信。其中,调试端可以具有多个对客户端公开IP地址的主控板,每个主控板对应与多个目标板通信,客户端通过每个主控板的IP以及该主控板对应的每个目标板的槽位信息,对每个目标板进行调试。
在本实施例中,参考图2A所示,在步骤A中,所述客户端与调试端的通信调试通道的建立,具体包括以下步骤A1、客户端发送启动串口重定向请求;A2、调试端的主控板接收所述启动串口重定向请求,并将其通过板间通信的方式发送到目标板;A3、所述目标板的底层调试单元进行串口重定向初始化;其中串口重定向初始化是指,创建内存设备软件实体以模拟串口设备特性,设定回调函数使目标板实现串口输出重定向;A4、将启动成功响应返回给主控板;A5、所述主控板将串口重定向启动成功响应返回至客户端,其中启动串口重定向请求成功响应表明调试通道已建立以及目标板后续的任何串口输出将会重定向到此客户端。
本实施例中,目标板的串口重定向是指目标板主动输出串口信息至客户端的步骤,结合图2B所示,具体步骤为D1、所述目标板输出串口信息至所述主控板;D2、所述主控板检查该目标板串口重定向状态,当目标板的串口重定向状态已启动时,执行步骤D3;反之,执行步骤D4;D3、所述主控板将输出串口信息发送给客户端,结束串口信息传送;D4、向目标板下发停止串口重定向请求;D5、所述目标板接收停止串口重定向请求,由目标板的底层调试单元停止串口重定向。
其中该串口信息为目标板调试指令执行结果或程序运行过程跟踪信息或打印信息(如trace输出,是作为目标板的主动输出)。
在本实施例中,所述目标板执行调试指令后,还包括停止所述目标板串口重定向步骤,其中停止串口重定向是指,注销回调函数使串口输出缺省到串口设备,释放内存设备软件实体,具体步骤如图2C所示E1、客户端发出停止串口重定向请求;
E2、所述主控板接收该请求,并向所述目标板发送所述停止串口重定向请求;E3、所述目标板接收到停止串口重定向请求并传递给底层调试单元,底层调试单元执行停止串口重定向,产生停止串口重定向的响应经主控板返回给客户端。
其中上述步骤E3中,当停止串口重定向的响应未能及时送达主控板时,主控板并不知道目标板是否已经停止了串口重定向。由于客户端一般不会长时间等待主控板响应,故主控板一般直接给客户端回停止成功响应,让客户端及时关闭。至于目标板不能正常回停止响应的后续问题,由主控板对目标板进行跟踪,如果发现被停的目标板仍在向主控板发串口输出信息(也就是目标板未真正停止目标板串口重定向),执行步骤E2以及E3,主控板不断地给目标板下发停止指令,直至目标板串口重定向真正停止(即按D1→D2→D4→D5流程处理)。当然也可以采用握手超时来保证目标板重定向的停止,有关握手机制可参见上述内容,在此不再进行赘述。
在本实施例中还提出一种基于内存设备的远程调试系统,参见图3所示,该系统包括客户端301以及调试端302,其中所述调试端302包括至少一个主控板3021,该主控板3021至少对应设置一个通过板间通信方式连接的目标板3022,所述主控板3021与所述客户端301通过TCP/IP构建的网络进行通信(例如因特网或者局域网等),进行调试信息交换。
在本实施例中,所述客户端301包括通信单元,与所述调试端302的主控板3021进行信息交换;通信单元在与调试端建立调试通道时需要根据调试端信息建立,其调试端信息至少包括主控板IP以及目标板的槽位信息;调试指令生成单元,生成调试指令,该调试指令为一般的串口命令,由通信单元发送至所述调试端302的主控板3021。
本实施例中,所述的主控板3021包括第一调试通道单元401,用于客户端与其目标板之间调试信息的传递。
所述目标板3022包括第二调试通道单元501,用于主控板与目标板的底层调试单元之间的信息;底层调试单元502,接收、解析、执行传入的调试指令,将执行结果通过回调方式传入第二调试通道单元501。逻辑上,第二调试通道位于目标板上软件中、高层,底层调试单元位于目标板上软件底层(如作为BSPBoard Supported Package板级支持包的一部分)。底层调试单元根据目标板第二调试通道传递的指令类型按照图4构成的逻辑关系实现对目标板的串口重定向启动、停止以及串口命令的下发、解析、执行等动作。
参见图4所示,目标板3022中的底层调试单元502包括调试接口管理单元5021,提供一组创建/释放内存设备软件实体、设置/注销回调、传入串口命令和定时轮询串口输出的API接口,在调试端执行启动指令、停止指令、传入串口命令指令、系统定时轮询指令以及其他指令时,调用这些设定的接口;如在开启调试通道并重定向目标板串口输出时,该调试接口管理单元5021完成内存设备软件实体创建、回调注册工作,在停止重定向目标板串口输出时,完成回调注销、内存设备软件实体释放工作;定时轮询内存设备软件实体5022的输出信息并上报给第二调试通道单元501;在收到调试指令(串口命令)时,调用传入串口命令接口执行调试指令。
内存设备软件实体5022,用于模拟串口设备接收调试接口管理单元5021传递的调试指令(串口命令),采用串口通信的方式将调试指令发送给命令解析单元;命令解析单元5023,用于执行内存设备软件实体5022传递的调试指令(串口命令),并将执行结果等串口信息重定向至内存设备软件实体5022,内存设备软件实体5022再通过已注册的高层回调函数上报至主控板的第二调试通道单元501,最后传送至客户端。串口信息也可以指程序运行过程中的跟踪信息或打印信息。
在本系统中,所述内存设备软件实体5022与命令解析单元5023之间采用I/O系统中断机制或轮询机制进行串口通信。命令解析单元5023支持实际物理串口调试,可以执行用户在串口中输入的命令,与内存设备软件实体5022使用标准I/O系统通信相交互,两者的通信行为与串口设备相同将调试接口管理单元5021发来的命令字符串转换为多个字符输入,模拟中断接收;遇到回车符表示一个完整的串口命令串输入结束。
在开启调试通道并重定向目标板串口输出时,目标板的调试接口管理单元5021创建内存设备软件实体5022,并将命令解析单元的标准输入输出句柄重定向到内存设备软件实体5022;在进行目标板调试时,命令解析单元5023每读到内存设备软件实体5022传入的完整串口命令之后,解释并执行命令,同时输出结果到内存设备软件实体5022,该实体再通过回调函数上报至第二调试通道单元501,至此实现了串口重定向的功能。
结合图2B的流程,在实施例的装置中,如图3所示,所述主控板3021还包括目标板状态检测单元402,用于对目标板3022状态的检测,以判断是否将目标板输出的内容传送给所述客户端,有关该过程的具体描述可详见对图2B的相关说明。
综上所述,客户端在进行对目标板进行调试时,采用以主控板为中心的调试方案,不使用串口连接而采用串口重定向的机制,采用支持串口通信的软件逻辑实体来代替串口进行设备软件调试;客户端与主控板通过TCP/IP方式通信,目标板与主控板之间采用板间通信方式进行通信,由主控板与目标板提供的调试通道进行设备软件的调试,本发明的方案无需一一提供目标板的IP地址就可以实现远程调试,可以达到与近端串口调试相同的技术效果,适用于通信业和工业控制系统的调试技术中。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种远程调试方法,其特征在于,包括以下步骤A、客户端根据调试端信息与调试端建立调试通道,将调试指令发送至调试端的主控板;B、所述主控板将接收的调试指令下发给调试端的目标板;C、所述目标板接收调试指令并按照该指令进行相应处理。
2.根据权利要求1所述的方法,其特征在于,将主控板的IP、主控板与目标板的槽位或类型信息设置为调试端信息。
3.根据权利要求1所述的方法,其特征在于,在步骤A中,所述客户端与调试端建立调试通道包括以下步骤A1、客户端发送启动串口重定向请求;A2、调试端的主控板接收所述启动串口重定向请求,并将其通过板间通信的方式发送到目标板;A3、所述目标板的底层调试单元完成串口重定向初始化工作,并将启动成功响应返回给主控板;A4、所述主控板将所述串口重定向启动成功响应返回至客户端。
4.根据权利要求1所述的方法,其特征在于,所述步骤C中包括重定向串口输出的步骤,该步骤是指目标板输出串口信息经主控板发给客户端。
5.根据权利要求4所述的方法,其特征在于,所述重定向串口输出包括D1、所述目标板输出串口信息至所述主控板;D2、所述主控板检查该目标板串口重定向状态,当目标板的串口重定向状态已启动时,主控板将输出串口信息发送给客户端;反之,所述主控板向所述目标板下发停止串口重定向请求,所述目标板的底层调试单元停止串口重定向。
6.根据权利要求4或5所述的方法,其特征在于,所述串口信息为调试指令执行结果或程序运行过程跟踪信息或打印信息。
7.根据权利要求1所述的方法,其特征在于,所述目标板执行调试指令后,还包括停止所述目标板串口重定向步骤E1、客户端发出停止串口重定向请求;E2、所述主控板接收该请求,并向所述目标板发送所述停止串口重定向请求;E3、所述目标板接收停止串口重定向请求,由目标板的底层调试单元停止串口重定向,产生停止串口重定向的响应经主控板返回给客户端。
8.根据权利要求7所述的方法,其特征在于,在步骤E3中,若主控板超时未接收到所述停止串口重定向的响应,主控板对目标板进行状态跟踪,如跟踪到所述目标板仍在向主控板输出串口信息或仍向主控板发送握手信息,主控板向所述目标板下发停止串口重定向指令至目标板串口重定向真正停止。
9.一种远程调试系统,包括客户端以及调试端,其特征在于,其中所述调试端包括至少一个主控板,每一个主控板至少对应设置一个通过板间通信方式连接目标板;所述客户端与所述主控板通过网络进行通信,调试所述目标板。
10.根据权利要求9所述的系统,其特征在于,所述客户端包括通信单元,与所述调试端的主控板进行信息交换;调试指令生成单元,生成调试指令,由通信单元发送至所述调试端。
11.根据权利要求10所述的系统,其特征在于,所述主控板包括第一调试通道单元,用于客户端与目标板的指令传递。
12.根据权利要求11所述的系统,其特征在于,所述主控板还包括目标板状态检测单元,用于对目标板状态的检测。
13.根据权利要求9所述的系统,其特征在于,所述目标板包括第二调试通道单元,用于主控板与目标板底层调试单元之间的指令传递;底层调试单元,用于接收、解析以及执行客户端传送的调试指令。
14.根据权利要求13所述的系统,其特征在于,所述底层调试单元包括调试接口管理单元,提供一组设定的API接口,根据调试通道开启初始化,并依据调试指令调用设定的接口;内存设备软件实体,用于模拟串口设备接收调试接口管理单元传递的信息,与命令解析单元之间进行串口通信;命令解析单元,用于解析并执行调试指令,输出串口信息。
15.根据权利要求14所述的系统,其特征在于,调试接口管理单元所提供的设定API接口至少包括创建内存设备软件实体接口、释放内存设备软件实体接口、设置回调函数接口、注销回调函数接口、传入串口命令接口和定时轮询串口输出接口。
16.根据权利要求14所述的系统,其特征在于,所述内存设备软件实体与命令解析单元之间采用I/O系统中断机制或轮询机制模拟串口设备通信。
全文摘要
本发明公开了一种远程调试方法,包括以下步骤A.客户端根据调试端信息与调试端建立调试通道,将调试指令发送至调试端的主控板;B.所述主控板将接收的调试指令下发给目标板;C.所述目标板接收调试指令并作出相应处理。同时本发明还提供了一种远程调试系统。本发明采用了以主控板做为中心代理的远程串口调试方式,通过底层函数实现串口重定向,本发明尤其适用于不能近端调试串口的场景下,为企业提供产品远程定位和设备维护提供有效手段并节省人力成本。
文档编号G06F11/36GK1901569SQ200610090190
公开日2007年1月24日 申请日期2006年7月5日 优先权日2006年7月5日
发明者彭轶, 董华进 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1