一种IMA系统配置软件实现方法

2014-07-24 18:16魏国麦先根齐晓斌
现代电子技术 2014年14期

魏国+麦先根+齐晓斌

摘 要: 综合模块化航空电子系统中各单元之间存在复杂的交互关系,为了有效管理各个系统软件运行状态,并方便用户配置,需要航电软件系统配置软件。提出一种系统配置软件实现方法,考虑综合化系统中的各类软件,提供配置信息定向输出机制。系统配置软件解决了综合化系统软件状态控制问题,集中配置各单元,并将配置信息输出到预定义文件中。实践表明,该系统配置软件实现方法可有效解决综合化系统软件运行状态控制问题,有效提高软件开发人员工作效率。

关键词: 综合模块化航空电子; 系统配置软件; 运行状态; 配置信息

中图分类号: TN710?34; TP311 文献标识码: A 文章编号: 1004?373X(2014)14?0077?04

Implementation of IMA system configuration software

WEI Guo, MAI Xian?gen, QI Xiao?bin

(Xian Aeronautical Computing Technique Research Institute, AVIC, Xian 710065, China)

Abstract: The complex interaction relation among all the units in integrated modular avionics (IMA) system is summarized. Configuration software is needed to efficiently manage running states of IMA system softwares, and make users to configure their system softwares easily. An implementation method of IMA system configuration software is put forward. In consideration of all kinds of softwares in IMA system, a directional output mechanism of configuration information was provided. The system configuration software resolves the problems of running state control of totalization system softwares, concentration configuration of system softwares and configuration information output to predefined files. Practical application indicates that the implementation method of system configuration software can resolve the problem of IMA system software state control, and improve work efficiency of software developer.

Keywords: integrated modular avionics; system configuration software; running state; configuration information

0 概 述

在传统的航空电子系统(简称航电)中,所有的子系统功能均基于独立而且专用的硬件和软件实现,子系统功能简单、高效。但是随着现代航空技术的发展,为了满足航电系统规模、性能和复杂性的飞速发展,从20世纪80年代开始在宝石柱[1]、宝石台[1]的基础上逐步形成了综合模块化航空电子系统的概念。综合模块化航空电子(Integrated Modular Avionics,IMA)采用开放式体系结构,应用商用货架产品构件进行软件开发,以实现软件功能的综合化、模块化和通用化[2]。目前,航电系统软件体系结构[3]由下而上包括模块支持层MSL、操作系统层、应用层。目前随着航电系统综合化程度越来越高,机载计算资源高度共享,需要对系统运行状态进行有效控制,这就需要实现对系统软件状态进行有效配置的软件。

区别于综合化系统的配置管理[4](Configuration Management,CM)和配置生成技术[5],系统配置用于在开发的过程中确定目标机软件系统在运行前的状态和运行时的环境,提供对操作系统、驱动程序和组件的选配、有关运行参数的设置、操作系统基础能力的设置、以及各种程序映像的链接定位等功能,软件输出为源码头文件、项目工程文件或链接脚本文件。本文分析了系统配置软件需求,划分软件功能,提出了一种综合化系统配置软件实现的方法。

1 需求分析

系统配置软件将用户定义的配置文件转换成C/C++语言头文件、工程文件和链接脚本文件,在项目编译、链接过程中由项目中的其他源文件和编译链接工具使用。IMA系统软件分为模块支持软件MSL、嵌入式操作系统、应用程序等,系统配置软件需要对嵌入式系统软件运行过程中涉及的信息进行配置,并能够为其他项目、编译过程、连接过程等提供输出到源文件或脚本文件的配置信息。

系统配置软件按照功能划分为文件(包括配置文件、规则文件)编辑器、语法检查、配置信息输出三部分。系统配置工具生成的源码头文件、工程文件、连接脚本文件中,源码头文件为C/C++头文件形式,文件中定义了供其他C/C++源文件引用的常量,这些常量及其值源于配置文件;工程文件为编译时使用的Makefile文件,文件中定义了供其他Makefile文件引用的宏,这些宏及其值源于配置文件;脚本文件为供链接器调用的二进制链接脚本文件,文件中定义了目标二进制文件的链接地址,这些内容源于内存配置文件。

