一种模块化嵌入式软件架构及其定制方法、定制系统转让专利
申请号 : CN202010059838.3
文献号 : CN111309291B
文献日 : 2021-09-24
发明人 : 原仓周 , 袁发有 , 齐征 , 詹盼盼
申请人 : 北京航空航天大学
摘要 :
权利要求 :
1.一种模块化嵌入式软件架构,其特征在于,所述模块化嵌入式软件架构包括:操作系统适配层、核心模块服务层和应用功能模块层;
所述操作系统适配层,构建在操作系统之上,用于向所述核心模块服务层提供服务接口;
所述核心模块服务层,构建在所述操作系统适配层之上,用于管理所述应用功能模块层的不同模块的生命周期、并提供所述应用功能模块层的不同模块之间的通信,其中,所述应用功能模块层构建在核心模块服务层之上;
所述应用功能模块层的不同模块包括资源配置文件,能够为所述模块化嵌入式软件架构提供不同的功能;
所述资源配置文件包括:模块类型、模块接口、模块依赖的模块;
所述模块类型包括库函数和线程;
当所述模块类型为库函数时,通过所述模块接口与所述模块依赖的模块进行通信;当所述模块类型为线程时,通过进程间通讯方式与同类型的其它模块进行通信。
2.根据权利要求1所述的模块化嵌入式软件架构,其特征在于,所述资源配置文件还包括:模块名称、模块功能、模块版本、模块资源信息和接口集合。
3.根据权利要求1所述的模块化嵌入式软件架构,其特征在于,所述核心模块服务层管理所述应用功能模块层的不同模块的生命周期,包括:所述核心模块服务层解析所述资源配置文件,根据解析的所述资源配置文件以动态链接的方式加载相应的所述应用功能模块层的模块。
4.根据权利要求1所述的模块化嵌入式软件架构,其特征在于,所述模块类型根据所述模块被依赖的模块的数量进行设置;
当所述模块被单个模块所依赖时,设置所述模块类型为库函数;
当所述模块被多个模块所依赖时,设置所述模块类型为线程。
5.根据权利要求1所述的模块化嵌入式软件架构,其特征在于,所述操作系统适配层封装的服务接口包括:系统任务、消息队列、信号量、互斥锁、动态链接、网络、文件系统。
6.一种模块化嵌入式软件架构定制方法,其特征在于,所述模块化嵌入式软件架构为权利要求1‑5任一所述的模块化嵌入式软件架构,具体定制方法包括:S1:选择所述模块化嵌入式软件架构的系统任务信息;
S2:根据所述系统任务信息,选择或输入所述模块化嵌入式软件架构的操作系统和所述应用功能模块层的不同模块的资源配置信息;
S3:根据所述不同模块的资源配置信息生成所述模块化嵌入式软件架构运行的核心可执行文件、模块目标代码文件和启动资源配置文件,具体为:根据步骤S1中的模块集合中各功能模块之间的关系,文件解析器选择功能模块的不同实现代码,根据各功能模块的实现代码选择生成编译配置文件,使用交叉编译工具链编译为符合特定嵌入式设备的模块目标代码文件;
根据步骤S2中的不同模块的资源配置信息,如果模块的资源配置信息被依赖的功能模块为多个时,将该功能模块的类型设置为独立的线程;如果模块的资源配置信息被依赖的功能模块为1个时,将该功能模块的类型设置为提供接口的库函数;然后根据各功能模块的资源配置信息生成启动运行所述模块化嵌入式软件架构的各功能模块的启动资源配置文件;
S4:将所述模块目标代码文件和启动资源配置文件传送到所述模块化嵌入式软件架构。
7.一种模块化嵌入式软件架构定制系统,其特征在于,所述模块化嵌入式软件架构为权利要求1‑5任一所述的模块化嵌入式软件架构,用于执行所述权利要求6所述的模块化嵌入式软件架构定制方法,所述定制系统包括:用户界面,用于选择系统任务信息及平台信息;
任务解析器,用于根据所述系统任务信息解析所述系统任务执行时所需的所述应用功能模块层的模块;
文件解析器,解析所述应用功能模块和生成资源配置文件;
目标代码生成器,使用交叉编译工具链根据所述资源配置文件将所述应用功能模块的模块代码编译为模块目标代码文件和启动资源配置文件。
说明书 :
一种模块化嵌入式软件架构及其定制方法、定制系统
技术领域
背景技术
多、软硬件环境自成体系、规范和标准不统一等特点,造成开发和部署成本高,因此,开发具
有可扩展、可重用、可移植的嵌入式软件是十分有必要的。
的底层软硬件知识,而且嵌入式软件代码的可移植性差。
配层之间提供一个模块管理与调度的中间层,将各个模块之间通信和模块调度接管过来,
将模块做成组件独立出来,降低模块之间的耦合;另一种方式是通过提供开发平台,例如
CN102779047B提出了一种嵌入式软件支撑平台,中间件技术和虚拟机原理,通过统一的操
作系统适配实现系统屏蔽,通过构建公共模块为上层应用程序提供支撑功能。通过使用提
取中间层和提供开发平台的技术尽管提升了嵌入式软件的可移植性和开发效率,但是仅仅
支持上层应用的单一方式执行,缺乏针对不同应用执行的特点提供差异化的支持。
序时,只需把选定的系统服务加载到系统中即可。该架构技术有比较成熟的实现,例如基于
Java语言的eclipse架构;CN102141922B提出了一种在C++语言环境中建立的标准化插件系
统,通过微内核依据插件资源配置文件加载所需插件,并在插件资源配置文件判断插件不
是最新版本时进行插件获取并更新;CN103092645B提供了一种基于微内核技术的地理空间
信息应用系统的实现方法,通过将功能服务分解为原子粒度的功能模块,以微内核技术构
建资源加载管理器,从而实现高效的、可扩展的地理空间应用系统。另一种技术是组件化技
术,例如标准的面向对象应用程序体系规范CORBA,该体系结构解决分布式处理环境中,硬
件和软件系统互连的一种解决方案,软件由组件组成,并通过组件间相互通信实现软件功
能,但是面向过程如C应用则不符合。但是,微内核插件化架构技术和组件化技术仅通过进
程间通信技术实现组件间交互,不适用于资源受限的嵌入式设备,并且各组件的运行方式
已定,用户不能够根据具体应用进行调整提高系统的性能;
需要的软件,最终通过编译链接生成系统可执行映像,例如采用直接修改Makefile文件的
方式,但这种方式操作复杂,对用户技术背景要求高,并且调整软件部分功能需要完全重新
编译整个软件;(2)用户通过执行一些命令达到软件功能模块的替换与更新,但这种方式需
要用户输入繁琐的命令才能完成安装、卸载功能,不方便用户记忆与操作;(3)软件功能以
插件的方式提供,用户通过可视化界面选择部分需要的功能模块然后自动定制,此方案虽
然降低了用户的记忆需要,但是需要用户对定制软件需要的功能有较清晰的认识,并且在
定制软件包含模块数量过多的时候可能造成定制软件功能不完善,影响软件正常运行。
能。因此,急需一种支持多种功能模块运行方式的嵌入式软件架构以及为用户方便使用的
基于任务的嵌入式软件架构定制系统。
发明内容
问题,实现支持多种功能模块的运行方式以及方便用户使用。
所述应用功能模块层构建在核心模块服务层之上。
式软件架构定制方法,所述定制系统包括:
模块层的不同模块的生命周期、并提供所述应用功能模块层的不同模块之间的通信,其中,
所述应用功能模块层构建在核心模块服务层之上,能够解决目前嵌入式软件架构对软件模
块执行特性支持不充分、软件定制不方便等技术问题,实现支持多种功能模块的运行方式
以及方便用户根据嵌入式设备的功能模块运行方式的特点选择不同的功能模块实现方式
以得到更适合的软件实现。
附图说明
具体实施方式
功能模块提供的功能被多个不同功能模块需要时,以独立线程的方式运行可以实现结果共
享,能降低计算开销;(2)功能模块可以被已有线程以库函数接口调用的方式运行,该运行
方式具有更低的开销,当仅有一个功能模块需要修改时,通过库函数接口调用的方式能够
实现低开销和低延迟。
的操作系统的抽象层上,核心模块服务层可以构建在操作系统适配层的抽象层上,应用功
能模块层可以构建在核心模块服务层的抽象层上。
无关的服务或功能。
入式软件架构运行过程中通过加载或卸载应用功能模块能够管理应用功能模块层的不同
模块的生命周期。
模块层的不同模块的生命周期、并提供所述应用功能模块层的不同模块之间的通信,其中,
所述应用功能模块层构建在核心模块服务层之上,能够解决目前嵌入式软件架构对软件模
块执行特性支持不充分、软件定制不方便等技术问题,实现支持多种功能模块的运行方式
以及方便用户根据嵌入式设备的功能模块运行方式的特点选择不同的功能模块实现方式
以得到更适合的软件实现。
进行编写。同样功能的功能模块可以被实现为多种规范,以方便模块化嵌入式软件架构定
制系统自动选择具体应用的功能模块。
和模块依赖的模块和接口集合。其中,模块所需要的资源信息至少包括资源文件名称,模块
类型可以包括库函数和线程。
功能模块,其中,应用功能模块层的不同模块均可以以动态链接的方式由核心模块服务层
进行加载,能够实现在模块化嵌入式软件架构运行中时支持不同模块的加载和卸载。
类型。
为库函数时,可以通过模块接口与该模块依赖的模块进行通信,以获取需要处理的功能任
务;当所述模块类型为线程时,通过进程间通讯方式(核心模块服务层封装的进程间通信接
口)与所述同类型的其它模块进行通信,能够基于发布/订阅的机制实现解耦合。
述定制方法可以包括:
原子任务集合,结合原子任务集合获得对应的能力需求集合,结合能力需求集合解析得到
对应的模块化嵌入式软件架构的不同软件功能的功能模块集合,进而得到选择的所需完成
的系统任务信息。
作系统、硬件信息和应用功能模块层的不同模块的资源配置信息。
具链编译为符合特定嵌入式设备的模块目标代码文件。
被依赖的功能模块为1个时,将该功能模块的类型设置为提供接口的库函数;然后根据各功
能模块的资源配置信息生成启动运行所述模块化嵌入式软件架构的各功能模块的启动资
源配置文件。
系统和所述应用功能模块层的不同模块的资源配置信息;根据所述不同模块的资源配置信
息生成所述模块化嵌入式软件架构运行的核心可执行文件、模块目标代码文件和启动资源
配置文件;将所述模块目标代码文件和启动资源配置文件传送到所述模块化嵌入式软件架
构,能够方便用户定制嵌入式软件架构,实现支持多种功能模块的运行方式,以及方便用户
根据嵌入式设备的功能模块运行方式的特点选择不同的功能模块实现方式以得到更适合
的软件实现。
备。
符合任务功能需求的嵌入式模块化应用功能软件模块以及对应的模块资源配置文件。模块
化嵌入式软件定制系统管理多种信息,包括已有的功能模块实现代码、创建的历史任务信
息、现有能够提供的能力、多种嵌入式操作系统的平台屏蔽信息、不同平台支持的交叉编译
工具等。
任务信息以及平台信息(例如运行于嵌入式设备的模块化嵌入式软件架构的所需完成的操
作系统和硬件信息)。
系设计层次化分解机制,能力可以为对应于各功能模块的集合,独立于模块化嵌入式软件
架构的各功能模块的概念,系统任务的需求对应能力集合。
获得满足系统任务执行时所需的所述应用功能模块的软件功能模块需求。
应的功能模块集合,分析功能模块集合特点,生成编译配置文件以及模块启动资源配置文
件。
效率。
一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。