CN102571412B - 嵌入式分布式系统目标机服务器 - Google Patents
嵌入式分布式系统目标机服务器 Download PDFInfo
- Publication number
- CN102571412B CN102571412B CN201110390697.4A CN201110390697A CN102571412B CN 102571412 B CN102571412 B CN 102571412B CN 201110390697 A CN201110390697 A CN 201110390697A CN 102571412 B CN102571412 B CN 102571412B
- Authority
- CN
- China
- Prior art keywords
- target machine
- order
- command
- embedded
- daily record
- 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
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及嵌入式分布式系统目标机服务器,包括给嵌入式分布式系统管理器配置至少一个目标机,并将配置的结果保存到嵌入式分布式系统管理器中,连接嵌入式分布式系统管理器所配置的目标机,提供嵌入式分布式系统开发工具编程接口的应用程序编程接口模块;用于添加应用程序编程接口模块创建命令到等待发送命令队列的等待回复命令队列;传输器包括发送线程和至少一个接收线程,所述接收线程和目标机一一对应:本发明解决了现有的嵌入式分布式系统目标机服务器只支持单个目标机的技术问题,本发明支持嵌入式分布式系统,使得嵌入式分布式系统工具专注于自己本身的应用功能,降低了嵌入式分布式系统工具开发的难度。
Description
技术领域
本发明属于嵌入式软件开发工具技术领域。本发明是一个目标机服务器,它为嵌入式分布式系统开发工具提供嵌入式分布式系统各目标机连接、控制服务。
背景技术
嵌入式系统的开发通常是交叉开发。交叉开发的宿主机端需要目标机服务器来和目标机建立通信连接,并为上层开发工具提供开发支持的服务。目标机服务器提供的基本服务类型包括会话管理类服务、存储器操作类服务、上下文控制类服务、寄存器操作类服务。目标机服务器还可以根据需要对服务类型进行扩充。在交叉开发的目标机端需要有完成上述服务请求的目标机代理。有了目标机服务器这座桥梁,在宿主机端开发目标机程序就变得容易了。
传统的目标机服务器的特点是:
(1)只支持单个目标机,缺少对嵌入式分布式系统的支持。如果在传统目标机服务器基础上开发嵌入式分布式系统工具,则需要工具本身包含多目标机管理功能,这使得工具没有专注于本身的开发功能,造成嵌入式分布式系统工具开发的难度。
(2)缺乏对通用GDB的支持,如风河公司的tgtsvr目标机服务器支持的GDB是风河公司在开源GDB基础上修改过的GDB,该GDB并不通用。
(3)缺少对目标机主动上传大量数据的支持。
发明内容
为了解决现有的嵌入式分布式系统目标机服务器只支持单个目标机的技术问题,本发明提供一种嵌入式分布式系统目标机服务器。
本发明的技术解决方案:
嵌入式分布式系统目标机服务器,其特殊之处在于:包括给嵌入式分布式系统管理器配置至少一个目标机,并将配置的结果保存到嵌入式分布式系统管理器中,连接嵌入式分布式系统管理器所配置的目标机,并清空命令管理器中的等待发送命令队列和等待接收命令队列中的所用命令、启动传输器,断开嵌入式分布式系统管理器所配置的目标机,并停止传输器的图形用户界面模块GUI;
提供嵌入式分布式系统开发工具编程接口,并根据嵌入式分布式系统开发工具给出的创建命令的参数创建命令、发送所创建命令至命令管理器、从命令管理器获取命令回复参数供嵌入式分布式系统开发工具使用的应用程序编程接口模块API;
用于添加应用程序编程接口模块API创建命令到等待发送命令队列,接收传输器发送的命令回复参数的命令管理器,所述命令管理器包括存储等待发送命令的等待发送命令队列、存储等待回复命令的等待回复命令队列;
传输器,所述传输器包括发送线程和至少一个接收线程,所述接收线程和目标机一一对应:
用于获取嵌入式分布式系统包含的目标机并保存至目标机队列中的嵌入式分布式系统管理器:
所述发送线程用于从等待发送命令队列中获取一个等待发送命令,将等待发送命令封装形成命令发送数据包,将命令发送数据包发往等待发送命令中指向的要发往的目标机;将发送后的等待发送命令添加到命令管理器中等待回复命令队列中;
所述接收线程用于接收来自目标机的命令回复数据包,解析命令回复数据包得到命令序列号,根据命令序列号在等待回复命令队列中获取对应命令;根据获取对应命令中的命令回复参数解析方法解析命令回复数据得到命令回复参数,命令回复参数保存在命令管理器中对应的等待回复命令中;
所述命令包括有命令要发往的目标机、命令序列号、命令发送参数、命令发送参数封装方法、命令回复参数解析方法。
还包括用于和目标机建立通信连接、断开通信连接、向目标机发送数据包、从目标机接收数据包、取消接收目标机数据包的目标机通信接口。
还包括日志数据包处理器,所述日志数据包处理器包括日志数据包缓冲队列和日志数据处理线程;当接收线程接收到日志数据包后,将日志数据包交由日志数据包处理器缓冲保存至日志数据包缓冲队列,然后通知日志数据处理线程将日志数据包缓冲队列中日志数据包中的数据处理到文件中。
还包括用于接收通用GDB连接请求,为通用GDB连接创建RSP处理线程并运行的RSP服务器,所述RSP处理线程用于接收GDB RSP协议请求包,分析RSP协议请求包,创建命令、发送命令、获取命令回复参数,组织命令回复参数为RSP回复包后,回复给通用GDB。
本发明所具有的优点:
1、支持嵌入式分布式系统,使得嵌入式分布式系统工具专注于自己本身的应用功能,降低了嵌入式分布式系统工具开发的难度;
2、支持通用GDB,使得嵌入式分布式系统源代码调试工具能够使用通用GDB调试嵌入式分布式系统目标机程序;
3、支持目标机主动上传大量数据,为在目标机中产生大量数据的工具提供了一种高效的数据上传方式。
附图说明
图1是嵌入式分布式系统目标机服务器的总的结构图;
图2是目标机通信接口图。
具体实施方式
本发明总的目的是要为嵌入式开发环境提供一个嵌入式分布式系统目标机服务器。可以增强嵌入式开发环境对嵌入式分布式系统开发工具的支持。
嵌入式分布式系统目标机服务器支持嵌入式分布式系统,支持通用GDB调试工具,为基于通用GDB的调试类工具提供支持。支持目标机主动上传大量数据,为目标机系统监视记录类工具提供大量数据上传支持。
为了达到上面的目的,需要解决以下的问题。
1支持嵌入式分布式系统
嵌入式分布式系统目标机服务器为了给嵌入式分布式系统工具提供服务,在传统目标机服务器的基础上,增加对嵌入式分布式系统的支持。为了支持嵌入式分布式系统,目标机服务器所有功能都着眼于嵌入式分布式系统而不是单个目标机。要支持嵌入式分布式系统,主要的功能关注点包括下面的几点。
2支持通用GDB
通用GDB连接调试目标机方式为通过串口或网络连接到目标机,通过GDBRSP协议和目标机通信。目标机端由GDB STUB接收并响应GDB RSP请求,从而达到调试控制目标机端程序运行的目的。
要支持通用GDB就是要对RSP协议进行处理。要完成程序调试的需要,至少需要处理的RSP命令包括:?、g、m、M、c、s、k、r、H、q。
3目标机主动上传大量数据
传统的目标机服务器缺少对目标机主动上传大量数据的支持。有些工具,例如系统监视类工具,它们会在系统运行过程中记录下大量的系统运行数据,这些数据达到一定量后目标机会主动上传到宿主机端,由工具进行分析处理。嵌入式分布式系统目标机服务器提供目标机主动上传大量数据方式,就能满足这类工具的需要。
嵌入式分布式系统目标机服务器基于如图1的总体结构,分为嵌入式分布式系统管理器、命令管理器、传输器、目标机通信接口、日志数据包处理器、RSP服务器、API、GUI。嵌入式分布式系统管理器完成目标机管理功能,命令管理器完成命令管理功能,传输器完成数据传输功能,目标机通信接口完成目标机通信功能,RSP服务器用于支持通用GDB、API提供工具编程接口,GUI提供用户图形操作界面。
嵌入式分布式系统目标机服务器支持的GUI操作包括配置、连接、断开。嵌入式分布式系统包含连接和断开两个状态,只有处于连接状态,才能进行目标机通信和数据传输。只有处于断开状态,才能进行配置操作。
1、嵌入式分布式系统管理器
目标机管理功能技术方案:目标机管理采用目标机服务器、目标机集合、目标机三个层次的树形管理方式。目标机服务器对应于嵌入式分布式系统目标机服务器本身,目标机集合对应于嵌入式分布式系统,目标机对应于嵌入式分布式系统中的单个目标机。
目标机管理功能由嵌入式分布式系统管理器实现,用TsManager类表示嵌入式分布式系统管理器,目标机服务器用TargetServer类表示,目标机集合用TargetSet类表示,目标机用Target类表示。TsManager类包含一个TargetServer成员,TargetServer类包含一个TargetSet列表成员,TargetSet包含一个Target列表成员。系统中所有的TargetSet对象中只有一个是处于活动状态的,活动状态的TargetSet对象表示当前提供服务的嵌入式分布式系统。
TargetServer类包括的方法有:添加/删除目标机集、获取包含的目标机集合等;TargetSet包括的方法有:添加/删除目标机、连接/断开目标机集合、激活、获取包含的目标机等;Target类包括的方法有:通信连接/通信断开等。
2、命令管理器
用CmdManager类表示命令管理器。CmdManager类有等待发送的命令队列和发送后等待回复的命令队列。
使用类Cmd来表示发往目标机的命令,所有的具体目标机操作命令类都是对该类的子类。Cmd中有命令要发往的目标机(TsTarget类的对象)、命令序列号、命令发送参数、命令回复参数等成员。命令序列号由传输器发送命令时产生,每个发送的命令它的序列号都各不相同。命令序列号会随命令数据一起发送到目标机,目标机处理完命令后,命令回复数据包中也将包含这个序列号。通过命令回复数据包中的命令序列号就可以在命令管理器中找到对应的命令。
3、目标机通信接口
目标机通信接口包括和目标建立通信连接的方法、断开和目标机通信连接的方法、向目标机发送数据包的方法、从目标机接收数据包的方法、取消接收目标机数据包的方法。嵌入式分布式系统中的每个目标机都包括自己的目标机通信接口。
目标机通信接口用IConnect表示。每个目标机(Target)中都包含自己的通信接口(IConnect)对象,IConnect包括连接(connect)、断开(disconnect)、发包(putpkt)、收包(getpkt)、取消接收(cancelRec)操作。目标机需要支持网络和串口通信连接方式。目标机通信接口类见图2。
4、传输器
用Transmitter类表示传输器。传输器用一个数据发送线程(TransThread)来完成嵌入式分布式系统所有目标机命令数据的发送。它从命令管理器等待发送队列中取得要发送的命令,然后将命令数据进行封装,最后通过目标机通信接口putpkt发送数据包。
传输器用一个数据接收处理线程(RecThread)来处理数据接收,每个连接成功的目标机都对应有自己的数据接收线程。数据接收处理线程通过目标机通信接口getpkt接收来自目标机的数据包。数据接收处理线程接收到数据包后会根据数据包的类型进行分派处理,支持的数据包类型包括:命令回复、事件通知、日志数据包。如果是命令回复数据包,在命令管理器中找到对应的命令,并解析出命令的回复数据。
传输器通过方法boolean transOn(boolean linknow)启动或关闭。启动时,先尝试为活动目标机集合中的目标机建立通信连接(通过Target的IConnect通信接口connect方法),并启动运行发送线程(TransThread),如果目标机连接成功,就为它创建数据接收线程(RecThread)。关闭时,先停止所有接收线程和发送线程,再和所有的目标机断开(通过Target的IConnect通信接口disconnect方法)。
5、RSP服务器
RSP服务器接收通用GDB连接请求,为通用GDB连接创建RSP处理线程并运行。
RSP处理线程接收GDB RSP协议请求包,分析RSP协议请求包,创建命令、发送命令、获取命令回复参数,组织命令回复参数为RSP回复包后,回复给GDB。
支持通用GDB功能由RSP服务器实现,用RspServer类表示RSP服务器。RSP服务器是一个TCP/IP的服务器,它支持多GDB连接,每个GDB连接只对应一个目标机。每个GDB连接到RSP服务器后,服务器会为它创建一个RSP处理线程RspProcThread来处理GDB RSP协议请求包。它不停地接收来自GDB的RSP请求数据包,然后分析处理,处理过程中可能需要发送命令到目标机,并接收目标机的回复,将回复信息组织成RSP回复数据包,回复给GDB。有些命令(c、s)的回复不是命令回复,而是目标机执行过程中产生的信号,需通过对事件的转换得到。
为了能是GDB正常调试目标机程序,需要下面几个主要的目标机操作命令:
获取寄存器值命令,用该命令支持RSP“g”请求包;
设置寄存器值命令,用该命令支持RSP“G”请求包;
读内存命令,用该命令支持RSP“m”请求包;
修改内存命令,用该命令支持RSP“M”请求包;
程序运行命令,用该命令支持RSP“c”请求包;
程序单步运行命令,用该命令支持RSP“s”请求包。
要支持的事件是断点事件,目标机程序运行遇到断点或单步运行停止后都产生该事件通知。接收到断点事件后,向GDB发送“S5”,从而通知GDB被调试目标机程序停止了运行。
6、应用程序编程接口(API)
嵌入式分布式系统目标机服务器开发工具提供的编程接口。
7、图形用户界面(GUI)
嵌入式分布式系统目标机服务器向用户提供的图形操作界面。可以通过界面进行目标机集合和目标机配置、设置活动的目标机集合、对活动目标机集合进行连接/断开操作。
8、目标机主动上传大量数据特殊处理
为了达到目标机主动上传大量数据的目的,在通信数据中增加专门的日志数据包类型,当接收线程接收到该数据包后,调用其专门的处理方法来处理该数据包。
日志数据包处理器包括日志数据包缓冲队列和日志数据处理线程。日志数据包处理器用于处理目标机主动上传大量数据的处理。目标机主动上传大量数据的数据包称为日志数据包类型。当接收线程接收到日志数据包后,会将日志数据包交由日志数据包处理器,将数据包缓冲保存,然后通知日志数据处理线程将缓冲的日志数据包中的数据处理到文件中。
在日志数据包处理方法,先将各单个数据包缓冲到一个队列中,然后通知专门的数据处理线程来处理这些数据。使用专门的数据处理线程来处理数据是因为处理大量数据需要占用相对较多的时间,而使用专门的数据处理线程,将不占用接收线程的处理时间,使得接收线程能更及时地接收目标机数据。
嵌入式分布式系统目标机服务器的具体工作步骤:
(1)用户通过图形用户界面配置活动的目标机集合和其中的目标机。配置的结果保存在嵌入式分布式系统管理器中。
(2)用户通过图形用户界面连接活动的目标机集合。启动传输器,尝试和活动的目标机集合中所有的目标机建立通信连接,为通信连接正常的目标机建立数据接收线程和日志数据包数据处理线程,建立命令发送线程。
(3)启动RSP服务器,用于接收来自GDB连接请求。
(4)用户使用嵌入式分布式系统开发工具,工具从嵌入式分布式系统管理器中获取可操作的目标机信息,通过API接口或自身直接生成目标机命令,发送到命令管理器的等待发送队列中。
(5)传输器发送线程从命令管理器等待队列中取得要发送的命令进行发送。
(6)传输器目标机接收线程接收来自目标机的命令回复数据,从命令管理器等待回复队列中取得对应的命令进行回复数据的解析,并设置命令为已回复状态。如果收到日志数据包数据处理线程,将数据包进行缓冲后交由日志数据包数据处理线程处理。
(7)嵌入式分布式系统开发工具取得命令的执行回复数据进行使用。
(8)嵌入式分布式系统开发工具重复步骤(4)——(7),完成工具在线开发功能。
(9)调试工具通过GDB连接RSP服务器,RSP服务器启动RSP请求处理线程,将RSP请求转化为目标机命令,将命令发送到命令管理器的等待发送队列中。然后进行步骤(5)(6)。RSP请求处理线程取得命令的回复转化为RSP回复,在发送给GDB。目标机运行断点事件转化为GDB识别的信号发给GDB。
(10)停止RSP服务器。所有的GDB连接RSP请求处理线程停止运行。
Claims (4)
1.嵌入式分布式系统目标机服务器,其特征在于:包括给嵌入式分布式系统管理器配置至少一个目标机,并将配置的结果保存到嵌入式分布式系统管理器中,连接嵌入式分布式系统管理器所配置的目标机,并清空命令管理器中的等待发送命令队列和等待接收命令队列中的所用命令,启动传输器,断开嵌入式分布式系统管理器所配置的目标机,并停止传输器的图形用户界面模块(GUI);
提供嵌入式分布式系统开发工具编程接口,并根据嵌入式分布式系统开发工具给出的创建命令的参数创建命令、发送所创建命令至命令管理器、从命令管理器获取命令回复参数供嵌入式分布式系统开发工具使用的应用程序编程接口模块(API);
用于添加应用程序编程接口模块(API)创建命令到等待发送命令队列,接收传输器发送的命令回复参数的命令管理器,所述命令管理器包括存储等待发送命令的等待发送命令队列、存储等待回复命令的等待回复命令队列;
传输器,所述传输器包括发送线程和至少一个接收线程,所述接收线程和目标机一一对应;
用于获取嵌入式分布式系统包含的目标机并保存至目标机队列中的嵌入式分布式系统管理器;
所述发送线程用于从等待发送命令队列中获取一个等待发送命令,将等待发送命令封装形成命令发送数据包,将命令发送数据包发往等待发送命令中指向的要发往的目标机;将发送后的等待发送命令添加到命令管理器中等待回复命令队列中;
所述接收线程用于接收来自目标机的命令回复数据包,解析命令回复数据包得到命令序列号,根据命令序列号在等待回复命令队列中获取对应命令;根据获取对应命令中的命令回复参数解析方法解析命令回复数据得到命令回复参数,命令回复参数保存在命令管理器中对应的等待回复命令中;
所述命令包括有命令要发往的目标机、命令序列号、命令发送参数、命令发送参数封装方法、命令回复参数解析方法。
2.根据权利要求1所述的嵌入式分布式系统目标机服务器,其特征在于:还包括用于和目标机建立通信连接、断开通信连接、向目标机发送数据包、从目标机接收数据包、取消接收目标机数据包的目标机通信接口。
3.根据权利要求1或2所述的嵌入式分布式系统目标机服务器,其特征在于:还包括日志数据包处理器,所述日志数据包处理器包括日志数据包缓冲队列和日志数据处理线程;当接收线程接收到日志数据包后,将日志数据包交由日志数据包处理器缓冲保存至日志数据包缓冲队列,然后通知日志数据处理线程将日志数据包缓冲队列中日志数据包中的数据处理到文件中。
4.根据权利要求3所述的嵌入式分布式系统目标机服务器,其特征在于:还包括用于接收通用GDB连接请求,为通用GDB连接创建RSP处理线程并运行的RSP服务器,所述RSP处理线程用于接收GDB RSP协议请求包,分析GDB RSP协议请求包,创建命令、发送命令、获取命令回复参数,组织命令回复参数为RSP回复包后,回复给通用GDB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110390697.4A CN102571412B (zh) | 2011-11-30 | 2011-11-30 | 嵌入式分布式系统目标机服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110390697.4A CN102571412B (zh) | 2011-11-30 | 2011-11-30 | 嵌入式分布式系统目标机服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102571412A CN102571412A (zh) | 2012-07-11 |
CN102571412B true CN102571412B (zh) | 2015-01-14 |
Family
ID=46415940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110390697.4A Active CN102571412B (zh) | 2011-11-30 | 2011-11-30 | 嵌入式分布式系统目标机服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571412B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544092B (zh) * | 2013-11-05 | 2016-01-13 | 中国航空工业集团公司西安飞机设计研究所 | 一种基于arinc653标准机载电子设备健康监控系统 |
CN104917814B (zh) * | 2015-04-21 | 2018-05-01 | 浙江大学 | 一种基于java的网络传输协议转换中间件 |
US10740303B2 (en) * | 2017-03-28 | 2020-08-11 | Oracle International Corporation | Composite file system commands |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737775A (zh) * | 2004-08-18 | 2006-02-22 | 华为技术有限公司 | 一种嵌入式软件自动化测试的装置及其方法 |
CN102088376A (zh) * | 2010-12-31 | 2011-06-08 | 中国航空工业集团公司第六三一研究所 | 综合化航电系统通信监控系统及方法 |
-
2011
- 2011-11-30 CN CN201110390697.4A patent/CN102571412B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737775A (zh) * | 2004-08-18 | 2006-02-22 | 华为技术有限公司 | 一种嵌入式软件自动化测试的装置及其方法 |
CN102088376A (zh) * | 2010-12-31 | 2011-06-08 | 中国航空工业集团公司第六三一研究所 | 综合化航电系统通信监控系统及方法 |
Non-Patent Citations (2)
Title |
---|
Tornado目标机服务器实现机制探讨;黄英兰;《微处理机》;20091231(第06期);第97~100页 * |
基于AADL的航空电子系统安全性分析;贾璐等;《航空计算技术》;20090915;第39卷(第05期);第108~115页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102571412A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110138876B (zh) | 任务部署方法、装置、设备及平台 | |
CN102395144B (zh) | 无线接入点升级方法、系统及设备 | |
CN102497427B (zh) | 实现可再生能源监测系统数据采集服务的方法和装置 | |
CN105183299A (zh) | 一种人机界面服务处理系统和方法 | |
CN103001843B (zh) | 基于嵌入式VxWorks的OPC协议转换器 | |
CN103166971A (zh) | 一种多路复用串口协议转换器 | |
CN104317661A (zh) | 嵌入式双系统的系统间通信方法及装置 | |
CN108123826B (zh) | 一种跨区数据的交互系统及方法 | |
CN105763297B (zh) | 一种基于云计算系统的远程数据优化传输方法和装置 | |
CN102426548B (zh) | 嵌入式系统的调试方法、调试器和调试系统 | |
CN102571412B (zh) | 嵌入式分布式系统目标机服务器 | |
CN105357664A (zh) | 一种无线控制系统及其数据通信方法 | |
CN112929331A (zh) | 一种通用的通讯规约实现方法 | |
CN102238571B (zh) | 物联网m2m业务处理的装置、系统以及方法 | |
CN103634707A (zh) | 通信方法 | |
CN117348900A (zh) | 电能表匹配升级方法及相关设备 | |
CN115776175A (zh) | 一种基于安全接入区的调度自动化数据采集方法及系统 | |
US8996737B1 (en) | Method for emulating communication standards of transceiver modules for native host devices | |
CN102752804A (zh) | 通信资源分配系统 | |
CN106713093B (zh) | 一种航电数据分发模型及方法 | |
CN106302201A (zh) | 流量控制方法、设备和系统 | |
CN100395721C (zh) | 集中监控受限程序的系统与方法 | |
CN111930645B (zh) | 一种基于tcpip的通用usb设备网络透传系统及方法 | |
CN101282201B (zh) | 一种通讯设备中消息监控的方法和设备 | |
CN106304241A (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 |