2 软件实现方法

本节将分别对系统配置软件的编辑器、目标文件生成以及语法检查功能进行设计,实现从编写配置文件到生成源文件等目标文件的过程。

2.1 编辑器逻辑流程

编辑器分为配置文件编辑器和规则文件编辑器,分别包含用户配置信息和配置文件规则信息。配置文件编辑器逻辑流程设计如图 1所示,步骤说明如下:

(1)设置配置文件*.cfg打开方式为配置文件编辑器;

(2) 解析配置文件,根据配置文件对应的规则文件,将配置文件解析为一棵配置树,如果解析出错,进入异常处理流程;

(3) 配置文件编辑器用图形方式显示配置文件内容,用户可以新建配置节点、删除配置节点和修改节点的属性;

(4) 保存配置文件,将修改后的配置树的内容存储为XML格式的配置文件。

规则文件编辑器逻辑流程与配置文件编辑器流程相似,步骤说明如下:

(1) 设置打开方式为规则文件编辑器“Schema Editor”;

(2) 解析规则文件,将规则文件解析为一棵配置树,如果解析出错,进入异常处理流程。规则文件编辑器将规则文件解析为元素节点、属性节点和引用关系,用户可以对元素节点、属性节点、引用关系和描述信息进行编辑;

(3) 规则文件编辑器用图形方式显示规则文件内容,用户可以编辑元素节点、属性节点、引用关系和描述信息;

(4) 保存规则文件,将修改后的配置树的内容存储为XML格式的规则文件。

图1 配置文件编辑器逻辑流程

2.2 生成源文件/工程文件逻辑流程

生成源文件和工程文件逻辑流程如图 2所示,步骤说明如下:

(1) 输入文件为*.cfg配置文件,且在构建项目或者保存文件时,调用源文件和工程文件生成器。

(2) 解析配置文件,将配置文件解析为对象模型,如果解析出错,进入异常处理流程。

(3) 循环读取元素节点和属性节点,同时查询节点规则文件配置,获取节点在规则文件里配置的输出方式和宏名,如果宏名为空则不生成,如果宏名不为空,则按照输出方式(源文件或者工程文件)生成到相应文件中,生成到源文件中的是宏,生成到工程文件中的是常量。

(4) 当全部节点读取完或者遇到异常时结束流程。

2.3 生成链接脚本文件逻辑流程

生成链接脚本文件逻辑流程如图 3所示,步骤说明如下:

(1) 输入文件为*.mtp配置文件,且在构建项目或者保存文件时,调用链接脚本文件生成器;

(2) 解析配置文件,将配置文件解析为对象模型,即将配置文件解析成4种节点:分区节点、普通段节点、预留段节点和重定位段节点。如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

图2 生成源文件和工程文件的逻辑流程图

(3) 读取所有的分区节点,并将分区节点信息生成到链接脚本文件中的MEMORY块中;

(4) 读取分区节点的普通段、预留段、重定位段,并按照相应的格式生成到链接脚本文件中的SECTIONS块中,重定位节点生成方式需要判断是否配置跟随分段,如果配了跟随分段,则重定位的装入地址为跟随分段的结束地址,否则重定位段的装入地址为其所在分区的起始地址;

(5) 节点读完或者遇到异常结束流程。

2.4 语法检查逻辑流程

语法检查包括配置文件语法检查和规则文件语法检查。

图3 生成链接脚本文件的逻辑流程图

配置文件语法检查逻辑流程如图4(a)所示,步骤说明如下:

(1) 输入文件为*.cfg或*.mtp,且在构建项目或者保存文件时,进行配置文件语法检查;

