发明内容
有鉴于此,本发明提供了一种调试方法,能够获取被调试设备中逻辑电路的状态。
该方法包括:被调试设备逻辑电路包括一个以上的调试点,一条物理传输通道连接一个调试点;
调试服务设备接收读取被调试设备逻辑电路中调试点电平的读取指令,根据所述读取指令确定当前调试点,根据调试点与物理传输通道之间的对应关系,通过与所述当前调试点对应的物理传输通道,读取所述当前调试点电平。
较佳地,所述调试服务设备与调试点之间的物理传输通道为:连接调试服务设备与调试点的通信接口提供的、从被调试设备到调试服务设备的输入通道,该输入通道与调试点相连。
较佳地,所述输入通道为:所述通信接口提供的除数据接收通道、数据发送通道、地信号通道之外的输入通道。
其中,所述调试服务设备与所述被调试设备之间通过串行接口相连;所述输入通道为:数据载波检测DCD信号通道,和/或数据设备准备就绪DSR信号通道,和/或清除发送CTS信号通道,和/或振铃指示RI信号通道。
其中,所述调试点为所述逻辑电路的I/O引脚。
较佳地,该方法进一步包括:调试服务设备接收控制被调试设备中受控点的控制指令;
调试服务设备根据所述控制指令确定当前受控点,通过自身与所述当前受控点之间的物理传输通道,将当前受控点的电平设置为指定值。
其中,所述调试服务设备与所述被调试设备之间通过串行接口相连;调试服务设备与所述受控点之间的物理传输通道为:数据终端准备就绪DTR通道,和/或请求发送RTS通道;
所述受控点包括被调试设备中***在线编程ISP开关引脚和***复位RESET引脚。
较佳地,该方法进一步包括:调试服务设备接收调试工具指令;
调试服务设备将调试工具指令封装为符合远程串行协议RSP协议的数据包,通过遵循RSP协议的数据收发通道发送给被调试设备中的调试代理,接收调试代理执行调试工具指令对应的操作后返回的指令执行结果。
较佳地,调试服务设备接收的指令是调试方设备通过网络发送给调试服务设备的;所述调试点电平为指令执行结果;
该方法进一步包括:调试服务设备将得到的指令执行结果返回给调试方设备。
较佳地,所述指令执行结果返回给调试方设备之后,进一步包括:调试方设备根据作为指令执行结果的调试点电平生成时序图或真值表。
本发明还提供了一种调试***,能够获取被调试设备中逻辑电路的状态。
该***包括调试服务设备和被调试设备;所述调试服务设备通过物理传输通道与被调试设备中逻辑电路的调试点相连;
所述被调试设备包括逻辑电路和第二串行物理接口;所述逻辑电路的调试点与第二串行物理接口中的输入引脚相连;
所述调试服务设备包括服务单元和第一串行物理接口;所述第一串行物理接口的输入引脚通过传输线与所述第二串行物理接口的输入引脚对应相连;所述第一串行物理接口的输入引脚与所述服务单元相连;
所述服务单元,用于根据所接收的读取指令,从第一串行物理接口的输入引脚对应的输入通道上读取电平,作为调试点电平。
根据以上技术方案可见,本发明的调试方案采用物理传输通道将调试服务设备与被调试设备的逻辑电路中的调试点相连,由于是物理传输通道,因此调试服务设备与调试点之间具有电气通路,那么调试服务设备可以直接通过该电气通路获取逻辑电路中的调试点电平,从而使得调试点电平获得者可以通过对逻辑电路调试点的电平变化进行分析,确定逻辑电路中可能发生的故障。
通常,调试服务设备和被调试设备之间的已有接口为串行接口,因此进一步地,本发明实施例采用串行接口中的额外输入通道,即DCD信号通道、DSR信号通道、CTS信号通道和RI信号通道,作为获取调试点电平的物理传输通道。由于采用被调试设备上的已有接口,不用在被调试设备上增加额外接口,从而简化了远程调试***的硬件组成。
而且,本发明实施例将逻辑电路的I/O引脚电平作为调试点,当逻辑电路的I/O电平变化时,将直接体现在相关通道中,通过读取并分析这些通道中的电平,就可以得知逻辑电路状态,从而定位故障。
本发明实施例的调试服务设备还可以根据调试方设备指令,通过自身与被调试设备中受控点之间的输出通道,控制受控点电平,从而实现远程重启操作,和远程控制被调试设备进入ISP模式的操作。
调试服务设备还可以接收GDB指令,并通过数据收发通道发送至被调试设备,被调试设备中的调试代理根据GDB指令进行相应处理,从而实现单步调试、断点调试、读写内存、读写寄存器等功能。
具体实施方式
为了确定逻辑电路的状态,本发明实施例提供的调试方案,在被调试设备的逻辑电路中设置调试点,同时调试服务设备通过物理传输通道与调试点相连。调试服务设备接收来自外部的读取调试点电平的读取指令,根据所接收的读取指令,通过自身与待读取电平的调试点之间的物理传输通道,读取该调试点电平,从而获得逻辑电路状态。
其中,调试服务设备接收的读取指令可以是用户输入到调试服务设备的,也可以是通过网络接收自远程调试方设备的。在后者情况下,调试服务设备读取调试点电平后,进一步将调试点电平发送给调试方设备。那么,作为调试点电平获得者的远程调试方就可以根据逻辑电路中调试点的电平确定逻辑电路状态,进而对逻辑电路进行故障定位,从而实现了远程调试。
以下,在本发明实施例的描述中均以调试服务设备接收调试方设备的调试指令为例进行描述。
图2为本发明中远程调试***的结构示意图。如图2所示,该***包括作为调试方设备的客户端210、作为调试服务设备的服务器220和被调试设备230。调试方设备和调试服务设备之间采用支持客户端/服务器(Client/Server)的传输协议进行网络通信,一个服务器可以为多个客户端服务。其中,服务器220通过物理传输通道与被调试设备230中逻辑电路231的调试点相连。图2中逻辑电路231左侧虚线框内的短粗实线表示调试点。从调试点指向服务器220的单箭头实线标识物理传输通道。本发明实施例中,物理传输通道是指电气上直接连通的通路。
客户端210,用于通过网络向服务器220发送读取指令,该读取指令指示服务器220读取被调试设备230的逻辑电路231中调试点电平,然后客户端210接收服务器220返回的调试点电平。
服务器220,用于接收来自客户端210的读取指令,通过自身与待读取电平的调试点之间的物理传输通道,读取调试点电平,并返回给客户端210。
在实际中,可以在逻辑电路231中设置一个以上的调试点,例如图2中逻辑点231包括4个调试点。在具有多个调试点的情况下,一条物理传输通道对应一个调试点。那么服务器220在接收到读取指令后,根据该读取指令确定当前调试点,根据调试点与物理传输通道之间的对应关系,通过与所述当前调试点对应的物理传输通道,读取所述当前调试点电平。
通常,对于组合逻辑电路而言,根据逻辑电路真值表可以判断逻辑是否正确,对于时序逻辑电路而言,结合逻辑电路I/O输出的时序图可以判断逻辑是否正确。而真值表和时序图都是根据逻辑电路的I/O输出电平确定的。因此,本发明实施例将逻辑电路的I/O引脚作为调试点,从而得到逻辑电路I/O引脚的电平。客户端210进一步根据从服务器220接收的I/O引脚电平生成时序图,或者真值表,作为定位故障依据。当然,还可以对I/O引脚电平进行统计,生成波形图。
在实际中,服务器220与被调试设备230都具有串行接口,而且通过串行传输线相连。因此,较佳地,被调试设备230中的已有串行接口与调试点相连,那么,服务器220与调试点之间就形成了串行接口提供的传输通道。串行接口中的传输通道是有方向的,本发明是从调试点获取电平,因此需要采用串行接口提供的输入通道。
表1示出了9针的RS232串行接口中各引脚的定义和引脚对应传输通道的方向。
引脚号 |
引脚名 |
对应传输通道的方向 |
1 |
数据载波检测(DCD) |
输入 |
2 |
接收数据(RXD) |
输入 |
3 |
发送数据(TXD) |
输出 |
4 |
数据终端准备就绪(DTR) |
输出 |
5 |
信号地(GND) |
|
6 |
数据设备准备就绪(DSR) |
输入 |
7 |
请求发送(RTS) |
输出 |
8 |
清除发送(CTS) |
输入 |
9 |
振铃指示(RI) |
输入 |
表1
如表1所示,串行接口包括9个引脚,其中,RXD引脚、DCD引脚、DSR引脚、CTS引脚和RI引脚为提供输入通道的输入引脚,提供的输入通道分别为RXD信号通道、DCD信号通道、DSR信号通道、CTS信号通道和RI信号通道,但是RXD信号通道用于传输数据,经常被占用,因此,采用DCD信号通道、DSR信号通道、CTS信号通道和RI信号通道作为获取调试点电平的通道。
在实际中,采用其它形式的通信接口提供的输入通道与调试点相连,也可以完成调试点电平的读取,例如并行接口、网络接口或I2C总线接口提供的输入通道。I2C是一种总线接口,是Inter-IC的缩写。对于并行接口来说,采用的输入通道为除RXD信号通道、TXD信号通道和GND信号通道之外的输入通道。当然,采用物理传输线将服务器220与调试点相连也可以实现调试点电平的读取。
下面结合附图并举实施例,对本发明进行详细描述。以下实施例中均以串口中的DCD信号通道、DSR信号通道、CTS信号通道和RI信号通道作为获取调试点电平的通道,而且,被调试设备中逻辑电路的调试点为I/O引脚。该逻辑电路可以是一般的逻辑电路,也可以是现场可编程门阵列(FPGA,Field Programmable Gate Array),复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)等。客户端210与服务器220通过Telnet协议进行通信。Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议。应用Telnet协议,调试方以客户端的角色登录调试服务设备。
实施例一
图3为本发明实施例一中远程调试***的结构图。如图3所示,该***包括客户端210、服务器220和被调试设备230。客户端210和服务器220之间基于TCP/IP协议进行通信。其中,
图3中的客户端210具体包括调试指令生成单元211和通信单元212:
调试指令生成单元211,用于生成调试指令,发送给通信单元212;本实施例中该调试指令为读取逻辑电路231中I/O引脚电平的读取指令。
通信单元212,用于建立与服务器之间的通信通道,通过建立的通信通道,将调试指令发送给服务器220,从服务器220接收调试指令执行结果。
图3中的服务器220具体包括服务单元221和串行物理接口223。被调试设备230包括串行物理接口232和逻辑电路231。其中,串行物理接口223的输入引脚与服务单元221相连,串行物理接口232的输入引脚通过串行传输线与串行物理接口232的输入引脚对应相连,串行物理接口232的输入引脚与逻辑电路231的I/O引脚相连。经过以上连接,服务单元221通过串行物理接口221、串行传输线和串行物理接口232连接到I/O引脚,形成电气通路,即输入通道,一个I/O引脚对应一个电气通路。
本实施例中,串行物理接口的输入引脚包括DCD引脚、DSR引脚、CTS引脚和RI引脚。在实际中,根据逻辑电路231中待调试I/O引脚的数量,可以选择DCD引脚、DSR引脚、CTS引脚和RI引脚中一个或任意组合作为提供输入通道的输入引脚。
其中,服务单元221,用于接收来自客户端210的读取指令,从串行物理接口223的输入引脚对应的输入通道上读取电平,作为I/O引脚电平,并返回给客户端210。由于本实施例中逻辑电路231包括4个I/O引脚,因此在读取前,还要根据读取指令确定待读取电平的当前I/O引脚,根据保存在服务单元221的I/O引脚与输入通道的对应关系,从与当前I/O引脚对应的输入通道读取电平。串行接口223是符合串行通信协议的物理接口,本实施例采用9针的串行接口。
被调试设备230中的逻辑电路231是调试对象,本实施例中,预先确定待调试点包括I/O1引脚、I/O2引脚、I/O3引脚和I/O4引脚。如图3所示,I/O1引脚、I/O2引脚、I/O3引脚和I/O4引脚分别与串行物理接口232的DCD引脚,DSR引脚,CTS引脚和RI引脚相连。当需要调试的I/O数量大于4个时,可以在逻辑电路231的待调试I/O引脚处设置插孔,串行物理接口232的输入引脚设置插孔,I/O引脚与输入引脚之间采用可以拆卸传输线相连。I/O引脚与输入引脚之间的对应关系可以灵活选择,在选定后需要通知服务单元221。该选定对应关系的工作可以由人工完成,然后通过服务单元221提供的用户接口将对应关系发送给服务单元221,同时由服务单元221通过网络通知客户端210。
本实施例中,客户端210和服务器220可以均为PC机。在实现时,也可以将服务器220作为内嵌在被调试设备230中的功能模块,那么服务器220需要包括具有网络通信功能的服务单元221,服务单元221直接通过物理连接导线与调试点相连,获取调试点电平。
下面对本实施例的远程调试***工作原理进行描述。图4为图3中服务器220的处理流程图。如图4所示,该方法包括以下步骤:
步骤401:服务器接收客户端通过网络发送的读取指令。
本实施例中客户端通过Telnet协议远程登录服务器,从而与服务器通信。本步骤中,客户端启动装载的Telnet协议客户程序,采用保存在自身的服务器IP地址和域名与服务器建立连接;接收用户输入的登录名和口令和调试指令并进行封装,然后发送给远程服务器。其中,登录名和口令用于服务器对客户端进行身份验证,以下省略身份验证过程。
步骤402:服务器根据所接收的读取指令,确定待读取电平的当前I/O引脚,根据I/O引脚与输入通道之间的对应关系,读取与当前I/O引脚对应的输入通道上的电平,作为当前调试点电平。
本步骤中,服务器根据读取指令中携带的待调试I/O引脚信号信息,确定当前I/O引脚。
参见图3,在从输入通道读取电平时,假设服务单元221接收到读取逻辑电路231中I/O3的电平,此时,服务单元221根据I/O引脚与串行物理接口223输入引脚之间的对应关系获知,I/O3对应CTS引脚,那么服务单元221读取与自身连接的CTS线的电平,作为I/O3的电平。
步骤403:将当前I/O引脚电平通过网络发送给客户端。
至此本流程结束。
实施例二
本实施例中,客户端还可以通过服务器从被调试设备中获取程序代码,从而确定程序代码中的故障,经调试后,将正确的程序代码发回被调试设备。在客户端向被调试设备下发新的程序代码时,需要客户端进入在线***编程(ISP,In-System Programming)模式,写入新程序代码后重新启动。进入ISP模式和重新启动分别由被调试设备上的ISP开关引脚和***复位(RESET)引脚控制。本发明实施例的远程调试***还可以进一步远程控制ISP开关引脚和RESET引脚的电平。如果被调试设备的微型控制单元(MCU),即执行程序代码的控制单元中具有复位电路、ISP控制电路的话,该ISP开关引脚和RESET引脚在被调试设备的MCU上;如果,用专门的逻辑电路实现RESET或ISP开关的话,逻辑电路中就有ISP开关引脚和RESET引脚。本申请旨在提供一种远程控制ISP开关、RESET的技术方案,而ISP引脚、RESET引脚在何处不是关键。本实施例以ISP开关和RESET在逻辑电路中,且逻辑电路中的ISP开关引脚和RESET引脚为受控点为例进行描述。
因此,与实施例一不同之处在于,本实施例中服务器与被调试设备之间还包括输出通道和数据收发通道。其中,输出通道为串行接口的DTR信号传输通道和RTS信号传输通道,数据收发通道为串行接口的TXD信号通道和RXD信号通道。
图5为本发明中实施例二中远程调试***的结构示意图。该远程调试***同样包括客户端210、服务器220和被调试设备230。
其中,客户端210可以采用实施例一客户端组成结构。不同之处在于,本实施例中,客户端210中的调试指令生成单元211进一步生成控制指令,该控制指令用于通知服务器220将逻辑电路231上的受控点电平设置为指定值。本实施例中,受控点为ISP开关引脚和RESET引脚,相应的,控制指令包括ISP开关指令或RESET指令。调试指令生成单元211,还生成数据收发指令,用于通知服务器220执行程序代码的收发操作。
服务器220包括服务单元221和串行物理接口223;被调试设备230包括串行物理接口232、逻辑电路231和执行程序代码的控制单元233。其中,服务单元221与串行物理接口223的TXD引脚、RXD引脚、DTR引脚、RTS引脚和CTS引脚相连。串行物理接口223的TXD引脚、RXD引脚、DTR引脚、RTS引脚和CTS引脚与串行物理接口232的对应引脚相连。串行物理接口232中的TXD引脚和RXD引脚与控制单元233相连,DTR引脚与逻辑电路的RESET引脚相连,RTS引脚与逻辑电路的ISP开关引脚相连,CTS引脚与逻辑电路的I/O引脚相连。本实施例中,逻辑电路231中只有一个I/O。
其中,服务单元221,用于接收调试指令,判断调试指令类型,如果是读取I/O电平的读取指令,则与实施例一相同,读取当前I/O引脚对应的输入通道电平。如果调试指令是控制受控点状态的控制指令,则通过输出通道将受控点电平设置为指定值,本实施例中,如果控制指令为ISP开关指令,则将RTS线上的电平置为指定值,如果控制指令为RESET指令,则将DTR线上的电平设置为指定值。最后,如果调试指令是数据收发指令,则通过TXD和RXD提供的数据收发通道,进行数据收发操作。
服务单元221可以利用数据收发指令从控制单元233获取程序代码,向控制单元233下载程序代码。而控制单元233服务单元221的控制,可以向服务器上传程序代码,接收服务器下发的程序代码。
图6为图5中服务器和被调试设备的详细结构示意图。如图6所示,服务器中服务单元221具体包括调试服务模块621、执行模块622和串口控制器623,其中,
调试服务模块621,用于接收来自客户端210的调试指令,判断调试指令的类型,如果是读取指令和控制指令,则发送给执行模块622;如果是数据收发指令则发送给串口控制器623。
执行模块622,用于接收来自调试服务模块621的调试指令,如果是读取指令,根据读取指令当前I/O引脚,根据I/O引脚与输入通道的对应关系,确定当前I/O引脚对应的输入通道,通过发送读取通知通知给串口控制器623,将串口控制器623返回的I/O引脚电平通过调试服务模块621返回给客户端210。如果调试指令是控制指令,则执行模块622确定当前受控点,根据受控点与输出通道的对应关系,确定自身与当前受控点之间的输出通道,通过发送控制通知通知给串口控制器623。
串口控制器623与串行物理接口223相连,串口控制器623可以采用为现有的8251芯片实现,连接时同名引脚对应相连。串口控制器623在接收到执行模块622的读取通知时,从读取通知指示的输入通道上读取电平,并返回给执行模块622;在接收到执行模块622的控制通知时,将控制通知指示的输出通道上的电平设置为指定电平值;在接收到调试服务模块621的数据收发指令后,通过数据收发通道进行数据收发操作。
图6中的被调试设备220依然包括串行物理接口232、逻辑电路231和控制单元233,而且这三个组成模块功能与图5中的同名模块相同。在实际中,当串行物理接口232接收信号之后,由于信号电平与被调试设备上的信号电平有差异,因此需要在串行物理接口232和逻辑电路231之间增加电平转换装置632,串行物理接口232与控制单元233之间的信号也采用电平转换装置632进行电平转换处理。此外,控制单元233需要通过串口控制器进行数据收发操作,因此在电平转换装置632与控制单元233之间增加串口控制器631,当然也可以采用集成在控制单元233中的串口控制器631。串口控制器处理数据收发指令的过程为已知技术手段,这里不详述。
下面对本实施例的远程调试***工作原理进行描述。图7为图5中服务器220的处理流程。如图7所示,该方法包括:
步骤701:服务器接收客户端通过网络发送的调试指令。
步骤702:判断调试指令的类型,如果是读取指令则执行步骤703;如果是控制指令则执行步骤704;如果是数据收发指令则执行步骤705。其中,调试指令的类型可以根据调试指令携带的指令类型标识确定。
例如,读取指令至少包括区别标识和I/O引脚名,其中,区别标识为#;控制指令至少包括区别标识和受控引脚名,其中,区别标识为F,受控引脚名为ISP或RESET;数据收发指令至少包括区别标识和指令内容,其中区别标识为@。
步骤703:根据读取指令,确定待读取电平的当前I/O引脚,根据I/O引脚与输入通道之间的对应关系,读取与当前I/O引脚对应的输入通道上的电平,返回给客户端。本流程结束。
步骤704:根据控制指令确定当前受控点,通过串行接口提供的自身与当前受控点之间的输出通道,将当前受控点的电平设置为指定值。本流程结束。
步骤705:根据数据收发指令,通过串行接口提供的数据收发通道执行数据收发操作。本流程结束。
在实际中,客户端可以利用以上服务器的操作实现对被调试设备程序代码和逻辑电路的调试。在调试逻辑电路时,客户端发送读取指令,获取逻辑电路中调试点的电平,根据获取的电平建立真值表或绘制时序图;在调试程序代码时,首先通过发送数据收发指令,获取被调试设备上的当前程序代码,在对获取的当前程序代码调试完成后,通过发送控制指令,将被调试设备的ISP开关引脚电平置为低电平,从而令被调试设备进入ISP模式,然后通过发送数据收发指令将调试后的程序代码下载到被调试设备中,最后通过发送控制指令,将被调试设备的RESET引脚置为高电平,从而令被管理设备重启,以执行新的程序代码。
实施例三
本实施例中,远程调试***融合现有的GDB调试工具提供的远程调试功能,使得用户可以从客户端,通过远程调试方式单步执行被调试设备上的程序代码、设置断点、查看内容等操作。在现有技术中,GDB是GNU symbolicdebugger的缩写,是GNU提供的一类调试工具。GDB提供本地调试机和调试代理,本地调试机和调试代理在物理上是分离的,调试代理设置在被调试设备上,与被调试设备的控制单元相连,本地调试机设置在调试方上。调试代理之间遵循GDB远程串口协议(RSP,Remote Serial Protocol)进行通信。RSP协议定义了本地调试机与调试代理之间的通信时数据包的格式。RSP是一种简单的,基于ASCII的协议,它适用于通过串口线、局域网以及其他至少支持半双工数据交换的通信媒体的环境。RSP协议的数据包封装格式一般为:“$data # CSUM1 CSUM2”,其中,$为数据包标识,#为分隔符,$和#之间的data是数据内容,该数据内容通常是设定的命令符号,例如?指示读当前***状态,g指示读所有寄存器,E指示GDB出错;CSUM1和CSUM2是数据包的两个校验位。本地调试机用于将命令封装为符合RSP协议的数据包,然后发送到被调试设备上的调试代理,调试代理接收数据包后,解封装,并执行数据包内容指示的操作,例如读写内存、读写寄存器、程序暂停(stop)、程序继续(continue)等,并向本地调试机返回操作结果。
本实施例中,本地调试机与调试代理之间采用串行接口进行通信,而且与调试逻辑电路的调试指令共用一个串行接口。
图8为本发明实施例三中远程调试***的结构示意图。如图8所示,该***包括客户端210、服务器220和被调试设备230。
其中,客户端210可以采用实施例一客户端组成结构。不同之处在于,本实施例中,客户端210生成的调试指令不仅包括控制指令和读取指令,还包括调试工具指令,即GDB指令。
服务器220包括服务单元221、串行物理接口223和本地调试机820;被调试设备230包括串行物理接口232、逻辑电路231、控制单元233和调试代理830。参见图8,这些模块的连接关系为:服务单元221与串行物理接口223的DTR、RTS和CTS这三条引脚相连;本地调试机820与串行物理接口223的TXD和RXD相连;服务单元221与本地调试机820相连;串行物理接口223与串行物理接口232的对应引脚相连,逻辑电路231与串行物理接口232的DTR、RTS和CTS这三条引脚相连,调试代理830与串行物理接口232的TXD和RXD引脚相连,控制单元233与调试代理相连。
其中,服务单元221,用于接收调试指令,判断调试指令类型。实施例二中已经对调试指令为读取指令和控制指令的相应操作进行了详细描述,这里不再重复。当执行指令为GDB指令时,将GDB指令发送给本地调试机820。
本地调试机820,按照GDB RSP协议对GDB指令进行封装,然后通过串行物理接口223提供的数据收发通道,将封装后的GDB指令发送给被调试设备230;通过数据收发通道从被调试设备230接收GDB指令处理结果,通过服务单元221返回给客户端210。图8中的中空双箭头示出了封装后GDB指令的传输通道,该通道由串口的数据收发通道提供。
被调试设备230中调试代理830在通过数据收发通道接收到GDB指令后,对控制单元233执行GDB指令对应的操作,并通过数据收发通道返回执行结果。调试代理830具体如何对控制单元233执行GDB指令对应的操作是已知技术手段,这里不详述。
图8中服务器220的处理流程与图7示出的流程相似,不同之处在于,服务器接收的调试指令不包括数据收发指令,而包括GDB指令。在步骤702中判定接收到GDB指令时,执行步骤705,此时步骤705为:服务器中的本地调试器将GDB指令进行封装,然后通过串行接口提供的数据收发通道发送至被调试设备,接收被调试设备返回的GDB指令执行结果,再发送回客户端。
本实施例中,调试指令的类型仍可以根据调试指令携带的指令类型标识确定。其中读取指令和控制指令仍可以采用实施例二所述的格式,本实施例三中的GDB指令包括区别标识和指令内容,其中区别标识可为$。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。