一种基于嵌入式设备的应用程序远程在线调试方法及装置制造方法及图纸

技术编号:9667700 阅读:94 留言:0更新日期:2014-02-14 05:55
本发明专利技术公开了一种基于嵌入式设备的应用程序远程在线调试方法及装置,该方法包括:嵌入式设备的操作系统启动时,启动预设的后台程序,并调用启动的后台程序创建服务套接字和通信通道;调用启动的后台程序启动应用程序后,通过所述服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字;接受所述客户端通过所述通信套接字和所述通信通道调试所述应用程序。该方案可以实现远程在线调试嵌入式设备中的应用程序。

【技术实现步骤摘要】
一种基于嵌入式设备的应用程序远程在线调试方法及装置
本专利技术涉及计算机
,尤指一种基于嵌入式设备的应用程序远程调试方法及装置。
技术介绍
在开发嵌入式设备的过程中,嵌入式设备上一般设有调试串口,将调试串口与客户端计算机连接,嵌入式设备上的运行信息通过调试串口输出到客户端计算机上,设计人员也可以通过客户端计算机对应用程序进行在线调试,也就是说调试串口实现了应用程序与客户端计算机之间的通信。考虑到设备成本,有些嵌入式设备在销售时不再带有调试串口,这些不带有调试串口的嵌入式设备销售安装后,如果嵌入式设备在运行过程中出现问题,由于嵌入式设备没有调试串口,设计人员无法使用客户端计算机与应用程序进行通信,也就无法对应用程序进行在线调试。
技术实现思路
本专利技术实施例提供一种基于嵌入式设备的应用程序远程在线调试方法及装置,用以实现对应用程序进行在线调试。一种基于嵌入式设备的应用程序远程在线调试方法,包括:嵌入式设备的操作系统启动时,启动预设的后台程序,并调用启动的后台程序创建服务套接字和通信通道;调用启动的后台程序启动应用程序后,通过所述服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字;接受所述客户端通过所述通信套接字和所述通信通道调试所述应用程序。一种基于嵌入式设备的应用程序远程在线调试装置,包括:后台程序启动单元,用于嵌入式设备的操作系统启动时,启动预设的后台程序;创建单元,用于调用启动的后台程序创建服务套接字和通信通道;应用程序启动单元,用于调用启动的后台程序启动应用程序;通信连接建立单元,用于所述应用程序启动单元启动应用程序后,通过所述套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字;接收单元,用于接受所述客户端通过所述通信套接字和所述通信通道调试所述应用程序。一种嵌入式设备,包括上述基于嵌入式设备的应用程序远程在线调试装置。本专利技术有益效果如下:本专利技术实施例提供的一种基于嵌入式设备的应用程序远程在线调试方法及装置,嵌入式设备的操作系统启动时,启动预设的后台程序,并调用启动的后台程序创建服务套接字和通信通道;调用启动的后台程序启动应用程序后,通过所述服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字;接受所述客户端通过所述通信套接字和所述通信通道调试所述应用程序。该方案在启动预设的后台程序后,调用后台程序创建服务套接字和通信通道,并调用启动的后台程序启动应用程序,如果客户端需要调试该应用程序,可以通过该服务套接字与请求建立通信连接的客户端建立通信连接,然后分配该客户端使用的通信套接字,客户端可以通过该通信套接字和通信通道来调试应用程序,这样就可以实现远程在线调试嵌入式设备中的应用程序。【附图说明】图1为本专利技术实施例中基于嵌入式设备的应用程序远程在线调试方法的流程图;图2为本专利技术实施例中基于嵌入式设备的应用程序远程在线调试装置的结构示意图;图3为本专利技术实施中优选的基于嵌入式设备的应用程序远程在线调试方法的流程图。【具体实施方式】为了实现对应用程序进行在线调试,本专利技术实施例提供一种基于嵌入式设备的应用程序远程在线调试方法,该方法的流程如图1所示,具体执行步骤如下:S10:嵌入式设备的操作系统启动时,启动预设的后台程序,并调用启动的后台程序创建服务套接字和通信通道。Sll:调用启动的后台程序启动应用程序后,通过服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字。S12:接受客户端通过通信套接字和通信通道调试应用程序。在现有技术中,嵌入式设备中没有后台程序,嵌入式设备的调试串口提供与应用程序的通信通道,依赖调试串口来调试应用程序,当嵌入式设备上没有调试串口或者调试串口故障时,若嵌入式设备运行出现问题,就不能调试应用程序了,从而无法排除嵌入式设备的故障。该方案在启动预设的后台程序后,调用后台程序创建服务套接字和通信通道,并调用启动的后台程序启动应用程序,如果客户端需要调试该应用程序,可以通过该服务套接字与请求建立通信连接的客户端建立通信连接,然后分配该客户端使用的通信套接字,客户端可以通过该通信套接字和通信通道来调试应用程序,这样就可以实现远程在线调试嵌入式设备中的应用程序。具体的,上述SlO中的通信通道包括第一通信通道和第二通信通道;上述Sll中的启动应用程序,具体包括:调用启动的后台程序通过第一设定函数创建子进程;调用创建的子进程通过第二设定函数启动应用程序,其中,后台程序通过第一通信通道向子进程发送数据,子进程通过第二通信通道向后台程序发送数据。SlO中的通信通道可以包括两条通信通道,定义为第一通信通道和第二通信通道,其中第一通信通道用pipel表示,第二通信通道用pipe2表示。在本专利技术中可以调用启动的后台程序来启动应用程序,需要首先调用启动的后台程序通过第一设定函数创建子进程。然后调用创建的子进程通过第二设定函数启动应用程序,这就完成了应用程序的启动。可以将子进程的输入文件描述符重定向到pipel,将标准输出和错误输出文件定位符重定向到pipe2,后台程序使用pipel向子进程发送数据,子进程使用pipe2向后台程序发送数据,这样子进程和后台程序可以通过pipel和pipe2进行通信。其中,第一设定函数可以是现有技术中的vfork函数,第二设定函数可以是execl函数,调用的过程和原理与现有技术是相同的。当然,第一设定函数和第二设定函数不限于这里举例的函数,也可以采用其他的函数,在这里不再赘述。具体的,上述Sll中的通过套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字,具体包括:将服务套接字和第二通信通道添加到监听队列,调用后台程序监听监听队列;若监听到服务套接字接收到客户端发送的连接建立请求消息,则向客户端返回连接建立应答消息;以及分配通信套接字,并将通信套接字添加到监听队列。继续沿用上例,假设创建的服务套接字为传输控制协议(Transmission ControlProtocol,TCP)服务套接字,用ts_socket表示,在应用程序启动后,将ts_socket和pipe2添加到监听队列,调用后台程序来监听监听队列。若监听到ts_socket接收到客户端的连接建立请求消息时,向客户端返回连接建立应答消息,从而与客户端建立通信连接,并且分配与该客户端通信的通信套接字,用new_socket表示。当ts_socket接收到多个客户端的连接建立请求消息时,可以与每个客户端都建立通信连接,并为每个客户端都分配一个通信套接字。这些创建的通信套接字都被添加到监听队列中,调用后台程序来监听该监听队列。具体的,上述S12中的接受客户端通过通信套接字和通信通道对应用程序进行调试,具体包括:当调用的后台程序监听到通信套接字接收到客户端发送的调试命令时,通过第一通信通道将调试命令发送给应用程序;当调用的后台程序监听到第二通信通道中有应用程序执行调试命令后的输出信息时,调用后台程序读取输出信息,并通过通信套接字发送给客户端。继续沿用上例,客户端调试应用程序时,当调用的后台程序监听到neW_S0Cket中接收到客户端发送的调试命令,可以通过pipel将该调试命令发送给应用程序。当应用程序执行完该调试命令后,会输出信息,该输出本文档来自技高网...