(2) 解析配置文件,将配置文件解析为对象模型,即将配置文件解析成元素节点和属性节点,如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

(3) 循环读取所有的元素节点,对元素节点的所有属性值进行校验,校验时需要结合对应的规则文件里的设置,依次对属性值进行使用类型校验、数据格式校验和数据范围校验;

(4) 对属性的使用类型进行校验;

(5) 对属性的数据格式进行校验;

(6) 对属性的数据范围进行校验;

(7) 节点读完或者校验失败时,结束校验。

规则文件语法检查逻辑流程如图4(b)所示,步骤说明如下:

(1) 输入文件为*.xsd和*.exsd时,且在构建项目或者保存文件时,进行规则文件语法检查;

(2) 解析规则文件,将规则文件解析为对象模型,即将规则文件解析成元素节点和属性节点,如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

(3) 循环读取所有的元素节点,对元素节点的名字和其所有属性节点的名字进行验证。

节点读完或者校验失败时,结束校验。

图4 配置文件和规则文件语法检查流程图

3 系统配置软件实现

系统配置软件采用Eclipse插件技术开发,实现后直接集成在自主研发的基于Eclipse的开发环境中。系统配置软件作为开发环境的一部分,提供配置文件图形化编辑界面以及配置文件语法检查,极大地方便用户配置系统信息。配置界面以及生成文件信息如图 5所示。

4 结 语

目前,按照本系统配置软件实现方法开发的系统配置软件已应用于自主研制的开发环境中。规则文件和配置文件均可由用户定义,用户可以配置任意需要的信息,并生成到源文件、工程文件或链接脚本文件中,使得系统配置软件具备良好的扩展性和实用性。图形界面编辑器的使用,使用户摆脱文本编辑的方式,有效提升用户体验,简化系统软件配置过程。

图5 编辑器和生成文件示例

参考文献

[1] Joint Advanced Strike Technology Program. Avionics architecture definition [R]. Arlington, USA: JAST Avionics Lead, 1994.

[2] 郑军,刘畅,任占勇.综合模块化航空电子软件测试环境[J].计算机工程与设计,2011(8):2737?2740.

[3] 王运盛,陈颖.ASAAC航空电子体系结构分析[J].电讯技术,2007,47(5):159?162.

[4] 郑朝辉,陈新中,张晓先.综合模块化航空电子系统的可靠性设计[J].计算机工程,2009(35):272?277.

[5] 张旻.DO?178B可验证的机载操作系统配置生成技术[J].航空计算技术,2012,42(6):95?98.

[6] 胡林平,崔西宁.综合化航空电子系统安全评估方法[J].现代电子技术,2012,35(14):126?130.

[7] 董勤鹏,熊华钢.基于某航空电子设备的自动测试系统设计与实现[J].现代电子技术,2008,31(21):146?149.

2 软件实现方法

本节将分别对系统配置软件的编辑器、目标文件生成以及语法检查功能进行设计,实现从编写配置文件到生成源文件等目标文件的过程。

2.1 编辑器逻辑流程

编辑器分为配置文件编辑器和规则文件编辑器,分别包含用户配置信息和配置文件规则信息。配置文件编辑器逻辑流程设计如图 1所示,步骤说明如下:

(1)设置配置文件*.cfg打开方式为配置文件编辑器;

(2) 解析配置文件,根据配置文件对应的规则文件,将配置文件解析为一棵配置树,如果解析出错,进入异常处理流程;

(3) 配置文件编辑器用图形方式显示配置文件内容,用户可以新建配置节点、删除配置节点和修改节点的属性;

(4) 保存配置文件,将修改后的配置树的内容存储为XML格式的配置文件。

规则文件编辑器逻辑流程与配置文件编辑器流程相似,步骤说明如下:

(1) 设置打开方式为规则文件编辑器“Schema Editor”;

(2) 解析规则文件,将规则文件解析为一棵配置树,如果解析出错,进入异常处理流程。规则文件编辑器将规则文件解析为元素节点、属性节点和引用关系,用户可以对元素节点、属性节点、引用关系和描述信息进行编辑;

