CN102916833B - 远程调试方法、系统及调试目标设备 - Google Patents
远程调试方法、系统及调试目标设备 Download PDFInfo
- Publication number
- CN102916833B CN102916833B CN201210353390.1A CN201210353390A CN102916833B CN 102916833 B CN102916833 B CN 102916833B CN 201210353390 A CN201210353390 A CN 201210353390A CN 102916833 B CN102916833 B CN 102916833B
- Authority
- CN
- China
- Prior art keywords
- debug
- debugging
- target equipment
- main control
- control device
- 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
Abstract
本发明涉及一种远程调试方法、系统及调试目标设备,该方法包括:在调试开始阶段,调试目标设备接收开始调试指令,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;在正常调试阶段,所述调试目标设备接收调试指令后通过所述输入渠道发送给调试命令处理器,所述调试命令处理器执行调试指令,并通过所述输出渠道反馈调试指令执行结果;在调试结束阶段,所述调试目标设备接收结束调试指令,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道。本发明远程调试方法、系统及调试目标设备在调试时不占用调试目标设备的串口。
Description
技术领域
本发明涉及调试技术,尤其是一种远程调试方法、系统及调试目标设备。
背景技术
设备调试是设备开发与维护中不可或缺的重要一环,是设备开发和维护人员定位和解决问题的一个重要的手段。对于只有业务功能而无独立的网络管理功能,没有独立的外部网络管理接口的远端设备来说,由于通常只有调试串口而没有telnet(一种常用的远程控制Web服务器的方法)等接口,所以串口资源在远端设备的开发中显得非常紧缺,如果某些原因导致串口死掉,那只能使用其它调试工具(比如workbench等)连接目标机与主机进行调试,而有些远端设备在连接目标机和主机时,需要进行其它操作以使设备的CPU口与主机连通,提高了调试环境搭建的复杂性。另外,由于无法使用telnet等基于TCP/IP的方式连接远端设备,在产品的维护过程中,如果远端设备出现了问题,维护人员只能下到现场来定位问题,提高了人力成本。
公开于2007年1月24日,公开号为CN 1901569A的中国发明专利申请,公开了名为“远程调试方法及系统”的技术方案。该专利采用了以主控板作为中心代理的远程串口调试方法,通过串口重定向来实现目标板的串口输出消息显示到客户端;并采用了通过目标板的内存实体调用已注册的回调函数的方式主动上报串口输出消息。
上述调试方法虽然能有效的地对目标板的输出消息进行显示,但是由于采用了串口重定向的方法来实现串口输出消息,在开发过程中,若使用了通过主控板来调试目标板,那么将无法直接使用目标板的外部串口来进行调试,无法解决串口资源紧缺的问题。另外,采用主动上报串口输出消息的方法来实现调试信息显示在客户端上,而串口输出信息的信息量具有突发性,持续输出量可能非常大的特点,如果采用不可调控的主动上报的方式,会对板间通信造成巨大的通信压力,可能会造成正常业务通信中断。同时,由于采用了一级板间通信,只能实现对同一机框内的目标板进行调试,无法实现对远端设备进行调试。
发明内容
本发明要解决的技术问题是提供一种远程调试方法、系统及调试目标设备,以解决现有远程调试导致的串口紧缺的技术问题。
为解决上述技术问题,本发明提供了一种远程调试方法,该方法包括:
在调试开始阶段,调试目标设备接收开始调试指令,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;
在正常调试阶段,所述调试目标设备接收调试指令后通过所述输入渠道发送给调试命令处理器,所述调试命令处理器执行调试指令,并通过所述输出渠道反馈调试指令执行结果;
在调试结束阶段,所述调试目标设备接收结束调试指令,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道。
进一步地,在调试开始阶段,所述调试目标设备执行创建操作后,发送支持调试响应,所述调试主控设备接收所述支持调试响应后,创建轮询器;在正常调试阶段,所述调试主控设备的轮询器定时产生轮询报文,所述调试主控设备发送该轮询报文,所述调试目标设备根据接收的轮询报文反馈调试指令执行结果;在调试结束阶段,所述调试主控设备销毁创建的轮询器。
可选地,在正常调试阶段,所述调试目标设备监测接收轮询报文的间隔是否超时,若超时,则执行销毁操作。
在正常调试阶段,调试主控设备判断没有接收到用户侧调试指令的时间间隔是否超过预设阈值,若是,则降低轮询报文的发送频率,否则提高轮询报文的发送频率。
优选地,所述存储池包括第一存储池和第二存储池;所述存储装载步骤包括:
(a)所述调试命令处理器向所述第一存储池输出信息;
(b)所述装载器开始装载第一存储池中的信息为数据块,同时所述调试命令处理器向所述第二存储池输出信息;
(c)所述第一存储池中的信息装载完毕后,所述装载器装载所述第二存储池中的信息为数据块,同时所述调试命令处理器向第一存储池输出信息,所述第二存储池中的信息装载完毕后,返回步骤(b)。
为解决前述技术问题,本发明还提供了一种调试目标设备,该调试目标设备包括:
管理器,用于在调试开始阶段,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;在调试结束阶段,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道。
接收器,用于在调试开始阶段,接收开始调试指令;在正常调试阶段,接收调试指令并通过输入渠道发送给所述调试命令处理器;在调试结束阶段,接收结束调试指令;
调试命令处理器,用于在正常调试阶段执行调试指令,以及将调试指令执行结果发送给输出渠道;
所述发送器,用于反馈所述输出渠道中的调试指令执行结果。
为解决前述技术问题,本发明还提供了一种调试系统,该系统包括前述调试目标设备和调试主控设备。
相较于现有技术,本发明方法、调试目标设备及调试系统中,调试目标设备单独创建用于调试的调试命令处理器,不使用串口资源,解决了通过串口重定向后带来的设备串口接口无法使用的问题。调试主控设备使用了轮询器,防止了由于输出流的突发性、信息量过大造成板间通信压力过大,提高了输出信息发送的可控性;同时,可用于调试目标设备监控调试主控设备或枢纽设备是否已经停止工作。调试主控设备轮询器的自适应发送频率调整机制,既满足了输入指令的实时性输出的要求,又减少了板间通信的压力。调试目标设备的装载器使用了双存储池系统,保证了装载器与调试命令处理器之间的稳定协调,防止了输出消息输出和装载之间的数据冲突。
附图说明
图1是本发明远程调试方法实施例1的示意图;
图2是本发明方法实施例中调试目标设备将调试指令执行结果发送给调试主控设备的示意图;
图3是本发明远程调试方法实施例2的示意图;
图4是在正常调试阶段,调试主控设备自适应调整轮询器发送频率的流程示意图;
图5、图6是采用双存储池输出机制的存储装载步骤的具体示意图;
图7是调试目标设备自适应可调试的数据块装载管理制度示意图;
图8是调试目标设备检测轮询报文的示意图;
图9是本发明调试目标设备实施例的模块结构示意图;
图10是本发明调试系统实施例的模块结构示意图。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
该实施例1中,系统的运行通过调试主控设备接收到用户指令或调试主控设备主动向调试目标设备发送指令来进行。指令包括:开始调试指令、调试指令、结束调试指令共三种。
本发明远程调试方法实施例1,如图1所示,包括:
步骤101:在调试开始阶段,调试目标设备接收开始调试指令,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;
在调试的开始阶段,用户侧进入调试主控设备的调试目标设备调试模式,使用“开始调试”指令,向调试目标设备发送调试请求。调试目标设备接收到“开始调试”指令后,检查自己是否支持调试主控设备调试。如果远端不支持通过调试主控设备调试,回复“不支持调试”的响应消息,告知用户侧,调试停止。如支持,则进行创建操作:包括建立调试命令处理器,为调试命令处理器准备好输入和输出渠道;并回复“支持调试”的响应消息,告知用户侧,调试目标设备已经准备好,用户侧可以开始调试了。调试主控设备通过调试主控设备的接收器收到调试目标设备的“支持调试”响应消息。
为调试命令处理器准备好输入和输出渠道是调试目标设备的准备工作中的重要一环。在本发明中,不直接使用串口来进行输入输出重定向,不使用串口控制台来处理用户的输入指令,而是单独创建一个调试命令处理器来处理用户输入,通过对该调试命令处理器分别进行输入和输出重定向来实现用户指令的输入和执行结果或者调试信息输出的保存。
本发明中创建调试命令处理器的输入渠道的含义包括创建输入渠道以及使用所述输入渠道对调试命令处理器建立输入重定向,即调试命令处理器只把来自该输入渠道的消息作为自己的输入。相应地,创建调试命令处理器的输出渠道的含义包括创建输出渠道以及使用所述输出渠道对调试命令处理器建立输出重定向,即调试命令处理器的输出消息全部输出到输出渠道。
步骤102:在正常调试阶段,所述调试目标设备接收调试指令后通过所述输入渠道发送给调试命令处理器,所述调试命令处理器执行调试指令,并通过所述输出渠道反馈调试指令执行结果;
在正常调试阶段,用户侧输入调试指令后,调试主控设备使用“发送调试指令”指令,把调试指令发送到调试目标设备。调试目标设备接收到调试指令后,发送到调试命令处理器进行处理。
在某些远程系统中,采用了实时输出的机制,也就是在目标设备的输出系统中,每输出一个字符,都会直接通过通信通道发送到用户侧进行显示。但是在调试目标设备的调试过程中,输出信息拥有偶然性、庞大性的特点;而且,板间通信传递的信息含有大量的正常的业务。如果还采用这种实时单字符的传递系统,那么调试主控设备和调试目标设备之间的板间通信压力将会大大增加,影响正常的管理业务需要,产生正常业务的丢包现象。为了解决这一问题,对实施例1进行改进,调试目标设备使用装载器,先把调试目标设备的输出信息按照规定的装载块大小先装载数据块,每次运输的不是单个字符,而是整块的连续的字符串,降低了板间通信的繁忙程度,减少板间通信的压力。
具体地,所述调试命令处理器的输出渠道包括存储池和缓冲区,在正常调试阶段,如图2所示,调试目标设备将调试指令执行结果发送给调试主控设备包括:
步骤201:存储装载步骤,调试命令处理器将处理获得的信息输出至存储池,所述装载器将所述存储池中的信息装载为数据块;
步骤202:分批发送步骤,所述调试目标设备分批次发送所述数据块给所述调试主控设备,且每批次发送的数据块的净荷总量小于或等于预设值。
所述调试目标设备发送时,先将当前批次的数据块连接起来,加上协议头后发送。
步骤103:在调试结束阶段,所述调试目标设备接收结束调试指令,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道。
在调试的结束阶段,用户侧发送结束调试指令。调试主控设备接收到指令后,首先进行调试主控设备自己的善后处理,销毁轮询器。然后通过发送器向调试目标设备发送“结束调试”指令。调试目标设备接收到“结束调试”指令后,进行调试目标设备自己的善后处理即销毁操作,包括:销毁调试命令处理器,销毁调试命令处理器的输入和输出渠道。
该实施例1中,调试目标设备单独创建了一个调试命令处理器,不使用串口资源,解决了通过串口重定向后带来的设备串口接口无法使用的问题。
实施例2
该实施例2中,系统的运行通过调试主控设备接收到用户指令或调试主控设备主动向调试目标设备发送调试指令来进行。调试指令包括:开始调试、发送调试指令、轮询调试输出、结束调试共四种。
本发明远程调试方法实施例2,如图3所示,包括:
步骤301:在调试开始阶段,调试主控发送开始调试指令,接收支持调试响应后,创建轮询器;调试目标设备接收开始调试指令,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;
在调试的开始阶段,用户侧进入调试主控设备的调试目标设备调试模式,使用“开始调试”指令,向调试目标设备发送调试请求。调试目标设备接收到“开始调试”指令后,检查自己是否支持调试主控设备调试。如果远端不支持通过调试主控设备调试,回复“不支持调试”的响应消息,告知用户侧,调试停止。如支持,则进行创建操作:包括建立调试命令处理器,建立装载器,为调试命令处理器准备好输入和输出渠道;并回复“支持调试”的响应消息,告知用户侧,调试目标设备已经准备好,用户侧可以开始调试了。调试主控设备通过调试主控设备的接收器收到调试目标设备的“支持调试”响应消息后,建立轮询器,以便定时轮询调试目标设备的输出信息。
为调试命令处理器准备好输入和输出渠道是调试目标设备的准备工作中的重要一环。在本发明中,不直接使用串口来进行输入输出重定向,不使用串口控制台来处理用户的输入指令,而是单独创建一个调试命令处理器来处理用户输入,通过对该调试命令处理器分别进行输入和输出重定向来实现用户指令的输入和执行结果或者调试信息输出的保存。
步骤302:在正常调试阶段,所述调试目标设备接收调试指令后通过所述输入渠道发送给调试命令处理器,所述调试命令处理器执行调试指令,所述调试主控设备的轮询器定时产生轮询报文,所述调试主控设备发送该轮询报文,所述调试目标设备根据接收的轮询报文反馈调试指令执行结果;
在调试主控设备与调试目标设备的通信方式中,有两种基本的方式:一种是通信请求由调试主控设备发起,调试目标设备被动响应;另外一种是调试目标设备主动向调试主控设备发送自己的输出信息。后一种方法的优点是实时迅速,减少了一问一答的通信负荷。然而,对于调试命令处理器的输出流来说,有突发性、信息过大的特点,如果使用后一种上报方法,会产生瞬时上报信息量过大,板间通信压力过大的问题,造成正常通信业务发生丢包的现象;也无法根据调试主控设备自己的运行状况来实时调整调试报文的发送、接收频率。为了解决该技术问题,本实施例2中在调试主控设备使用了轮询器,通过自适应的轮询器对输出信息进行可控性输出。
具体地,对每次轮询器的轮询响应报文的大小进行限制,比如4000个字节的净荷。本实施例中通过装载器把存储池的内容装载为一个个的数据块。数据块的最大大小与轮询响应报文的大小相同,也为4000个字节,但是如果定时装载的时候存储池中只有200个字节,那么也会进行装载,这个数据块的大小就是200个字节。等到轮询报文到来的时候,可能已经装好了若干个数据块。比如一共装好了3块,第1块的大小是200个字节,第2块的大小是3000个字节,第3块是4000个字节,由于响应报文的最大净荷是4000个字节,那么本次响应报文只反馈第1、2数据块,第3块等下次轮询报文到来之后再进行响应反馈。
调试目标设备可以根据接收到轮询器的发送报文来监控调试主控设备或者枢纽设备是否已经停止工作(比如掉电或拔盘等)。当调试主控设备或者枢纽设备停止工作后,调试目标设备需要进行销毁装载器等系列处理,减少CPU负担。
在正常调试阶段,调试主控设备的轮询器定时产生轮询报文,以查询调试目标设备是否有装载好的数据块。如果没有装载好的数据块,则直接把调试目标设备当前的调试命令处理器状态(包括开始和结束两种状态)响应到调试主控设备;反之若有已经装载好的数据块,则将若干个数据块进行连接并最后挂接调试目标设备当前的调试命令处理器状态,发送到调试主控设备,调试主控设备对接收到的信息进行装卸并发送到用户侧进行显示。其中,每次装载的多个数据块的净荷总量不应超过管理器规定的最大载重。另外,如果调试目标设备的调试命令处理器状态为结束状态,那么调试主控设备会执行善后处理,销毁轮询器。
调试命令处理器在以下情形下会处于结束状态:超时(如10分钟)没有接收到调试主控设备的调试指令(不是轮询报文)时;用户输入注销指令退出登录时。
轮询报文超时(比如调试主控设备或者枢纽设备停止工作)时,调试目标设备直接执行销毁操作。
在用户侧输入指令时,对输出有较高的实时性的需求,如果输出延时较长,那么用户体验将会比较差;而如果轮询器的发送频率长期处于一个较高的值,将会增加板间通信的压力,浪费通信资源。因此,优选地,本发明对轮询器采用了自适应调整发送频率的机制。在用户侧输入用户指令时,提高轮询器的发送频率,以加快调试目标设备输出信息在用户侧的输出速度;如果距离上一次用户输出指令的时间已经超过规定的时间阈值,那么降低轮询器的发送频率。具体地,如图4所示,在正常调试阶段,调试主控设备自适应调整轮询器发送频率的机制包括以下步骤:
步骤401:判断没有接收到用户侧调试指令的时间间隔是否超过预设阈值,若是,则执行步骤402,否则执行步骤403;
步骤402:降低轮询报文的发送频率(比如恢复为默认值);
步骤403:提高轮询报文的发送频率。
调试主控设备通过以上流程可自适应调整轮询报文的发送频率。
具体地,所述调试命令处理器的输出渠道包括存储池和缓冲区,在正常调试阶段,调试目标设备将调试指令执行结果发送给调试主控设备的过程包括如上文所述的存储装载步骤和分批发送步骤。
由于输出流带有时间上的不确定性,为了防止在输出与装载的过程中出现数据冲突而引起的输出流丢失的问题,优选地,本发明使用双存储池输出机制,提高输出数据装载的稳健性。即将上文所说的存储池划分为第一、第二存储池;在正常调试阶段,装载器交替装载第一存储池和第二存储池中的信息(即当其中一个存储池装载完后,装载另一个存储池),且调试命令处理器向未处于装载状态的存储池输出信息。
如图5和图6所示,上述存储装载步骤进一步包括:
步骤501:所述调试命令处理器向所述第一存储池输出信息;
步骤502:所述装载器开始装载第一存储池中的信息为数据块,同时所述调试命令处理器向所述第二存储池输出信息;
步骤503:所述第一存储池中的信息装载完毕后,所述装载器装载所述第二存储池中的信息为数据块,同时所述调试命令处理器向第一存储池输出信息;所述第二存储池中的信息装载完毕后,返回步骤502。
调试目标设备的装载器使用了上述双存储池机制,保证了装载器与调试命令处理器之间的稳定协调,防止了输出消息输出和装载之间的数据冲突。
可选地,调试命令处理器把处理获得的输出信息通过输出重定向存储在存储池中,等待装载器进行装载。装载器把输出信息分数据块装载好,每个数据块的重量不超过管理器规定的最大重量。
在调试模式下,打开某些调试开关时,输出信息的可能会非常多,装载器一直处于非空闲状态,这时就会产生大量的装载好的数据块。而为了维护板间通信的稳定性,在每个时间段内可以运载的数据块数是有限制的。这样就导致了大量的数据块的积压。如果数据块数量过于庞大,不仅会造成大量的内存碎片,而且由于每个数据块的销毁是非常耗时的,销毁成千上万个数据块将会非常耗时,同时也增加CPU负担。
因此,为了防止这样的情况发生,在以上步骤502和503的装载器在装载过程中,使用了自适应可调试的数据块装载管理制度。如图7所示,判断已装载的数据块是否达到装载阈值,如未达到,则继续装载,如达到则停止装载,判断已装载的数据块是否被发送,若已发送,再继续装载。
步骤303:在调试结束阶段,所述调试目标设备接收结束调试指令,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道,所述调试主控设备直接销毁创建的轮询器。
在调试的结束阶段,用户侧发送结束调试指令。调试主控设备接收到指令后,首先进行调试主控设备自己的善后处理,销毁轮询器。然后通过发送器向调试目标设备发送“结束调试”指令。调试目标设备接收到“结束调试”指令后,进行调试目标设备自己的善后处理即销毁操作,包括:销毁调试命令处理器,销毁调试命令处理器的输入和输出渠道(具体包括销毁调试命令处理器的存储池,销毁装载器,销毁已经装载好的数据块)。
本实施例2中,调试主控设备使用了轮询器,防止了由于输出流的突发性、信息量过大造成板间通信压力过大,提高了输出信息发送的可控性;同时,可用于调试目标设备监控调试主控设备或枢纽设备是否已经停止工作。
优选地,在正常调试阶段,所述调试目标设备根据轮询器来判断调试主控设备、枢纽设备是否被拔出或掉电,具体地,如图8所示,包括以下步骤:
步骤801:监测没有接收到轮询报文的时间间隔是否超过阈值,若是则执行步骤802,否则继续监测,同时执行其他正常流程处理;
步骤802,执行销毁操作。
调试目标设备的装载器使用了双存储池系统,保证了装载器与调试命令处理器之间的稳定协调,防止了输出消息输出和装载之间的数据冲突。
可理解地,本发明方案也适用于将远端设备作为调试目标设备进行调试,这种情形下,调试主控设备和调试目标设备通过一个或若干个枢纽设备实现通信,该枢纽设备对传输消息中的净荷进行半透明转发,其中所述调试主控设备与所述枢纽设备,以及所述枢纽设备与所述调试目标设备之间通过板间通信协议通信。
通过枢纽设备的具体调试过程大致如下:
用户侧进入调试主控设备的调试目标设备调试模式,通过枢纽设备向调试目标设备发送调试请求;调试主控设备和调试目标设备两端都为调试做好准备工作;
调试主控设备经过枢纽设备,把用户侧的调试指令、指令发送到调试目标设备,并通过轮询器定时发送轮询报文到调试目标设备;
调试目标设备的输出数据经过枢纽设备送到调试主控设备,再发往用户侧输出显示。
在调试主控设备和调试目标设备之间采用枢纽设备进行中转处理时。正常情况下,为了减少报文在链路上的时间损耗,枢纽设备半透明转发调试主控设备与调试目标设备之间的数据块。当枢纽设备停止工作时,调试主控设备检测到枢纽设备停止工作后,调试主控设备会执行善后处理,销毁轮询器;调试目标设备发现调试主控设备发送过来的轮询报文接收超时后,进行调试命令处理器、装载器等设备的销毁工作。
具体地,当调试主控设备通过一个枢纽设备与调试目标设备进行通信时,调试主控设备与枢纽设备之间使用第一级板间通信来实现调试主控设备与枢纽设备之间的数据传递,板间通信的物理通道包括SPI、I2C、HDLC、RS232、ETH等类型中的一种或若干种;枢纽设备与调试目标设备之间使用了第二级板间通信来实现调试目标设备与枢纽设备之间的信息传递,它们之间的物理通道也包括SPI、I2C、HDLC、RS232、ETH等类型中的一种或若干种。具体板间通信协议如下:
第一级板间通信协议:
第二级板间通信协议:
协议头 | 跳数 | 净荷 | 校验和 |
第一级板间通信用于调试主控设备与枢纽设备之间的数据通信,在普通的通信协议的基础上,添加跳数及调试目标设备标识。跳数是指目标设备与本设备之间的距离,跳数为0表示该报文是发送给自己的报文。调试目标设备标识由设备类型和设备ID组成。设备类型表示该调试目标设备的型号,用于校验;设备ID用于枢纽设备的报文转发过程,每个枢纽设备对自己的下一级调试目标设备进行设备ID的统一编码。
枢纽设备在接收到由第一级板间通信发送过来的调试主控设备的消息时,如果跳数为1,该报文将被转发到调试目标设备。枢纽设备根据设备ID来获知应该转发到哪一个下级调试目标设备,在转发前,枢纽设备需要去掉调试目标设备标识,并更新跳数为0,附上净荷内容后重新计算校验和再进行转发。这就是第二级板间通信协议。
当调试目标设备往调试主控设备发送消息时,首先通过第二级别板间通信把报文发送给枢纽设备。枢纽设备接收到报文后,在报文上加上被自己裁掉的调试目标设备标识,并更新跳数为1,再通过第一级板间通信转发到调试主控设备。
若调试主控设备通过两个或多个枢纽设备与调试目标设备进行通信,则其半透明转发的原理类似,在此不再赘述。
为实现上述方法,本发明还提供了一种调试目标设备,如图9所示,该调试目标设备包括:
管理器,用于在调试开始阶段,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;在调试结束阶段,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道。
接收器,用于在调试开始阶段,接收开始调试指令;在正常调试阶段,接收调试指令并通过输入渠道发送给所述调试命令处理器;在调试结束阶段,接收结束调试指令;
调试命令处理器,用于在正常调试阶段执行调试指令,以及将调试指令执行结果发送给输出渠道;
所述发送器,用于反馈所述输出渠道中的调试指令执行结果。
具体地,所述调试命令处理器的输出渠道包括存储池和装载器,其中:
所述存储池,用于存储所述调试命令处理器输出的信息;
所述装载器,用于将所述存储池中的信息装载为数据块;
所述发送器分批次发送所述数据块给所述调试主控设备,且每批次发送的数据块的净荷总量小于或等于预设值。
优选地,所述目标设备的发送器发送每批次数据块时,先将当前批次的数据块连接起来,加上协议头后发送。
对应于前述方法实施例2,所述存储池包括第一存储池和第二存储池;
所述调试命令处理器,从所述第一存储池开始,交替向未被装载的第一或第二存储池输出信息;
所述装载器,从所述第一存储池开始,交替装载第一或第二存储池中的信息。
优选地,所述装载器还用于在装载过程中,判断已装载的数据块是否达到装载阈值,如未达到,则继续装载,如达到则停止装载,等待已装载的数据块被发送后,再继续装载。
另外,本发明还提供了一种实现上述方法实施例的调试系统,如图10所示,该系统包括前述调试目标设备和调试主控设备。
进一步地,所述调试目标设备的发送器,还用于在调试开始阶段发送支持调试响应;所述调试目标设备的接收器,还用于在调试正常阶段接收调试主控设备发送的轮询报文;
所述调试主控设备包括:
接收器,用于接收所述调试目标设备反馈的信息,包括支持调试响应;
管理器,用于在接收所述支持调试响应后,创建轮询器;以及在调试结束阶段,销毁创建的轮询器;
轮询器,在正常调试阶段,用于定时产生轮询报文;
发送器,用于发送调试指令,包括所述轮询器产生的轮询报文;
所述主控设备发送给该轮询报文,所述目标设备根据接收的轮询报文反馈调试指令执行结果。
可选地,在正常调试阶段,所述调试目标设备的管理器还用于监测接收轮询报文的间隔是否超时,若超时,则执行销毁操作。
优选地,调试主控设备的管理模块,在正常调试阶段,还用于判断没有接收到用户侧调试指令的时间间隔是否超过预设阈值,若是,则降低轮询报文的发送频率,否则提高轮询报文的发送频率。
可选地,该系统还包括一个或若干个枢纽设备,用于对传输消息中的净荷进行透明转发,所述主控设备和目标设备通过一个或若干个枢纽设备实现通信,其中所述主控设备与所述枢纽设备,以及所述枢纽设备与所述目标设备之间通过板间通信协议通信。
在最佳实施方式中,该系统包括以下设备:用户侧设备、调试主控设备、枢纽设备、调试目标设备。其中,调试主控设备包括至少以下子设备:管理器、发送器、接收器,以及轮询器;调试目标设备至少包括以下子设备:管理器、发送器、接收器、装载器,以及调试命令处理器。
相较于现有技术,本发明具有以下技术效果:
调试目标设备单独创建用于调试的调试命令处理器,不使用串口资源,解决了通过串口重定向后带来的设备串口接口无法使用的问题。
调试主控设备使用了轮询器,防止了由于输出流的突发性、信息量过大造成板间通信压力过大,提高了输出信息发送的可控性;同时,可用于调试目标设备监控调试主控设备或枢纽设备是否已经停止工作。
调试主控设备轮询器的自适应发送频率调整机制,既满足了输入指令的实时性输出的要求,又减少了板间通信的压力。
调试目标设备的装载器使用了双存储池系统,保证了装载器与调试命令处理器之间的稳定协调,防止了输出消息输出和装载之间的数据冲突。
本发明远程调试方法及系统,使得在调试目标设备的开发阶段,开发人员可以使用调试目标设备的串口进行调试,也可以同时通过调试主控设备对调试目标设备进行调试;在调试目标设备的维护阶段,维护人员可以直接通过网络非现场查看调试目标设备的调试信息,提高了定位和解决问题的效率,也节省了人力、物力。
本发明远程调试方法及系统,解决了调试目标设备开发中近端调试时串口资源紧张的问题、调试目标设备维护中无法远程调试调试目标设备的问题,同时克服了主动上报调试目标设备调试信息时流量不可控的问题。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/器件可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
Claims (19)
1.一种远程调试方法,其特征在于,该方法包括:
在调试开始阶段,调试目标设备接收开始调试指令,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;
在正常调试阶段,所述调试目标设备接收调试指令后通过所述输入渠道发送给调试命令处理器,所述调试命令处理器执行调试指令,并通过所述输出渠道反馈调试指令执行结果;
在调试结束阶段,所述调试目标设备接收结束调试指令,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道;
其中,在调试开始阶段,所述调试目标设备执行创建操作后,发送支持调试响应,调试主控设备接收所述支持调试响应后,创建轮询器;在正常调试阶段,所述调试主控设备的轮询器定时产生轮询报文,所述调试主控设备发送该轮询报文,所述调试目标设备根据接收的轮询报文反馈调试指令执行结果;在调试结束阶段,所述调试主控设备销毁创建的轮询器。
2.如权利要求1所述的方法,其特征在于:所述调试命令处理器的输出渠道包括存储池和装载器,在正常调试阶段,调试目标设备将调试指令执行结果发送给调试主控设备包括:
存储装载步骤,调试命令处理器将处理获得的信息输出至存储池,所述装载器将所述存储池中的信息装载为数据块;
分批发送步骤,所述调试目标设备分批次发送所述数据块给所述调试主控设备,且每批次发送的数据块的净荷总量小于或等于预设值。
3.如权利要求2所述的方法,其特征在于:所述调试目标设备发送时,先将当前批次的数据块连接起来,加上协议头后发送。
4.如权利要求2所述的方法,其特征在于:所述存储池包括第一存储池和第二存储池;所述存储装载步骤包括:
(a)所述调试命令处理器向所述第一存储池输出信息;
(b)所述装载器开始装载第一存储池中的信息为数据块,同时所述调试命令处理器向所述第二存储池输出信息;
(c)所述第一存储池中的信息装载完毕后,所述装载器装载所述第二存储池中的信息为数据块,同时所述调试命令处理器向第一存储池输出信息,所述第二存储池中的信息装载完毕后,返回步骤(b)。
5.如权利要求2所述的方法,其特征在于:所述装载器在装载过程中,判断已装载的数据块是否达到装载阈值,如未达到,则继续装载,如达到则停止装载,等待已装载的数据块被发送后,再继续装载。
6.如权利要求1所述的方法,其特征在于:在正常调试阶段,所述调试目标设备监测接收轮询报文的间隔是否超时,若超时,则执行销毁操作。
7.如权利要求1所述的方法,其特征在于:在正常调试阶段,所述调试主控设备对轮询报文的发送频率进行自适应调整。
8.如权利要求1所述的方法,其特征在于:在正常调试阶段,所述调试主控设备判断没有接收到用户侧调试指令的时间间隔是否超过预设阈值,若是,则降低轮询报文的发送频率,否则提高轮询报文的发送频率。
9.如权利要求1所述的方法,其特征在于:所述调试主控设备和所述调试目标设备通过一个或若干个枢纽设备实现通信,该枢纽设备对传输消息中的净荷进行透明转发,其中所述调试主控设备与所述枢纽设备,以及所述枢纽设备与所述调试目标设备之间通过板间通信协议通信。
10.一种调试目标设备,其特征在于,该调试目标设备包括:
管理器,用于在调试开始阶段,执行创建操作,包括创建调试命令处理器及其输入、输出渠道;在调试结束阶段,执行销毁操作,包括销毁创建的调试命令处理器及其输入、输出渠道;
接收器,用于在调试开始阶段,接收开始调试指令;在正常调试阶段,接收调试指令并通过输入渠道发送给所述调试命令处理器;在调试结束阶段,接收结束调试指令;
调试命令处理器,用于在正常调试阶段执行调试指令,以及将调试指令执行结果发送给输出渠道;
发送器,用于反馈所述输出渠道中的调试指令执行结果;
其中,所述调试目标设备的发送器,还用于在调试开始阶段发送支持调试响应给调试主控设备;所述调试目标设备的接收器,还用于在调试正常阶段接收所述调试主控设备发送的轮询报文;
所述调试目标设备根据接收的轮询报文反馈调试指令执行结果。
11.如权利要求10所述的调试目标设备,其特征在于:所述调试命令处理器的输出渠道包括存储池和装载器,其中:
所述存储池,用于存储所述调试命令处理器输出的信息;
所述装载器,用于将所述存储池中的信息装载为数据块;
所述发送器分批次发送、所述数据块给所述调试主控设备,且每批次发送的数据块的净荷总量小于或等于预设值。
12.如权利要求11所述的调试目标设备,其特征在于:所述目标设备的发送器发送每批次数据块时,先将当前批次的数据块连接起来,加上协议头后发送。
13.如权利要求11所述的调试目标设备,其特征在于:所述存储池包括第一存储池和第二存储池;
所述调试命令处理器,从所述第一存储池开始,交替向未被装载的第一或第二存储池输出信息;
所述装载器,从所述第一存储池开始,交替装载第一或第二存储池中的信息。
14.如权利要求11所述的调试目标设备,其特征在于:所述装载器还用于在装载过程中,判断已装载的数据块是否达到装载阈值,如未达到,则继续装载,如达到则停止装载,等待已装载的数据块被发送后,再继续装载。
15.一种调试系统,该系统包括如权利要求10-14中任一项所述的调试目标设备和调试主控设备。
16.如权利要求15所述的调试系统,其特征在于:
所述调试目标设备的发送器,还用于在调试开始阶段发送支持调试响应;所述调试目标设备的接收器,还用于在调试正常阶段接收调试主控设备发送的轮询报文;
所述调试主控设备包括:
接收器,用于接收所述调试目标设备反馈的信息,包括支持调试响应;
管理器,用于在接收所述支持调试响应后,创建轮询器;以及在调试结束阶段,销毁创建的轮询器;
轮询器,在正常调试阶段,用于定时产生轮询报文;
发送器,用于发送调试指令,包括所述轮询器产生的轮询报文;
所述主控设备发送该轮询报文,所述目标设备根据接收的轮询报文反馈调试指令执行结果。
17.如权利要求15所述的系统,其特征在于:在正常调试阶段,所述调试目标设备的管理器还用于监测接收轮询报文的间隔是否超时,若超时,则执行销毁操作。
18.如权利要求15所述的系统,其特征在于:调试主控设备的管理模块,在正常调试阶段,还用于判断没有接收到用户侧调试指令的时间间隔是否超过预设阈值,若是,则降低轮询报文的发送频率,否则提高轮询报文的发送频率。
19.如权利要求15所述的系统,其特征在于:该系统还包括一个或若干个枢纽设备,用于对传输消息中的净荷进行透明转发,所述主控设备和目标设备通过一个或若干个枢纽设备实现通信,其中所述主控设备与所述枢纽设备,以及所述枢纽设备与所述目标设备之间通过板间通信协议通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210353390.1A CN102916833B (zh) | 2012-09-20 | 2012-09-20 | 远程调试方法、系统及调试目标设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210353390.1A CN102916833B (zh) | 2012-09-20 | 2012-09-20 | 远程调试方法、系统及调试目标设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102916833A CN102916833A (zh) | 2013-02-06 |
CN102916833B true CN102916833B (zh) | 2015-05-13 |
Family
ID=47615071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210353390.1A Active CN102916833B (zh) | 2012-09-20 | 2012-09-20 | 远程调试方法、系统及调试目标设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102916833B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103517307B (zh) * | 2013-09-23 | 2016-08-24 | 无锡高联信息技术有限公司 | 一种基于td-scdma的远程调试系统 |
CN103531002B (zh) * | 2013-09-23 | 2016-08-10 | 无锡高联信息技术有限公司 | 一种基于td-scdma的远程调试方法 |
CN105871678B (zh) * | 2016-06-02 | 2019-09-24 | 郭立峰 | 远程管理私有网络内终端设备的方法 |
CN107070694A (zh) * | 2017-01-16 | 2017-08-18 | 重庆金美通信有限责任公司 | 一种在分布式通信网络中远程批量调试交换路由设备的方法 |
CN109286654B (zh) * | 2018-08-01 | 2021-08-06 | 深圳市德卡科技股份有限公司 | 基于串口的远程设备调试系统及方法 |
CN109639811B (zh) * | 2018-12-21 | 2022-01-25 | 北京金山云网络技术有限公司 | 数据传输方法、数据存储方法、装置、服务器及存储介质 |
CN112565036B (zh) * | 2020-11-24 | 2022-08-30 | 炬芯科技股份有限公司 | 数据传输方法、装置、存储介质及通信系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100694297B1 (ko) * | 2005-11-10 | 2007-03-14 | 한국전자통신연구원 | Atca 시스템에서의 이중화된 셀프 매니저 제공 장치 |
CN1901569B (zh) * | 2006-07-05 | 2010-08-04 | 华为技术有限公司 | 远程调试方法及系统 |
CN101179438B (zh) * | 2007-11-16 | 2011-03-02 | 中兴通讯股份有限公司 | 一种远程诊断系统及方法 |
-
2012
- 2012-09-20 CN CN201210353390.1A patent/CN102916833B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102916833A (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102916833B (zh) | 远程调试方法、系统及调试目标设备 | |
CN102297493B (zh) | 监控空调机组的系统和方法 | |
CN101957808B (zh) | 多cpu间的通信方法、系统及cpu | |
CN104243481A (zh) | 一种用电信息采集前置数据处理的方法及系统 | |
WO2022032984A1 (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN1983969A (zh) | 一种串口网络重定向系统及其实现方法 | |
CN103312528A (zh) | 一种心跳消息发送方法及用户终端 | |
CN101262366A (zh) | 目标单板调试方法、系统及分布式设备 | |
CN104317661A (zh) | 嵌入式双系统的系统间通信方法及装置 | |
CN104471915A (zh) | 链路聚合中的宽限状态和步调调整 | |
CN104270344A (zh) | 万兆网闸 | |
CN104270452B (zh) | 一种远程医疗数据管理系统及其无线网络通信方法 | |
CN105471688A (zh) | 一种通信节点、基于通信节点的通信链路及其工作方法 | |
CN102811451B (zh) | 一种Capwap隧道连接控制方法及装置 | |
CN102571739A (zh) | 批量数据的传输方法及装置 | |
CN102857436B (zh) | 一种基于irf网络的流量传输方法和设备 | |
CN104580209A (zh) | 实现多平台消息处理的装置及方法 | |
CN101631074A (zh) | 一种多链路报文发送方法、装置和网络设备 | |
WO2014048129A1 (zh) | 指示消息发送方法、接收方法、设备及系统 | |
CN102801561A (zh) | 一种管理网络设备的方法 | |
CN107179970B (zh) | 一种分布式设备中大规模oam检测系统及方法 | |
CN209805842U (zh) | 一种基于zynq的网络发包机 | |
CN102789399A (zh) | 多核分布式系统中的进程间通信方法 | |
CN106656668A (zh) | 一种云终端设备监控方法及系统 | |
CN112600736A (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 |