一种数据驱动的分级可配置的系统模块组织方法技术方案

技术编号:24352512 阅读:25 留言:0更新日期:2020-06-03 01:53
本发明专利技术公开了一种数据驱动的分级可配置的系统模块组织方法,各个模块的所有实现文件,包括头文件、源文件、依赖关系描述、配置接口和编译规则等,均包含在每个模块自身所在文件中;各个模块的头文件划分为提供给用户的公共头文件、模块之间共享的内部头文件和模块内部使用的私有头文件3类,用以明确使用方式;各个模块划分成不同的初始化级别,从而在操作系统在初始化时,根据初始化级别从前到后的顺序调用每个模块的初始化函数,解析配置文本中的配置参数,对设备进行初始化。本发明专利技术方法对比现有技术,能够简化模块开发和配置,减少模块依赖关系框架开支,具有规范模块接口,降低模块开发工作量,提升模块适用性的效果。

A data driven hierarchical configurable system module organization method

【技术实现步骤摘要】
一种数据驱动的分级可配置的系统模块组织方法
本专利技术属于操作系统软件领域,涉及一种数据驱动的分级可配置的系统模块组织方法。
技术介绍
本专利技术提出了一种操作系统领域中新的组织结构模型,用于降低操作系统各个组成部分之间的耦合性,提高开发效率。现有操作系统的组织结构模型主要包括以下3类:1.没有模块概念,操作系统各个组成部分按照功能划分为若干个文件夹,没有独立的配置数据和规范的接口,互相之间直接使用对方的全局变量和接口函数,紧密耦合;2.具有模块概念,具有一定的接口概念,但是配置信息与模块实现捆绑定在一起,模块之间的依赖关系也不明确,无法独立开发和升级;3.具有统一的模块模型,使用自定义的配置方式或者模块初始化参数等作为配置方式,具有规范的接口,并在此基础上实现了依赖关系的自动探测和模块的顺序加载,但是模块没有以自包含的形式组织起来,各个模块之间直接引用头文件,无法从根本上解决模块之间的依赖关系。
技术实现思路
本专利技术的目的是为了克服已有技术的缺陷,解决模块的标准化和依赖关系问题,提出一种数据驱动的分级可配置的系统模块组织方法。本专利技术采用的技术方案为:一种数据驱动的分级可配置的系统模块组织方法,各个模块的所有实现文件,包括头文件、源文件、依赖关系描述、配置接口和编译规则等,均包含在每个模块自身所在文件中;各个模块的头文件划分为提供给用户的公共头文件、模块之间共享的内部头文件和模块内部使用的私有头文件3类,用以明确使用方式;配置过程中采用kconfig作为数据源。具体地,各个模块划分成不同的初始化级别,从而在操作系统在初始化时,根据初始化级别从前到后的顺序调用每个模块的初始化函数,解析配置文本中的配置参数,对设备进行初始化。具体地,各个模块的公用头文件和内部头文件只允许包含需要提供给用户和其他模块的接口。具体地,各个模块的头文件在编译时才会复制到工程目录中相应的同一目录下。本专利技术方法对比现有技术,能够简化模块开发和配置,减少模块依赖关系框架开支,具有规范模块接口,降低模块开发工作量,提升模块适用性的效果。附图说明图1为本专利技术实施方式的模块组织框架图;图2为本专利技术实施方式的模块初始化流程图。具体实施方式下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。一种数据驱动的分级可配置的系统模块组织方法,其基本实施过程如下:使用自定义的配置语言或者kconfig等作为设备数据源,不在源代码中模块的配置信息;各模块的所有实现文件,包括头文件、源文件、依赖关系描述、配置接口、编译规则等,均包含在每个模块自身所在文件中;各模块的头文件在编译时才会复制到工程目录中相应的同一目录下,以简化头文件包含;各模块的头文件划分为提供给用户的公共头文件、模块之间共享的内部头文件和模块内部使用的私有头文件3类,用以明确使用方式;各模块的公用头文件和内部头文件只允许包含需要提供给用户和其他模块的接口,不能包含其他无关信息,以提高模块的独立性,减少耦合可能;操作系统使用统一的配置文本选择各个模块以及被选择模块的配置参数;各模块划分成不同的初始化级别,从而在操作系统在初始化时,根据初始化级别从前到后的顺序调用每个模块的初始化函数,解析配置文本中的配置参数,对设备进行初始化;主要通过将模块划分成不同的初始化级别来解决模块之间的依赖关系;模块的优先级可以根据需要增删;将模块间的依赖关系通过子系统提供的通知回调注册机制转化为模块对子系统的依赖关系,作为解决模块间依赖关系的辅助手段。如图1所示为模块组织的框架图,一种数据驱动的分级可配置的系统模块组织方法,其具体步骤包括:步骤一、实现或选择模块配置数据解析功能,提供如下必须功能:1)提供模块配置功能,可以选择是否使能模块;2)提供模块参数配置功能,可以支持整形、字符串等模块的基本参数类型;3)提供模块的依赖关系描述功能,可以定义模块之间的依赖关系;4)根据模块配置文件生成包含已选择模块和已选择模块参数的可以被源代码、编译框架等使用的头文件、源文件、Makefile片段等。模块配置数据解析功能提供模块配置功能。步骤二、实现模块框架,提供如下必须功能:1.定义模块的描述结构,包含模块的描述信息,以及用于初始化模块的函数指针等;2.通过自定义数据段等方式,实现模块的静态定义功能,将模块静态添加到相应的模块列表;3.实现模块遍历并初始化功能,为指定初始化级别的每个模块执行1实现的模块描述结构中的初始化函数;如图2所示,为模块初始化流程图。4.可选的实现模块动态加载功能,使得模块按照加载顺序进行初始化;5.可选的实现模块依赖关系检查功能,使得模块接口在未初始化情况下被引用时产生编译或运行时告警;6.可选的实现模块编译框架,利用步骤一提供的模块配置数据解析功能,使得模块只有在选择时才进行编译或者链接到最终的系统映像中。模块框架用于简化模块开发,并可选的提供模块依赖关系检查功能和模块编译框架。步骤三、更新操作系统初始化流程,使用步骤二实现的模块遍历并初始化功能按照初始化顺序从前到后依次初始化相应优先级的模块。步骤四、可选的实现IO子系统、文件系统子系统等,用以将模块之间的依赖关系转换为模块对子系统的依赖,从而辅助解决依赖关系问题;步骤五、调整操作系统组织结构,划分成若干个模块,满足如下要求:1.每个模块都应当是自包含的,并包含如下文件夹:1)配置文件夹,包含使用步骤一实现的的模块配置方法描述的当前模块的配置选项和依赖关系;2)公共头文件夹,能且仅能包含当前模块提供给用户使用的公共接口;3)内部头文件夹,能且仅能包含当前模块共享给其他模块之间共的内部接口;4)源文件夹,包含当前模块的实现文件和当前模块内部使用的头文件;5)编译规则,用于定义当前模块的编译方式;6)当前模块的其他内容。2.根据需要定义每个模块的初始化级别,并使用步骤二实现的模块的静态定义功能对模块进行定义。自此,就实现了数据驱动的分级可配置的系统模块组织方法。本文档来自技高网...

【技术保护点】
1.一种数据驱动的分级可配置的系统模块组织方法,其特征在于,各个模块的所有实现文件,包括头文件、源文件、依赖关系描述、配置接口和编译规则等,均包含在每个模块自身所在文件中;各个模块的头文件划分为提供给用户的公共头文件、模块之间共享的内部头文件和模块内部使用的私有头文件3类,用以明确使用方式;配置过程中采用kconfig作为数据源。/n

【技术特征摘要】
1.一种数据驱动的分级可配置的系统模块组织方法,其特征在于,各个模块的所有实现文件,包括头文件、源文件、依赖关系描述、配置接口和编译规则等,均包含在每个模块自身所在文件中;各个模块的头文件划分为提供给用户的公共头文件、模块之间共享的内部头文件和模块内部使用的私有头文件3类,用以明确使用方式;配置过程中采用kconfig作为数据源。


2.根据权利要求1所述的系统模块组织方法,其特征在于,各个模块划分成不同...

【专利技术属性】
技术研发人员:李占国
申请(专利权)人:湖南智领通信科技有限公司
类型:发明
国别省市:湖南;43

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

1