(3) 规则文件编辑器用图形方式显示规则文件内容,用户可以编辑元素节点、属性节点、引用关系和描述信息;

(4) 保存规则文件,将修改后的配置树的内容存储为XML格式的规则文件。

图1 配置文件编辑器逻辑流程

2.2 生成源文件/工程文件逻辑流程

生成源文件和工程文件逻辑流程如图 2所示,步骤说明如下:

(1) 输入文件为*.cfg配置文件,且在构建项目或者保存文件时,调用源文件和工程文件生成器。

(2) 解析配置文件,将配置文件解析为对象模型,如果解析出错,进入异常处理流程。

(3) 循环读取元素节点和属性节点,同时查询节点规则文件配置,获取节点在规则文件里配置的输出方式和宏名,如果宏名为空则不生成,如果宏名不为空,则按照输出方式(源文件或者工程文件)生成到相应文件中,生成到源文件中的是宏,生成到工程文件中的是常量。

(4) 当全部节点读取完或者遇到异常时结束流程。

2.3 生成链接脚本文件逻辑流程

生成链接脚本文件逻辑流程如图 3所示,步骤说明如下:

(1) 输入文件为*.mtp配置文件,且在构建项目或者保存文件时,调用链接脚本文件生成器;

(2) 解析配置文件,将配置文件解析为对象模型,即将配置文件解析成4种节点:分区节点、普通段节点、预留段节点和重定位段节点。如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

图2 生成源文件和工程文件的逻辑流程图

(3) 读取所有的分区节点,并将分区节点信息生成到链接脚本文件中的MEMORY块中;

(4) 读取分区节点的普通段、预留段、重定位段,并按照相应的格式生成到链接脚本文件中的SECTIONS块中,重定位节点生成方式需要判断是否配置跟随分段,如果配了跟随分段,则重定位的装入地址为跟随分段的结束地址,否则重定位段的装入地址为其所在分区的起始地址;

(5) 节点读完或者遇到异常结束流程。

2.4 语法检查逻辑流程

语法检查包括配置文件语法检查和规则文件语法检查。

图3 生成链接脚本文件的逻辑流程图

配置文件语法检查逻辑流程如图4(a)所示,步骤说明如下:

(1) 输入文件为*.cfg或*.mtp,且在构建项目或者保存文件时,进行配置文件语法检查;

(2) 解析配置文件,将配置文件解析为对象模型,即将配置文件解析成元素节点和属性节点,如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

(3) 循环读取所有的元素节点,对元素节点的所有属性值进行校验,校验时需要结合对应的规则文件里的设置,依次对属性值进行使用类型校验、数据格式校验和数据范围校验;

(4) 对属性的使用类型进行校验;

(5) 对属性的数据格式进行校验;

(6) 对属性的数据范围进行校验;

(7) 节点读完或者校验失败时,结束校验。

规则文件语法检查逻辑流程如图4(b)所示,步骤说明如下:

(1) 输入文件为*.xsd和*.exsd时,且在构建项目或者保存文件时,进行规则文件语法检查;

(2) 解析规则文件,将规则文件解析为对象模型,即将规则文件解析成元素节点和属性节点,如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

(3) 循环读取所有的元素节点,对元素节点的名字和其所有属性节点的名字进行验证。

节点读完或者校验失败时,结束校验。

图4 配置文件和规则文件语法检查流程图

3 系统配置软件实现

系统配置软件采用Eclipse插件技术开发,实现后直接集成在自主研发的基于Eclipse的开发环境中。系统配置软件作为开发环境的一部分,提供配置文件图形化编辑界面以及配置文件语法检查,极大地方便用户配置系统信息。配置界面以及生成文件信息如图 5所示。

4 结 语

目前,按照本系统配置软件实现方法开发的系统配置软件已应用于自主研制的开发环境中。规则文件和配置文件均可由用户定义,用户可以配置任意需要的信息,并生成到源文件、工程文件或链接脚本文件中,使得系统配置软件具备良好的扩展性和实用性。图形界面编辑器的使用,使用户摆脱文本编辑的方式,有效提升用户体验,简化系统软件配置过程。

图5 编辑器和生成文件示例

参考文献

[1] Joint Advanced Strike Technology Program. Avionics architecture definition [R]. Arlington, USA: JAST Avionics Lead, 1994.

[2] 郑军,刘畅,任占勇.综合模块化航空电子软件测试环境[J].计算机工程与设计,2011(8):2737?2740.

[3] 王运盛,陈颖.ASAAC航空电子体系结构分析[J].电讯技术,2007,47(5):159?162.

[4] 郑朝辉,陈新中,张晓先.综合模块化航空电子系统的可靠性设计[J].计算机工程,2009(35):272?277.

[5] 张旻.DO?178B可验证的机载操作系统配置生成技术[J].航空计算技术,2012,42(6):95?98.

[6] 胡林平,崔西宁.综合化航空电子系统安全评估方法[J].现代电子技术,2012,35(14):126?130.

[7] 董勤鹏,熊华钢.基于某航空电子设备的自动测试系统设计与实现[J].现代电子技术,2008,31(21):146?149.

2 软件实现方法

本节将分别对系统配置软件的编辑器、目标文件生成以及语法检查功能进行设计,实现从编写配置文件到生成源文件等目标文件的过程。

2.1 编辑器逻辑流程

编辑器分为配置文件编辑器和规则文件编辑器,分别包含用户配置信息和配置文件规则信息。配置文件编辑器逻辑流程设计如图 1所示,步骤说明如下:

(1)设置配置文件*.cfg打开方式为配置文件编辑器;

(2) 解析配置文件,根据配置文件对应的规则文件,将配置文件解析为一棵配置树,如果解析出错,进入异常处理流程;

(3) 配置文件编辑器用图形方式显示配置文件内容,用户可以新建配置节点、删除配置节点和修改节点的属性;

(4) 保存配置文件,将修改后的配置树的内容存储为XML格式的配置文件。

规则文件编辑器逻辑流程与配置文件编辑器流程相似,步骤说明如下:

(1) 设置打开方式为规则文件编辑器“Schema Editor”;

(2) 解析规则文件,将规则文件解析为一棵配置树,如果解析出错,进入异常处理流程。规则文件编辑器将规则文件解析为元素节点、属性节点和引用关系,用户可以对元素节点、属性节点、引用关系和描述信息进行编辑;

(3) 规则文件编辑器用图形方式显示规则文件内容,用户可以编辑元素节点、属性节点、引用关系和描述信息;

(4) 保存规则文件,将修改后的配置树的内容存储为XML格式的规则文件。

图1 配置文件编辑器逻辑流程

2.2 生成源文件/工程文件逻辑流程

生成源文件和工程文件逻辑流程如图 2所示,步骤说明如下:

(1) 输入文件为*.cfg配置文件,且在构建项目或者保存文件时,调用源文件和工程文件生成器。

(2) 解析配置文件,将配置文件解析为对象模型,如果解析出错,进入异常处理流程。

(3) 循环读取元素节点和属性节点,同时查询节点规则文件配置,获取节点在规则文件里配置的输出方式和宏名,如果宏名为空则不生成,如果宏名不为空,则按照输出方式(源文件或者工程文件)生成到相应文件中,生成到源文件中的是宏,生成到工程文件中的是常量。

(4) 当全部节点读取完或者遇到异常时结束流程。

2.3 生成链接脚本文件逻辑流程

生成链接脚本文件逻辑流程如图 3所示,步骤说明如下:

(1) 输入文件为*.mtp配置文件,且在构建项目或者保存文件时,调用链接脚本文件生成器;

(2) 解析配置文件,将配置文件解析为对象模型,即将配置文件解析成4种节点:分区节点、普通段节点、预留段节点和重定位段节点。如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

图2 生成源文件和工程文件的逻辑流程图

(3) 读取所有的分区节点,并将分区节点信息生成到链接脚本文件中的MEMORY块中;

(4) 读取分区节点的普通段、预留段、重定位段,并按照相应的格式生成到链接脚本文件中的SECTIONS块中,重定位节点生成方式需要判断是否配置跟随分段,如果配了跟随分段,则重定位的装入地址为跟随分段的结束地址,否则重定位段的装入地址为其所在分区的起始地址;

(5) 节点读完或者遇到异常结束流程。

2.4 语法检查逻辑流程

语法检查包括配置文件语法检查和规则文件语法检查。

图3 生成链接脚本文件的逻辑流程图

配置文件语法检查逻辑流程如图4(a)所示,步骤说明如下:

(1) 输入文件为*.cfg或*.mtp,且在构建项目或者保存文件时,进行配置文件语法检查;

(2) 解析配置文件,将配置文件解析为对象模型,即将配置文件解析成元素节点和属性节点,如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

(3) 循环读取所有的元素节点,对元素节点的所有属性值进行校验,校验时需要结合对应的规则文件里的设置,依次对属性值进行使用类型校验、数据格式校验和数据范围校验;

(4) 对属性的使用类型进行校验;

(5) 对属性的数据格式进行校验;

(6) 对属性的数据范围进行校验;

(7) 节点读完或者校验失败时,结束校验。

规则文件语法检查逻辑流程如图4(b)所示,步骤说明如下:

(1) 输入文件为*.xsd和*.exsd时,且在构建项目或者保存文件时,进行规则文件语法检查;

(2) 解析规则文件,将规则文件解析为对象模型,即将规则文件解析成元素节点和属性节点,如果解析出错,进入异常处理流程,具体异常信息请查看“异常和错误处理”;

(3) 循环读取所有的元素节点,对元素节点的名字和其所有属性节点的名字进行验证。

节点读完或者校验失败时,结束校验。

图4 配置文件和规则文件语法检查流程图

3 系统配置软件实现

系统配置软件采用Eclipse插件技术开发,实现后直接集成在自主研发的基于Eclipse的开发环境中。系统配置软件作为开发环境的一部分,提供配置文件图形化编辑界面以及配置文件语法检查,极大地方便用户配置系统信息。配置界面以及生成文件信息如图 5所示。

4 结 语

目前,按照本系统配置软件实现方法开发的系统配置软件已应用于自主研制的开发环境中。规则文件和配置文件均可由用户定义,用户可以配置任意需要的信息,并生成到源文件、工程文件或链接脚本文件中,使得系统配置软件具备良好的扩展性和实用性。图形界面编辑器的使用,使用户摆脱文本编辑的方式,有效提升用户体验,简化系统软件配置过程。

图5 编辑器和生成文件示例

参考文献

[1] Joint Advanced Strike Technology Program. Avionics architecture definition [R]. Arlington, USA: JAST Avionics Lead, 1994.

[2] 郑军,刘畅,任占勇.综合模块化航空电子软件测试环境[J].计算机工程与设计,2011(8):2737?2740.

[3] 王运盛,陈颖.ASAAC航空电子体系结构分析[J].电讯技术,2007,47(5):159?162.

[4] 郑朝辉,陈新中,张晓先.综合模块化航空电子系统的可靠性设计[J].计算机工程,2009(35):272?277.

[5] 张旻.DO?178B可验证的机载操作系统配置生成技术[J].航空计算技术,2012,42(6):95?98.

[6] 胡林平,崔西宁.综合化航空电子系统安全评估方法[J].现代电子技术,2012,35(14):126?130.

[7] 董勤鹏,熊华钢.基于某航空电子设备的自动测试系统设计与实现[J].现代电子技术,2008,31(21):146?149.