【技术保护点】
一种基于嵌入式设备的应用程序远程在线调试方法,其特征在于,包括:嵌入式设备的操作系统启动时,启动预设的后台程序,并调用启动的后台程序创建服务套接字和通信通道;调用启动的后台程序启动应用程序后,通过所述服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字;接受所述客户端通过所述通信套接字和所述通信通道调试所述应用程序。

【技术特征摘要】
1.一种基于嵌入式设备的应用程序远程在线调试方法,其特征在于,包括: 嵌入式设备的操作系统启动时,启动预设的后台程序,并调用启动的后台程序创建服务套接字和通信通道; 调用启动的后台程序启动应用程序后,通过所述服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字; 接受所述客户端通过所述通信套接字和所述通信通道调试所述应用程序。2.如权利要求1所述的方法,其特征在于,所述通信通道包括第一通信通道和第二通信通道; 调用启动的后台程序启动应用程序,具体包括: 调用启动的后台程序通过第一设定函数创建子进程; 调用创建的子进程通过第二设定函数启动所述应用程序,其中,所述后台程序通过所述第一通信通道向所述子进程发送数据,所述子进程通过所述第二通信通道向所述后台程序发送数据。3.如权利要求2所述的方法,其特征在于,通过所述服务套接字与请求建立通信连接的客户端建立通信连接,并分配通信套接字,具体包括: 将所述服务套接字和所述第二通信通道添加到监听队列,调用所述后台程序监听所述监听队列; 若监听到所述服务套接字接收到所述客户端发送的连接建立请求消息,则向所述客户端返回连接建立应答消息;以及 分配通信套接字,并将所述通信套接字添加到所述监听队列。4.如权利要求2所述的方法,其特征在于,接受所述客户端通过所述通信套接字和所述通信通道对所述应用程序进行调试,具体包括: 当调用的后台程序监听到所述通信套接字接收到所述客户端发送的调试命令时,通过所述第一通信通道将所述调试命令发送给所述应用程序; 当调用的后台程序监听到所述第二通信通道中有所述应用程序执行所述调试命令后的输出信息时,调用所述后台程序读取所述输出信息,并通过所述通信套接字发送给所述客户端。5.一种基于嵌入式设备的应用程序远程在线调试装置,其特...

【专利技术属性】
技术研发人员:高迎军张兴明傅利泉朱江明吴军吴坚
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1