CN117539443A - 一种针对国产物联网实时操作系统的统一裁剪方法及系统 - Google Patents
一种针对国产物联网实时操作系统的统一裁剪方法及系统 Download PDFInfo
- Publication number
- CN117539443A CN117539443A CN202311399674.9A CN202311399674A CN117539443A CN 117539443 A CN117539443 A CN 117539443A CN 202311399674 A CN202311399674 A CN 202311399674A CN 117539443 A CN117539443 A CN 117539443A
- Authority
- CN
- China
- Prior art keywords
- kernel
- module
- header file
- real
- template
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000006855 networking Effects 0.000 title claims abstract description 15
- 230000001419 dependent effect Effects 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 claims description 63
- 238000011161 development Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 abstract description 2
- 230000018109 developmental process Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种针对国产物联网实时操作系统的统一裁剪方法,包括:根据内核模块之间的依赖关系,修改依赖的内核模块状态;根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;根据模板解析模块解析头文件模板并按照头文件模板生成头文件。本发明提供开发式的裁剪模型,物联网实时操作系统开发人员可以自定义物联网实时操作系统可裁剪模型,统一的裁剪模型可以满足不同物联网实时操作系统的裁剪需求,解析引擎通过模型与宏的映射关系;在UI裁剪工具中可以同时对国产物联网实时操作系统进行裁剪,生成其所需的头文件。
Description
技术领域
本发明属于国产物联网实时操作系统技术领域,具体涉及一种针对国产物联网实时操作系统的统一裁剪方法及系统。
背景技术
物联网设备硬件环境则是千差万别的,而物联网实时操作系统面向单一设备的单一应用,操作系统中的许多部件因此可以裁剪掉,以便节省内存,在降低成本的同时提高可靠性。因此,嵌入式系统必须具有很强的可裁剪性,并且便于修改。目前国内主流的物联网实时操作系统的配套集成开发工具都提供了图形化的配置工具来进行,但是目前大部分物联网实时操作系统开发环境中的配置功能都只能支持一种物联网实时操作系统,不能够同时支持多个物联网实时操作系统,同时不同的操作系统产品的工程结构中都有不同的入口头文件,这就造成了嵌入式应用软件开发者在使用不同的物联网实时操作系统时需要分别使用不同的嵌入式软件集成开发环境进行操作系统的裁剪,无疑增大了用户使用难度,并且非常不便捷。
文献“基于XML的嵌入式操作系统配置工具的设计与实现,电子科技大学,2006-0”提出了基于XML的可扩展的物联网实时操作系统配置工具的设计思想和配置模型。该配置工具通过使用XML Schema和XML将配置内容与配置界面代码分离开来,使配置工具具有灵活的可扩展性。该文献没有针对国产物联网实时操作系统的特点进行裁剪模型的定义,只是论述了一个宽泛的通用性配置模型。而本发明针对国产物联网实时操作系统的特点,如内核裁剪、功能组件裁剪、配置代码与核心代码配合等,专门设计定制了一组兼容主流物联网实时操作系统的裁剪模型。该文献的配置模型采用XML保存数据,但是以xml格式储存的数据有其局限性,首先要比以其他数据库格式储存占有的空间要大的多,因为它除了要保存原始数据外还需要保存元数据进行描述,此外XML+XSLT的成本和复杂性较高,缺乏所见即所得能力,增加了模型开发者的开发难度。而本发明的配置模型采用Kconfig语言,Kconfig语言定义了一套完整的规则来表述配置项及配置项间的关系其特点是:专门用于操作系统内核配置,内置了针对操作系统类型软件的配置选项的集合,特别适合操作系统内核、功能组件的配置裁剪描述,大大简化模型开发者的开发难度。
专利文献CN115525359A(申请号:CN202211101673.7)公开了一种针对国产嵌入式操作系统的统一配置系统和方法,提出了一种基于模板引擎的物联网实时操作系统配置模型,详细说明了模板引擎在操作系统配置中的应用,从操作系统配置模块、模板引擎、代码模板等方面进行了论述。该文献有最大的问题代码生成的问题,通过模板配置定义操作系统模板,通过代码生成模块生成对应代码生成器通过对模板数据格式转换生成C/C++代码等,在功能裁剪部分应用,太复杂,对操作系统本身的代码侵入性强,带来大量的调试工作。本发明通过模板解析仅生成包含对应系统预定义宏的工程头文件,而无需生成C/C++代码,代码侵入性弱。
发明内容
本专利提出一种针对国产物联网实时操作系统的统一裁剪方法及系统,以期解决背景技术中存在的技术问题。
为了实现上述目的,本发明采用以下技术方案:
一种针对国产物联网实时操作系统的统一裁剪方法,包括:
根据内核模块之间的依赖关系,修改依赖的内核模块状态;
根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;
根据模板解析模块解析头文件模板并按照头文件模板生成头文件。
在一些实施例中,所述根据内核模块之间的依赖关系,修改依赖的内核模块状态包括:构建内核裁剪模板,设置操作系统内核资源所提供功能的打开/关闭状态,功能参数定义,并在设置过程中根据内核模块之间的依赖关系修改依赖的内核模块状态;当一个内核处于打开状态时,其依赖的内核模块资源会在应用开发时被自动调用。
在一些实施例中,所述根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;包括:构建功能裁剪模板,设置操作系统功能组件资源所提供功能的打开/关闭状态,并在设置过程中根据功能组件之间的依赖关系,功能组件与内核模块之间的依赖关系,修改依赖的模块状态,当一个功能组件处于打开状态时,其依赖的功能组件、内核模块资源会在应用开发时被自动调用。
在一些实施例中,所述根据模板解析模块解析头文件模板并按照头文件模板生成头文件;包括:所述头文件模板是完全开放的可编辑文本,准备好的数据传递给头文件模板后,由模板解析模块处理并按头文件模板的模板格式生成对应物联网实时操作系统的工程头文件。
在一些实施例中,所述内核资源包括操作系统内核模块的源码、库、头文件在内的开发阶段需要的资源,通过内核资源选配功能,内核模型建立与内核资源的绑定关系。
在一些实施例中,所述功能组件资源包括操作系统内核以外的功能组件模块的源码、库、头文件在内的开发阶段需要的资源,通过功能组件资源选配功能,功能组件模型建立与功能组件资源的绑定关系。针对国产物联网实时操作系统的统一裁剪系统
在一些实施例中,所述依赖关系定义是对内核模块与之间、组件与内核之间的相互依赖关系进行定义,包括依赖和反向依赖通过对依赖关系的管理,对操作系统内核模块、功能组件进行基于依赖关系的配置。
在一些实施例中,所述功能参数定义是对内核模块、功能组件模块配置定义整型、浮点型、布尔型、枚举型、字符串型针对国产物联网实时操作系统的统一裁剪系统参数,以及相应的取值范围、默认值,参数的赋值工作通过在头文件生成阶段进行,根据参数定义在头文件中生成对应的宏定义。
本实施例还提供了一种针对国产物联网实时操作系统的统一裁剪系统,包括:
内核裁剪配置模块,用于根据内核模块之间的依赖关系,修改依赖的内核模块状态;
功能组件裁剪配置模块,用于根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;
头文件生成模块,包括模板解析模块、头文件模板,所述模板解析模块用于解析头文件模板并按照头文件模板生成头文件。
本发明与现有技术相比具有的有益效果是:
本发明提供开发式的裁剪模型,物联网实时操作系统开发人员可以自定义物联网实时操作系统可裁剪模型,统一的裁剪模型可以满足不同物联网实时操作系统的裁剪需求,解析引擎通过模型与宏的映射关系;在UI裁剪工具中可以同时对国产物联网实时操作系统进行裁剪,生成其所需的头文件。
附图说明
图1为本发明系统结构示意图;
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请的优选实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的部件或具有相同或类似功能的部件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图对本申请的实施例进行详细说明。
实施例1:
如图1所示,一种针对国产物联网实时操作系统的统一裁剪系统,包括:
内核裁剪配置模块,用于根据内核模块之间的依赖关系,修改依赖的内核模块状态;内核裁剪配置模块配置的对象是内核裁剪模型,是按照操作系统内核模块定义、操作系统模块参数定义创建的Kconfig格式文件。支持对物联网实时操作系统内核的裁剪配置,包括内核资源所提供功能的打开/关闭状态、依赖关系定义。
内核资源包括内核模块、运行库、头文件等内核开发阶段需要的资源,通过功能的打开/关闭,内核裁剪模型建立与内核资源的绑定关系。
依赖关系定义功能是对内核模块之间的相互依赖关系进行定义,通过对内核模块之间依赖关系的管理,可以对物联网实时操作系统内核模块进行基于依赖关系的配置,其中包括依赖和反向依赖,依赖为A depends on B,意味着B模块是否被呈现给裁剪依赖于A模块是否被选中,反向依赖为A select B,意味着一旦A模块被选中,B模块自动会被选中。
功能组件裁剪配置模块,用于根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;功能组件裁剪配置模块配置的对象是内核以外的功能组件裁剪模型,是按照功能组件的模块定义、操作系统模块参数定义创建的Kconfig格式文件。
支持对物联网实时操作系统功能组件的裁剪配置,包括功能组件资源所提供功能的打开/关闭状态、功能参数定义、依赖关系定义。功能资源包括内核模块、运行库、头文件等功能组件开发阶段需要的资源,通过功能的打开/关闭,功能组件裁剪模型建立与功能组件资源的绑定关系。
依赖关系定义功能是对功能模块之间、功能模块与内核之间的相互依赖关系进行定义,通过对依赖关系的管理,可以对物联网实时操作系统功能组件模块、功能组件模块与内核模块之间进行基于依赖关系的配置。
头文件生成模块,包括模板解析模块、头文件模板,所述模板解析模块用于解析头文件模板并按照头文件模板生成头文件。头文件解析模块由包括头文件生成模块、头文件模板、Kconfiglib解析辅助库,所述Kconfiglib解析辅助库用于解析头文件模板并按照头文件模板生成头文件,头文件模板是完全开放的可编辑文本,采用C语言标准的预定义语法,准备好的数据传递给头文件模板之后,由Kconfiglib解析辅助库处理并按头文件模板模板格式生成对应物联网实时操作系统的工程头文件。头文件生成流程图如图1。
为了实现以上头文件解析模块,需要实现头文件模板通过Kconfiglib解析辅助库实现对内核裁剪模型、功能组件模型的数据访问。采用Kconfiglib实现,C语言的预定义语法作为头文件模板的实现。Kconfiglib是Python 2/3中的Kconfig实现。包括终端和GUI菜单配置界面和Kconfig扩展,完全开源。通过上述头文件生成技术,不同物联网实时操作系统的实现可以不需要进行改动,只需要在基于操作系统开发物联网嵌入式应用的工程中对应的操作系统中通过配置,并生成对应的统一入口头文件就可以完成对操作系统的裁剪。
本实施例还提供了一种针对国产物联网实时操作系统的统一裁剪方法,包括:
根据内核模块之间的依赖关系,修改依赖的内核模块状态;构建内核裁剪模板,设置操作系统内核资源所提供功能的打开/关闭状态,功能参数定义,并在设置过程中根据内核模块之间的依赖关系修改依赖的内核模块状态;当一个内核处于打开状态时,其依赖的内核模块资源会在应用开发时被自动调用。
根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;构建功能裁剪模板,设置操作系统功能组件资源所提供功能的打开/关闭状态,并在设置过程中根据功能组件之间的依赖关系,功能组件与内核模块之间的依赖关系,修改依赖的模块状态,当一个功能组件处于打开状态时,其依赖的功能组件、内核模块资源会在应用开发时被自动调用。
根据模板解析模块解析头文件模板并按照头文件模板生成头文件。所述根据模板解析模块解析头文件模板并按照头文件模板生成头文件;包括:所述头文件模板是完全开放的可编辑文本,准备好的数据传递给头文件模板后,由模板解析模块处理并按头文件模板的模板格式生成对应物联网实时操作系统的工程头文件。
在一些实施例中,所述内核资源包括操作系统内核模块的源码、库、头文件在内的开发阶段需要的资源,通过内核资源选配功能,内核模型建立与内核资源的绑定关系。
所述功能组件资源包括操作系统内核以外的功能组件模块的源码、库、头文件在内的开发阶段需要的资源,通过功能组件资源选配功能,功能组件模型建立与功能组件资源的绑定关系;
所述依赖关系定义是对内核模块与之间、组件与内核之间的相互依赖关系进行定义,包括依赖和反向依赖通过对依赖关系的管理,对操作系统内核模块、功能组件进行基于依赖关系的配置;
所述参数定义功能支持对内核模块、功能组件模块配置定义整型、浮点型、布尔型、枚举型、字符串型参数,以及相应的取值范围、默认值,参数的赋值工作通过在头文件生成阶段进行,根据参数定义在头文件中生成对应的宏定义。
物联网实时操作系统开发者根据物联网实时操作系统内核、功能组件代码的实现方式定义可裁剪配置功能的宏,给工程配置一个统一的入口头文件,用户根据应用开发需要定制自己内核裁剪模板、功能组件裁剪模板;
在系统配置完成后,模板解析功能根据裁剪模型中打开的服务和功能将头文件模板中需要的模型数据传递给头文件模板,从而生成头文件。
采用Kconfiglib解析辅助库实现模板解析,配置模型的实现语言是Kconfig,在Kconfig语言中以起提供的语法结构来描述裁剪配置数据,配置模型中的数据可直接作为模板解析的的外部数据,从而实现通过模板解析模块对配置模型的数据访问。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,包括:
根据内核模块之间的依赖关系,修改依赖的内核模块状态;
根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;
根据模板解析模块解析头文件模板并按照头文件模板生成头文件。
2.根据权利要求1所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述根据内核模块之间的依赖关系,修改依赖的内核模块状态包括:构建内核裁剪模板,设置操作系统内核资源所提供功能的打开/关闭状态,功能参数定义,并在设置过程中根据内核模块之间的依赖关系修改依赖的内核模块状态;当一个内核处于打开状态时,其依赖的内核模块资源会在应用开发时被自动调用。
3.根据权利要求1所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;包括:构建功能裁剪模板,设置操作系统功能组件资源所提供功能的打开/关闭状态,并在设置过程中根据功能组件之间的依赖关系,功能组件与内核模块之间的依赖关系,修改依赖的模块状态,当一个功能组件处于打开状态时,其依赖的功能组件、内核模块资源会在应用开发时被自动调用。
4.根据权利要求1所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述根据模板解析模块解析头文件模板并按照头文件模板生成头文件;包括:所述头文件模板是完全开放的可编辑文本,准备好的数据传递给头文件模板后,由模板解析模块处理并按头文件模板的模板格式生成对应物联网实时操作系统的工程头文件。
5.根据权利要求2所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述内核资源包括操作系统内核模块的源码、库、头文件在内的开发阶段需要的资源,通过内核资源选配功能,内核模型建立与内核资源的绑定关系。
6.根据权利要求3所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述功能组件资源包括操作系统内核以外的功能组件模块的源码、库、头文件在内的开发阶段需要的资源,通过功能组件资源选配功能,功能组件模型建立与功能组件资源的绑定关系。针对国产物联网实时操作系统的统一裁剪系统。
7.根据权利要求1所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述依赖关系定义是对内核模块与之间、组件与内核之间的相互依赖关系进行定义,包括依赖和反向依赖通过对依赖关系的管理,对操作系统内核模块、功能组件进行基于依赖关系的配置。
8.根据权利要求1所述的一种针对国产物联网实时操作系统的统一裁剪方法,其特征在于,所述功能参数定义是对内核模块、功能组件模块配置定义整型、浮点型、布尔型、枚举型、字符串型针对国产物联网实时操作系统的统一裁剪系统参数,以及相应的取值范围、默认值,参数的赋值工作通过在头文件生成阶段进行,根据参数定义在头文件中生成对应的宏定义。
9.一种针对国产物联网实时操作系统的统一裁剪系统,其特征在于,包括:
内核裁剪配置模块,用于根据内核模块之间的依赖关系,修改依赖的内核模块状态;
功能组件裁剪配置模块,用于根据功能组件之间的依赖关系、功能组件与内核模块之间的依赖关系,修改依赖的模块状态;
头文件生成模块,包括模板解析模块、头文件模板,所述模板解析模块用于解析头文件模板并按照头文件模板生成头文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311399674.9A CN117539443A (zh) | 2023-10-26 | 2023-10-26 | 一种针对国产物联网实时操作系统的统一裁剪方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311399674.9A CN117539443A (zh) | 2023-10-26 | 2023-10-26 | 一种针对国产物联网实时操作系统的统一裁剪方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117539443A true CN117539443A (zh) | 2024-02-09 |
Family
ID=89790853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311399674.9A Pending CN117539443A (zh) | 2023-10-26 | 2023-10-26 | 一种针对国产物联网实时操作系统的统一裁剪方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539443A (zh) |
-
2023
- 2023-10-26 CN CN202311399674.9A patent/CN117539443A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7197739B2 (en) | Apparatus for automatically generating source code | |
CN111459889B (zh) | 一种用于物联网平台的设备数据模型生成方法和装置 | |
CN106648662B (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
CN110149800A (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
WO2008124420A1 (en) | A mechanism to improve a user's interaction with a computer system | |
US8464213B1 (en) | Customized control building | |
US20030140332A1 (en) | Method and apparatus for generating a software development tool | |
CN110007926B (zh) | 语言转换方法及装置 | |
CN114371850A (zh) | 项目构建编译和代码开发的管理方法 | |
US7788246B2 (en) | Linguistic structure for data flow diagrams | |
US7992111B1 (en) | Conversion of a high-level graphical circuit design block to a high-level language program | |
CN117234529A (zh) | 一种基于dsl解析资源生成api的方法 | |
CN117539443A (zh) | 一种针对国产物联网实时操作系统的统一裁剪方法及系统 | |
CN110110299A (zh) | 文本变换方法、装置以及服务器 | |
Hearnden et al. | Anti-Yacc: MOF-to-text | |
KR100878044B1 (ko) | 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환방법 및 장치 | |
CN111221532A (zh) | 一种动态链接库的生成方法及装置 | |
Dai et al. | Automatic test data generation for TTCN-3 using CTE | |
Selonen et al. | Scenario-Based Syntesis of Annotated Class Diagrams in UML | |
Kelényi et al. | Supporting energy-efficient mobile application development with model-driven code generation | |
CN117950659A (zh) | 一种适用于低代码产品的表达式语言设计方法 | |
CN117891450A (zh) | 一种低代码场景代码生成方法 | |
CN117055872A (zh) | 一种从遗留系统代码提取高级uml模型的方法、系统和装置 | |
Grieshofer | Cloud Foundry Config File Generation Using JetBrains MPS and DSLs | |
Shaban et al. | General Trans-Compiler based Mobile Applications Converter |
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 |