CN110704070B - 一种分区实时操作系统下dds通信中间件的构建方法 - Google Patents

一种分区实时操作系统下dds通信中间件的构建方法 Download PDF

Info

Publication number
CN110704070B
CN110704070B CN201910938198.0A CN201910938198A CN110704070B CN 110704070 B CN110704070 B CN 110704070B CN 201910938198 A CN201910938198 A CN 201910938198A CN 110704070 B CN110704070 B CN 110704070B
Authority
CN
China
Prior art keywords
dds
file
vxworks653
operating system
partition
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
Application number
CN201910938198.0A
Other languages
English (en)
Other versions
CN110704070A (zh
Inventor
肖瑾
宋博洋
胡晓光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201910938198.0A priority Critical patent/CN110704070B/zh
Publication of CN110704070A publication Critical patent/CN110704070A/zh
Application granted granted Critical
Publication of CN110704070B publication Critical patent/CN110704070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种分区实时操作系统下DDS通信中间件的构建方法。该方法包括以下步骤:使用VxWorks653‑Linux GNU工具,编译适配DDS链接库;使用Wind River开发工作台,在VxWorks653系统项目中配置DDS支持环境;在VxWorks653系统分区中为DDS提供部分操作系统底层API支持;使用rtiddsgen工具生成代码,封装DDS应用API为初始化、发送、接收等函数。本发明可实现分区实时嵌入式操作系统通过数据分发服务与其它设备联网通信,为安全和任务关键系统的模块化设计及实现模块间松耦合通信提供技术基础。

Description

一种分区实时操作系统下DDS通信中间件的构建方法
技术领域
本发明涉及到分区实时嵌入式操作系统开发与数据分发服务部署,具体涉及分区实时操作系统下DDS通信中间件的构建方法。
背景技术
美国航空无线电通讯公司于1996年提出的ARINC653规范,规定了分区技术环境下的应用程序的执行(APplication EXecutive,APEX)接口标准,是目前主流开放式航电系统遵循的一种重要规范。VxWorks 653分区实时嵌入式操作系统是美国风河公司(WindRiver)遵循ARINC653规范所研发的产品,符合完整的综合模块化航电系统(IntegratedModular Avionics System,IMA)基础架构,其设计契合于航电系统采用开放式架构的需求。
VxWorks653系统以分区作为运行单元,实施轮转调度;并通过存储器管理单元(MMU)保证分区之间没有存储共享空间。从而实现了分区之间,以至部署于各个分区的应用和功能模块之间在时间和空间上的隔离。相比于VxWorks、Linux等常用实时嵌入式操作系统,VxWorks653系统在安全性,可扩展性,可移植性等方面具有显著优势,因此被广泛用作全球众多商用、航空、安全和任务关键、有人或无人飞机项目关键技术,其中包括波音787Dreamliner客机,F35战斗机等。
对象管理组织(OMG)于2004年提出的数据分发服务(Data DistributionService,DDS)框架作为通信中间件的一种,采取“数据中心式”的数据分发,按照发布/订阅机制运行。它凭借实时灵活可靠的特点,可以在保证分布式节点间的通讯质量前提下,满足航电系统模块化设计趋势下的模块间通信的松耦合性需求。其中,RTI-DDS是业界里面最先完全支持DDS规范的产品,由RTI(Real Time Innovation)公司开发。在具有各种严格要求的关键领域,RTI-DDS得到广泛应用。
VxWorks653系统在整体内存分配管理、系统API调用的权限管理以及运行时系统的健康管理等方面相对严格,系统开发时配置相对繁琐复杂。相比于VxWorks、Linux等常用实时嵌入式操作系统,VxWorks653系统在系统架构搭建、组件应用开发以及商业软件移植等方面,相关研究参考资料极其匮乏。另一方面,RTI-DDS在嵌入式环境中的部署及后续通信应用开发需要解决一系列技术问题,如编译同时适配于硬件平台和操作系统的DDS链接库、提供操作系统底层API支持、宏变量和支持环境配置等。特别地,对于VxWorks653系统,更是涉及到整体内存空间分配等难点。因此在VxWorks653系统分区中构建部署DDS通信中间件,处于研究空白。
但是如前所述,VxWorks653系统架构与DDS数据分发机制,二者在思想理念方面可以良好契合。二者的结合将为航电系统,以至各类安全和任务关键系统在开放式架构和模块化设计趋势下提供更广阔的发展前景。特别是在即将到来的全球物联网时代,VxWorks653系统良好的安全性与可移植性,以及DDS灵活可靠的数据分发特性,其组合将在联网通信的嵌入式终端市场中占据重要的一席之地。
发明内容
有鉴于此,本发明提出一种分区实时操作系统下DDS通信中间件的构建方法,来实现分区实时嵌入式操作系统中的数据分发服务功能。本发明具体使用VxWorks653 2.5分区实时嵌入式操作系统与RTI-DDS产品进行构建。
本发明提供了一种VxWorks653分区实时操作系统下DDS通信中间件的构建方法。该方法具体包括以下步骤,如附图1所示:
步骤S1,使用VxWorks653-Linux GNU工具,在VxWorks653命令行开发Shell中,将RTI-DDS源码文件编译成与VxWorks653系统及相应硬件平台适配的DDS链接库文件。
步骤S2,使用Wind River开发工作台,在VxWorks653系统项目中配置DDS支持环境。
步骤S3,在VxWorks653系统分区中为DDS提供部分操作系统底层API支持。
步骤S4,使用rtiddsgen工具与数据格式IDL文件,生成特定于数据结构的DDS应用代码,封装DDS应用API为初始化、发送、接收等函数,供分区应用调用。
至此,在VxWorks653系统分区中开发应用程序,可使嵌入式平台上运行的VxWorks653分区实时操作系统,通过DDS通信中间件与其它设备联网通信。
本发明的有益效果是:本发明实现分区实时嵌入式操作系统通过数据分发服务与其它设备联网通信,为安全和任务关键系统的模块化设计及实现模块间松耦合通信提供技术基础。本发明提供的技术思路,可以为分区实时嵌入式操作系统的系统架构搭建与组件应用开发等方面提供普适的经验方法与思想。
附图说明
图1为分区实时操作系统下DDS通信中间件的构建方法的流程图;
图2为本发明实施例中VxWorks653系统架构图;
图3为DDS功能子模块编译顺序图;
图4为ccppc编译指令示例图
图5为组件描述文件示例图
图6为分区通过系统调用使用底层API的实际过程图
图7为本发明实施例所用IDL文件图;
图8为本发明实施例DDS应用代码自动生成指令图;
图9为DDS实体初始化流程图;
图10为本发明实施例中VxWorks653系统使用DDS通信中间件交互界面
图11为本发明实施例中Win10系统使用DDS接收信息界面
图12为本发明实施例中Win10系统使用DDS发送信息界面
具体实施方式
为使本发明的技术方案与目的更加清楚明白,下面结合附图对本发明实施例作更为详尽说明。
本发明实施例使用飞思卡尔P2020RDB-PCA平台,基于PowerPC处理器运行VxWorks653操作系统,实现与采用Win10系统的x64位计算机之间通过DDS通信中间件进行信息交互。本实施例构建的VxWorks653系统架构如附图2所示。应当理解,此处描述的具体实施例仅用于解释本发明,不用于对本发明进行限定。
本发明采用VxWorks653 2.5分区实时嵌入式操作系统与RTI-DDS产品进行构建,具体构建步骤如下:
步骤S1:使用VxWorks653-Linux GNU工具,在VxWorks653命令行开发Shell中,将RTI-DDS源码文件编译成与VxWorks653系统及相应硬件平台适配的DDS链接库文件。
步骤S1.1:核查DDS源码根目录下顶级makefile文件,确定文件编译顺序。
在DDS源码根目录下顶级makefile文件中,定义了提供DDS功能的一系列源码文件夹,或称作子模块,如附图3所示。每个子模块在编译时,依赖于在它之前被列出的子模块,最终在核心功能文件夹core.1.0与API语言层文件夹(本实施例为dds_c.1.0)中形成DDS链接库。因此,编译时要按照顺序,依次打开每个源码文件夹,编译其中每个文件,从而完成该子模块的编译。
步骤S1.2:核查DDS源码根目录下resoure.2.0\makehome文件夹中的相关makefile文件,确定文件编译形式规则与编译项信息。
步骤S1.2.1:在源码根目录下resoure.2.0\makehome文件夹中,核查通用规则生成文件,确定通用编译项信息与通用编译形式规则。
通用生成规则文件对操作系统按照大类进行划分,并定义了某类操作系统的DDS链接库编译时的通用编译项信息,通用形式与通用规则。本实施例核查的通用生成规则文件主要包括stddefs.mk、stdrules.mk、vxworks.mk与vxdefs.mk。stddefs.mk对操作系统按照大类划分,给出通用头文件引用宏;stdrules.mk与vxworks.mk分别给出源文件和VxWorks类操作系统库文件的通用编译形式规则,vxdefs.mk给出VxWorks类操作系统通用编译项信息。
步骤S1.2.2:在源码根目录下resoure.2.0\makehome文件夹中,找到并核查与所用硬件和操作系统对应的模板生成文件,确定特定编译项信息
模板生成文件以“处理器型号+操作系统版本+gcc版本”命名,和所用硬件及操作系统相符即可使用。具体型号和版本号不需要完全一致,这些均可在编译项信息中作对应修改。本例对应PowerPC处理器,VxWorks653操作系统,选择同时满足这两点的模板文件为sbc8641Vx653-2.3gcc3.3.2.mk。模板生成文件中包含特定于硬件平台与操作系统的编译项信息,如操作系统库,操作系统头文件路径,特定编译标志等。此外,文件也给出编译时使用的VxWorks653-Linux GNU工具所在路径。
步骤S1.3:依照编译顺序,遵循编译形式规则,综合编译项信息,将DDS源文件编译成与所使用的硬件平台和操作系统适配的DDS链接库。
本实施例进行DDS链接库编译时使用的VxWorks653-Linux GNU工具所在路径为:
/home/admin/WindRiver/gnu/4.3.3-vxworks653/x86-linux2/bin
编译时,在VxWorks653命令行开发Shell中,依次使用ccppc、arppc、ranlibppc与ldppc这四种GNU工具。其中ccppc将源文件(.c)编译成模块文件(.o),arppc将模块文件集成为静态链接库文件(.a),ranlibppc对静态链接库文件进一步处理符号链接库,ldppc将模块文件链接为动态链接库文件(.so)。其中编译项信息主要提供在使用ccppc将源文件编译成模块文件的步骤中,其余步骤只需指定输入文件和输出文件。
附图4所示即为使用ccppc将第一个DDS功能子模块log.1.0的common子文件夹下的源文件Log.c编译成模块文件Log.o时,在VxWorks653命令行开发Shell中进行的指令输入。需要说明的是,子模块A具有共享头文件路径,该路径提供给依赖于子模块A的其它子模块使用。当编译不同子模块中的源文件时,编译项信息中有关DDS源码各子模块共享头文件路径的部分将发生变化。易于理解,这是因为每个子模块所依赖的子模块不同。显然,编译顺序越靠后的子模块,依赖的子模块越多,其编译项信息中相关共享头文件路径也就越多。
采用上述步骤,将源文件逐个编译成模块文件,形成静态链接库和动态链接库,最终在核心功能文件夹core.1.0与API语言层文件夹(本实施例为dds_c.1.0)中形成可用的完整DDS链接库。本实施例中将使用动态链接库libnddscore.so和libnddsc.so。
步骤S2:使用Wind River开发工作台,在VxWorks653系统项目中配置DDS支持环境。
步骤S2.1:为DDS链接库分配足够的内存空间。
在ConfigRecord子项目中,对fsl_p2020_rdb_default.xml中分区内存配置相关条目,包括RequireMemory和MemorySize及其下属条目默认值进行修改,为DDS链接库提供足够的内存空间;对fsl_p2020_rdb.xml中整个系统内存分配进行调整,使扩大的分区内存区域不与系统其他部分内存区域发生冲突,并相应扩大系统整体内存区域的大小。
步骤S2.2:在VxWorks653系统项目中配置DDS支持环境
步骤S2.2.1:为使用DDS通信中间件的分区添加宏定义
右键选中分区子项目,选择最后一项“Properties”,打开分区属性配置界面。左侧栏选择“Build Properties”,打开构建属性配置界面。在“Variables”选项卡下左侧的“Name”栏,找到“DEFINES”,在右侧的“Value”栏的对应行,填入宏定义命令“-DRTI_VXWORKS-DRTI_VX653”。宏定义将使DDS应用正确调用对应操作系统的底层API。
步骤S2.2.2:为使用DDS通信中间件的分区添加引用头文件路径
在步骤S2.2.1中打开的构建属性配置界面中继续配置。在“Paths”选项卡下“Include directories”表中,仿照已有头文件引用路径格式,添加DDS头文件引用路径,本实施例中为:
C:/RTI/ndds.5.0.0/include
C:/RTI/ndds.5.0.0/include/ndds
在系统映像编译过程中,将按照路径核查DDS链接库中API的相关引用及声明。
步骤S2.2.3:为使用DDS通信中间件的分区添加链接库文件路径
在步骤S2.2.1中打开的构建属性配置界面中继续配置。将DDS链接库文件libnddscore.so和libnddsc.so置于分区项目文件夹下。在“Libraries”选项卡下“Librarydirectives”表中,添加DDS链接库文件路径,本实施例中为:
C:/WindRiver/workspace/part1/libnddsc.so
C:/WindRiver/workspace/part1/libnddscore.so
在系统映像编译过程中,将路径指向的链接库编译进系统映像,这也是步骤S2.1中为DDS链接库分配足够内存空间的原因。
步骤S3:在VxWorks653系统分区中为DDS提供部分操作系统底层API支持。
步骤S3.1:提供网络套接字Socket相关API支持。
DDS通信中间件基于以太网TCP协议。分区应用运行时调用DDS相关API,进一步调用操作系统中网络套接字Socket相关API,所以需要在分区中提供网络套接字Socket相关API支持。
步骤S3.1.1:编写组件描述文件,将Socket相关API核心层驱动模块文件包装成内核组件,在VxWorks653系统项目内核配置中添加。
组件描述文件(后缀名.cdf)以类似C语言结构体的方式,以固定的变量类型名,加上开发者自定义的变量值,来描述内核组件的名称、属性、使用的源文件或模块文件名、所属文件夹、程序入口、可变参数宏及组件依赖关系等一系列重要信息。通过编写组件描述文件,可将源代码或模块文件包装成内核组件,配置到VxWorks653系统项目内核,从而执行对应功能。组件描述文件示例如附图5所示。
将Socket相关API核心层驱动模块文件添加到VxWorks653系统核心层项目下的($CPU)gnu.debug文件夹里,系统映像编译时将使用该文件。($CPU)表示所使用硬件平台的CPU名称,本实施例中为PPCE500V2。
步骤S3.1.2:在使用DDS通信中间件的分区中导入分区Socket相关API函数源文件。
分区应用使用DDS应用API,最终调用分区Socket相关API函数源文件提供的网络套接字Socket相关API。在应用主程序前执行socketLibInit();语句,来进行分区Socket相关API驱动注册。
步骤S3.2:提供DDS需要调用的其它操作系统底层API支持。
VxWorks653系统的核心层拥有管理员权限,可以使用全部操作系统底层API。为防止分区应用错误使用底层API,导致核心系统层出错,进而导致整个系统崩溃,VxWorks653系统对分区封锁了部分底层API使用权限。其余底层API使用过程也由系统自身以类似于下述系统调用的方式进行处理,不会影响到核心层及其它分区。这也是VxWorks653系统安全性的体现。
如果分区应用需要使用被封锁的底层API,可以通过系统调用的方式进行。分区应用层通过vThreadsOsInvoke,将API和入口参数传递给核心层,核心层以valOsInvoke对接分区请求,执行对应底层API服务,将返回码传回分区。本实施例中对除网络套接字相关API之外的两个操作系统底层API函数进行系统调用。
步骤S3.2.1:编写组件源文件与组件描述文件,将系统调用核心层代码包装成内核组件,在VxWorks653系统项目内核配置中添加。
编写系统调用核心层代码。将要执行的底层API封装成处理函数,并设置函数对分区通过vThreadsOsInvoke上传的入口参数进行验证。通过valSysCallMethodSet初始化系统调用,该函数以上述处理函数句柄、验证函数句柄和系统调用识别号作为入口参数。
编写组件描述文件,注意引用所使用的底层API的头文件或其模块文件,将系统调用初始化函数封装为组件添加至内核中。VxWorks653系统映像在初始化时将执行该函数,使系统运行时分区应用的系统调用请求能被正常响应。
步骤S3.2.2:编写系统调用分区API函数源文件并导入至分区。
分区以底层API接口框架封装vThreadsOsInvoke,即可实现对应底层API的系统调用,过程如附图6所示。将编写好的源文件置于分区项目文件夹下。
步骤S4:使用rtiddsgen工具与数据格式IDL文件,生成特定于数据结构的DDS应用代码,封装DDS应用API为初始化、发送、接收等函数,供分区应用调用。
步骤S4.1:定义数据格式IDL文件。
数据结构IDL文件用于对使用DDS服务交互的数据信息的数据类型和变量长度等进行规定,是一份语言无关的通用的数据结构定义文件。本实施例使用的简单IDL文件如附图7所示。文件中定义了整型变量ID与字符串类型变量message,并规定message变量的最大长度为128。
步骤S4.2:使用rtiddsgen工具自动生成特定于数据结构的DDS应用代码。
rtiddsgen工具位于DDS软件安装根目录下的scripts文件夹中。在Windows命令行开发Shell中输入生成指令,如附图8所示,将在scripts文件夹下生成特定于IDL文件所定义的数据结构的DDS应用代码。在指令中主要指定生成代码语言和特定于硬件平台及操作系统的DDS链接库路径。
步骤S4.3:封装DDS应用API为初始化、发送、接收等函数。
按照如附图9所示流程,使用DDS应用API初始化DDS实体,编写DDS初始化函数。主要使用XXXDataWriter_write,编写DDS发送函数。主要使用XXXDataReader_take或XXXDataReader_read,编写DDS接收函数。XXXDataReader_take从缓存中读取数据并删除,XXXDataReader_read只读取缓存而不删除数据。应用程序首先调用DDS初始化函数,执行完毕后,再调用DDS发送或接收函数,即可在应用程序任意位置进行数据交互。
本实施例中,VxWorks653系统分区1应用循环发送消息源分区ID和消息,Win10系统应用接收并打印;Win10系统应用循环发送消息目的分区ID和消息,VxWorks653系统分区2应用接收并打印。将编写好的应用代码源文件置于分区项目文件夹下。
步骤S5:编译VxWorks653系统映像并烧写至P2020RDB-PCA开发板,在采用Win10系统的x64位计算机上启动简单DDS应用,进行信息交互。VxWorks653系统分区1应用通过DDS发送信息,Win10系统应用使用DDS接收信息;Win10系统应用使用DDS发送信息,VxWorks653系统分区2应用通过DDS接收信息。各界面显示如附图10、附图11、附图12所示。
本发明实施例如上所述,通过在VxWorks653分区实时嵌入式操作系统中构建DDS通信中间件,实现VxWorks653系统与其它设备进行联网通讯。
本领域技术人员容易理解的是,采用本发明提供的构建方法,调用DDS应用API开发应用程序,可以基于本发明提供的通讯基础功能,在不同嵌入式硬件上部署分区实时操作系统,与各种不同的设备对象实现更为复杂的信息交互,从而建立具有特定功能的系统项目或平台。
在不偏离本发明的基本技术思路和精神原则的情况下,针对上述细节所做出的任何明显的修改,或等同的替换,或进一步的优化,均应包含在本发明的权利要求范围内。

Claims (5)

1.一种分区实时操作系统下DDS通信中间件的构建方法,其特征在于,所述的通信中间件利用RTI-DDS产品在VxWorks653分区实时嵌入式操作系统中构建;所述DDS通信中间件包括DDS链接库和封装的初始化、发送、接收应用接口;所述的VxWorks653分区实时嵌入式操作系统为DDS提供支持环境,在分区中提供部分操作系统底层API支持;所述构建方法的基本步骤如下:
步骤S1:使用VxWorks653-Linux GNU工具,在VxWorks653命令行开发Shell中,将RTI-DDS源码文件编译成与VxWorks653系统及相应硬件平台适配的DDS链接库文件;
步骤S2:使用Wind River开发工作台,在VxWorks653系统项目中配置DDS支持环境;
步骤S3:在VxWorks653系统分区中为DDS提供部分操作系统底层API支持;
步骤S4:使用rtiddsgen工具与数据格式IDL文件,生成特定于数据结构的DDS应用代码,封装DDS应用API为初始化、发送、接收函数,供分区应用调用;
所述步骤S1中,具体步骤为:
步骤S1.1:核查DDS源码根目录下顶级makefile文件,确定文件编译顺序;
步骤S1.2:核查DDS源码根目录下resoure.2.0\makehome文件夹中的相关makefile文件,确定文件编译形式规则与编译项信息:
步骤S1.3:依照编译顺序,遵循编译形式规则,综合编译项信息,将DDS源文件编译成与所使用的硬件平台和操作系统适配的DDS链接库:
在VxWorks653命令行开发Shell中,依次使用ccppc、arppc、ranlibppc与ldppc这四种VxWorks653-Linux GNU工具,将源文件编译为模块文件,将模块文件集成为静态链接库或链接为动态链接库,最终形成可用的完整DDS链接库。
2.根据权利要求1所述的分区实时操作系统下DDS通信中间件的构建方法,其特征在于,所述步骤S1.2中,具体步骤为:
步骤S1.2.1:核查通用规则生成文件,确定通用编译项信息与通用编译形式规则;
步骤S1.2.2:找到并核查与所用硬件和操作系统对应的模板生成文件,确定特定编译项信息。
3.根据权利要求1所述的分区实时操作系统下DDS通信中间件的构建方法,其特征在于,所述步骤S2中,具体步骤为:
步骤S2.1:在ConfigRecord子项目中的配置xml里为DDS链接库分配足够的内存空间,并相应调整VxWorks653系统的整体内存分配;
步骤S2.2:在VxWorks653系统项目中配置DDS支持环境:
步骤S2.2.1:为使用DDS通信中间件的分区在Build Properties——Variables——DEFINES中添加宏定义-DRTI_VXWORKS-DRTI_VX653;
步骤S2.2.2:为使用DDS通信中间件的分区在Build Properties——Paths——Include directories中添加DDS引用头文件路径;
步骤S2.2.3:为使用DDS通信中间件的分区在Build Properties——Libraries——Library directives中添加DDS链接库文件路径。
4.根据权利要求1所述的分区实时操作系统下DDS通信中间件的构建方法,其特征在于,所述步骤S3中,具体步骤为:
步骤S3.1:提供网络套接字Socket相关API支持:
步骤S3.1.1:将Socket相关API核心层驱动模块文件添加到VxWorks653系统核心层项目下的($CPU)gnu.debug文件夹里;编写组件描述文件,将Socket相关API核心层驱动模块文件包装成内核组件,在VxWorks653系统项目内核配置中添加;
步骤S3.1.2:在使用DDS通信中间件的分区中导入分区Socket相关API函数源文件;在应用主程序前执行socketLibInit()指令,进行分区Socket相关API驱动注册;
步骤S3.2:以系统调用方式提供DDS需要调用的其它操作系统底层API支持:
步骤S3.2.1:编写组件源文件与组件描述文件,将系统调用核心层代码包装成内核组件,在VxWorks653系统项目内核配置中添加;所述核心层代码主要包括基于valSysCallMethodSet的系统调用初始化函数实现,及对应底层API的处理函数和参数验证函数的实现;
步骤S3.2.2:编写系统调用分区API函数源文件并导入至分区;所述源文件主要以底层API框架封装vThreadsOsInvoke实现分区API函数。
5.根据权利要求1所述的分区实时操作系统下DDS通信中间件的构建方法,其特征在于,所述步骤S4中,最终将DDS应用API封装为初始化、发送、接收接口函数;应用程序首先调用DDS初始化函数,执行完毕后,再调用DDS发送或接收函数,即可在VxWorks653系统分区中使用DDS通信中间件进行数据交互。
CN201910938198.0A 2019-09-30 2019-09-30 一种分区实时操作系统下dds通信中间件的构建方法 Active CN110704070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910938198.0A CN110704070B (zh) 2019-09-30 2019-09-30 一种分区实时操作系统下dds通信中间件的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910938198.0A CN110704070B (zh) 2019-09-30 2019-09-30 一种分区实时操作系统下dds通信中间件的构建方法

Publications (2)

Publication Number Publication Date
CN110704070A CN110704070A (zh) 2020-01-17
CN110704070B true CN110704070B (zh) 2021-04-13

Family

ID=69197722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910938198.0A Active CN110704070B (zh) 2019-09-30 2019-09-30 一种分区实时操作系统下dds通信中间件的构建方法

Country Status (1)

Country Link
CN (1) CN110704070B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111698217B (zh) * 2020-05-19 2022-01-28 电子科技大学 一种软件化雷达通用通信中间件
CN112583927B (zh) * 2020-12-23 2022-04-15 北京航空航天大学 基于机载嵌入式实时操作系统的服务管理系统
CN114285698B (zh) * 2021-12-28 2022-09-13 北京航空航天大学 一种嵌入式操作系统上基于K3s的DDS通信中间件的构建方法
CN114327490B (zh) * 2022-03-04 2022-07-08 麒麟软件有限公司 国产操作系统适配Ceph的方法
CN115002233A (zh) * 2022-04-29 2022-09-02 中国航空无线电电子研究所 一种基于协议的dds中间件的验证系统及设计方法
CN114911539B (zh) * 2022-05-17 2024-05-14 武汉深之度科技有限公司 一种运行系统的启动方法及计算设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008044A (zh) * 2019-04-11 2019-07-12 北京航空航天大学 一种嵌入式rtos上分布式实时通信中间件的构建方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1750253B1 (en) * 2005-08-04 2012-03-21 Nuance Communications, Inc. Speech dialog system
CN107454092B (zh) * 2017-08-18 2021-09-17 北京海兰信数据科技股份有限公司 一种opcua与dds协议信号转换装置、通信系统及通信方法
CN108768390A (zh) * 2018-05-23 2018-11-06 北京航空航天大学 一种基于dds芯片的高精度四通道信号源

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008044A (zh) * 2019-04-11 2019-07-12 北京航空航天大学 一种嵌入式rtos上分布式实时通信中间件的构建方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
VxWorks操作系统在S3C4510B上的移植;仵伟等;《信息技术》;20060731;第30卷(第7期);全文 *
基于DDS的分布式数字仿真系统设计与实现;周平等;《系统仿真学报》;20140831;第26卷(第8期);正文第1682页 *
实时嵌入式操作系统VxWorks结构分析和剪裁;孙凤丽等;《软件产业与工程》;20131231(第1期);全文 *

Also Published As

Publication number Publication date
CN110704070A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN110704070B (zh) 一种分区实时操作系统下dds通信中间件的构建方法
Hugues et al. From the prototype to the final embedded system using the Ocarina AADL tool suite
Moscicki Diane-distributed analysis environment for grid-enabled simulation and analysis of physics data
CN105159670A (zh) 一种通用座舱显示控制系统软件开发框架
Gokhale et al. Model driven middleware
Senington et al. Using docker for factory system software management: Experience report
US20140304701A1 (en) Object-Oriented Open Framework for Campaign Generation
Lüttig et al. A service provisioning layer enabling simplex-minded function development on integrated modular avionics hardware
Robati et al. Design and simulation of distributed IMA architectures using TTEthernet: a model-driven approach
US9830204B2 (en) Facilitating communication between software components that use middleware
Dörr et al. A Behavior Specification and Simulation Methodology for Embedded Real-Time Software
AU2014338988A1 (en) Facilitating communication between software components that use middleware
Height A practical guide to adopting the universal verification methodology (UVM)
Herzner et al. Model-based development of distributed embedded real-time systems with the decos tool-chain
Smith et al. Lessons learned in inter-organization virtual integration
CN113961232A (zh) 提供集成开发环境的终端、方法和平台服务器
Sredojević et al. Domain specific agent-oriented programming language based on the Xtext framework
Hu et al. Safety critical applications and hard real-time profile for Java: a case study in avionics
CN114003232B (zh) 一种基于航电数据模型的传输服务实现方法
US20220300309A1 (en) Traceability based impact analysis
Varet et al. New methodology to develop certified safe and secure aeronautical software—An embedded router case study
Christensen Space plug-and-play architecture networking: A self-configuring heterogeneous network architecture
EP2866139A1 (en) Method facilitating the communication between two software components that use two different middleware by automatically generating a communication layer between them
Lukic et al. Automated Configuration of ARINC 653-Compliant Avionics Architectures
Ferguson et al. System software framework for system of systems avionics

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant