掌桥专利:专业的专利平台
掌桥专利
首页

一种嵌入式操作系统的搭建方法、装置、设备和介质

文献发布时间:2023-06-19 16:08:01



技术领域

本申请涉及计算机领域,特别是涉及一种嵌入式操作系统的搭建方法、装置、设备和介质。

背景技术

嵌入式操作系统是一种用于嵌入式设备,如智能灯具,空调,冰箱等资源受限设备的操作系统。与用于手机,PC使用的操作系统不同,嵌入式操作系统运行的系统环境比较复杂,可使用的资源也有大有小,例如,嵌入式操作系统可以在几十K内存的蓝牙低功耗设备中运行,也可以在几十M内存、可以运行wifi能够联通网络的网络设备中运行,因为系统环境的复杂,意味着嵌入式操作系统很难标准化,在构建操作系统的时候会碰到各种各样的问题。

目前,搭建嵌入式操作系统通常有三个主要步骤,第一步为搭建编译环境,目前搭建编译环境需要安装各种软件,由于搭建环境差异较大,很多时候会碰到软件版本冲突等问题,不得不花费大量时间调试解决问题,耗时且效率低下;第二步为下载相关的代码(即软件模块),目前通常只能从一个软件仓库将所有源代码下载,源代码中既包含本项目需要的软件,也包含一些不需要的软件,开发人员通常需要花费几天的时间确定哪些模块需要,哪些模块不需要,同样需要耗费开发人员大量的时间;第三步是根据系统的需求,需要在某个文件中通过宏或者其他方式对功能进行裁剪配置,各个软件模块通常在不同的头文件中进行配置,甚至单个软件模块在不同的地方多次配置,可配置文件不在同一个配置头文件中,容易遗漏相关配置,造成混乱,影响开发效率。

综上,由于搭建环境差异大、配置复杂等,导致现有的嵌入式操作系统的搭建方法存在搭建困难且开发效率低下的缺点,亟待解决。

发明内容

有鉴于此,本申请提供了一种嵌入式操作系统的搭建方法、装置、设备和介质,以解决现有技术存在的搭建困难且开发效率低下的问题,其技术方案如下:

一种嵌入式操作系统的搭建方法,包括:

搭建目标环境;

获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息,其中,第一积木组件为目标积木组件中的根积木组件,目标积木组件包含的每个积木组件对应的脚本文件中均包括积木依赖信息和积木配置信息,积木依赖信息用于描述对应积木组件与其他积木组件之间的依赖关系,积木配置信息用于描述组成对应积木组件的若干功能模块是否为搭建嵌入式操作系统所需的设定功能模块,目标参数信息至少包括设定功能模块的标识信息;

至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中;

至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,其中,第二积木组件为目标积木组件中除第一积木组件外的其他积木组件;

根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。

可选的,在嵌入式设备上搭建目标环境,包括:

使用虚拟环境技术和目标沙箱软件搭建目标环境,或者,创建docker虚拟映像。

可选的,获取嵌入式操作系统配套的目标参数信息,包括:

对预设的初始参数信息进行改写,得到嵌入式操作系统配套的目标参数信息,或者,编写嵌入式操作系统配套的目标参数信息。

可选的,任一积木组件的脚本信息中还包括该积木组件的版本信息;

至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中,包括:

根据第一积木组件的标识信息和预设的仓库信息,确定第一积木组件所在的软件子仓库,作为第一软件子仓库,其中,仓库信息中包括积木组件的标识信息与软件子仓库的标识信息的对应关系,第一软件子仓库中包括若干个版本下的第一积木组件和若干个版本下的第一积木组件分别对应的脚本文件;

若目标参数信息中不包括第一版本信息,则从第一软件子仓库中将最新版本下的第一积木组件和最新版本下的第一积木组件对应的脚本文件下载到目标环境中,其中,第一版本信息为需要下载的第一积木组件的版本信息;

若目标仓库信息中包括第一版本信息,则从第一软件子仓库中将第一版本信息下的第一积木组件和第一版本信息下的第一积木组件对应的脚本文件下载到目标环境中。

可选的,至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,包括:

若目标参数信息中不包括第二版本信息,则根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将最新版本下的第二积木组件和最新版本下的第二积木组件对应的脚本文件下载到目标环境中,其中,第二版本信息为需要下载的第二积木组件的版本信息;

若目标参数信息中包括第二版本信息,则根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中。

可选的,根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中,包括:

根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,确定第二软件子仓库的标识信息,其中,第二软件子仓库是指第二积木组件所在的软件子仓库;

根据第一积木组件对应的脚本文件中的积木依赖信息、第二版本信息和第二软件子仓库的标识信息,构建针对嵌入式操作系统的依赖树,其中,依赖树的每个节点对应目标积木组件中的一个积木组件,第一积木组件对应的节点中包括第一版本信息和第一软件子仓库的标识信息,第二积木组件对应的节点中包括第二版本信息和第二软件子仓库的标识信息;

根据依赖树,从第二软件子仓库的标识信息指示的第二软件子仓库中将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中。

可选的,根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,包括:

根据目标积木组件对应的脚本文件中的积木配置信息和目标参数信息中设定功能模块的标识信息,得到目标配置文件;

根据目标配置文件,对下载的目标积木组件进行裁剪,得到裁剪的目标积木组件;

根据目标配置文件,生成目标编译文件,其中,目标编译文件用于指示如何对裁剪的目标积木组件进行编译;

根据目标编译文件,对裁剪的目标积木组件进行编译,得到编译后的可执行文件。

可选的,根据目标积木组件对应的脚本文件中的积木配置信息和目标参数信息中设定功能模块的标识信息,得到目标配置文件,包括:

按照目标参数信息中设定功能模块的标识信息对目标积木组件对应的脚本文件中的积木配置信息进行修改,由修改后的积木配置信息得到目标配置文件。

可选的,根据目标配置文件,对下载的目标积木组件进行裁剪,得到裁剪的目标积木组件,包括:

根据目标配置文件,将下载的目标积木组件中除设定功能模块外的其他功能模块裁掉,以得到裁剪的目标积木组件。

可选的,目标积木组件对应的脚本文件中还包括积木后处理信息;

在根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件之后,还包括:

根据积木后处理信息,对编译后的可执行文件进行后处理,后处理后的可执行文件作为搭建的嵌入式操作系统。

可选的,根据积木后处理信息,对编译后的可执行文件进行后处理,包括:

若积木后处理信息中包括加密处理,则从外部指定位置获取加密命令,并基于加密命令对编译后的可执行文件进行加密处理;

和/或,

若积木后处理信息中包括添加包头处理,则从外部指定位置获取包头添加命令,并基于包头添加命令为编译后的可执行文件添加包头信息;

和/或,

若积木后处理信息中包括功能打印处理,则从外部指定位置获取功能打印命令,并基于功能打印命令对编译后的可执行文件对应的功能列表信息进行打印输出。

一种嵌入式操作系统的搭建装置,包括:目标环境搭建模块、信息获取模块、第一下载模块、第二下载模块和编译模块;

目标环境搭建模块,用于搭建目标环境;

信息获取模块,用于获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息,其中,第一积木组件为目标积木组件中的根积木组件,目标积木组件包含的每个积木组件对应的脚本文件中均包括积木依赖信息和积木配置信息,积木依赖信息用于描述对应积木组件与其他积木组件之间的依赖关系,积木配置信息用于描述组成对应积木组件的若干功能模块是否为搭建嵌入式操作系统所需的设定功能模块,目标参数信息至少包括设定功能模块的标识信息;

第一下载模块,用于至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中;

第二下载模块,用于至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,其中,第二积木组件为目标积木组件中除第一积木组件外的其他积木组件;

编译模块,用于根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。

一种嵌入式操作系统的搭建设备,包括存储器和处理器;

存储器,用于存储程序;

处理器,用于执行程序,实现如上述任一项的嵌入式操作系统的搭建方法的各个步骤。

一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如上述任一项的嵌入式操作系统的搭建方法的各个步骤。

经由上述的技术方案可知,本申请提供的嵌入式操作系统的搭建方法,首先搭建目标环境,然后获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息,接着至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中,之后至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,最后根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。由此可见,本申请采用搭建目标环境的方式,屏蔽了嵌入式操作系统编译构建所要运行的操作系统及平台软件的差异,使得本申请能够一站式搭建编译环境,并且本申请将现有的软件模块以积木组件的方式进行维护,在搭建嵌入式操作系统时,仅按需下载嵌入式操作系统相关的目标积木组件即可,无需下载所有积木组件,节省了下载时间,并且开发人员无需关心下载的积木组件中,哪些积木组件需要,哪些积木组件不需要,节省了开发人员的时间,此外,本申请仅需一次性配置好嵌入式操作系统配套的目标参数信息,便可一站式搭建好嵌入式操作系统,搭建过程比较简单,且提高了嵌入式操作系统的搭建效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的嵌入式操作系统的搭建方法的流程示意图;

图2a为现有技术提供的嵌入式操作系统架构的示意图;

图2b为本申请搭建的嵌入式操作系统的架构的示意图;

图3为本申请实施例提供的嵌入式操作系统的搭建装置的结构示意图;

图4为本申请实施例提供的嵌入式操作系统的搭建设备的硬件结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

鉴于现有技术存在的问题,本案发明人进行了深入研究,最终提出了一种嵌入式操作系统的搭建方法,接下来通过下述实施例对本申请提供的嵌入式操作系统的搭建方法进行详细介绍。

请参阅图1,示出了本申请实施例提供的嵌入式操作系统的搭建方法的流程示意图,该嵌入式操作系统的搭建方法可以包括:

步骤S101、搭建目标环境。

考虑到构建嵌入式操作系统时桌面操作系统的不同、编译软件版本的不同、功能软件的不同等,均会导致在搭建编译环境时耗费大量时间,为此,本步骤可以搭建目标环境,从而可以以最小的空间屏蔽操作系统(例如,Windows系统、Linux系统等)的差异。

值得注意的是,与现有技术不同,本申请是基于目标环境搭建嵌入式操作系统,因此,搭建嵌入式操作系统的过程中使用的工具软件(比如构建工具和构建软件,这里,构建软件例如可以为CMake或Make软件)也需要预安装到目标环境中,也就是说,搭建嵌入式操作系统的过程中使用的工具软件需要在目标环境中运行。

另外需要说明的是,本步骤的具体实现方式可以有多种,本申请提供但不限于以下两种实现方式。

第一种:创建docker虚拟映像,相应的,在映像中预装所有工具软件。

该第一种方式需要建立操作系统映像,占用磁盘空间更大,基于此,优选地,本步骤可以选用下述第二种实现方式。

第二种:使用虚拟环境技术和目标沙箱软件搭建目标环境。

可选的,这里的虚拟环境技术具体可以为Python的虚拟环境技术,目标沙箱软件可以为miniconda软件或者其他python沙箱软件,也就是说,本步骤可以使用Python的虚拟环境技术,并使用miniconda软件或者其他python沙箱软件来搭建目标环境。

可选的,本实施例搭建的目标环境可以在系统构建时本地运行,也可以从软件仓库下载运行。

综上,本步骤采用虚拟化、指定软件预安装技术,屏蔽操作系统差异,屏蔽平台软件差异,预先将所有需要的工具软件都安装好,省去开发人员选择、安装软件的耗时,使开发人员一站式搭建编译环境。

步骤S102、获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息。

其中,第一积木组件为目标积木组件中的根积木组件,目标积木组件包含的每个积木组件对应的脚本文件中均包括积木依赖信息和积木配置信息,积木依赖信息用于描述对应积木组件与其他积木组件之间的依赖关系,积木配置信息用于描述组成对应积木组件的若干功能模块是否为搭建嵌入式操作系统所需的设定功能模块,目标参数信息至少包括设定功能模块的标识信息。

首先对“积木组件”进行介绍,以便本领域技术人员更加理解本实施例提供的“积木组件”。

参见图2a所示,现有技术中(积木组件化改造前),整个嵌入式操作系统是一个统一的整体,在整体内部区分不同软件模块;本实施例可以预先将现存的软件模块做组件积木化处理,得到各软件模块分别对应的积木组件,则本步骤搭建嵌入式操作系统时,可以将积木组件作为嵌入式操作系统的基本单元,基于此,搭建的嵌入式操作系统的架构示意图可以参见图2b所示。

可选的,本实施例可通过高级语言(例如Python)编写用于对软件模块进行组件积木化处理的积木组件改造工具,然后再基于编写的积木组件改造工具将现存的每个软件模块均处理为积木组件。

需要说明的是,现有技术中,每个软件模块均由若干功能模块组成,相应的,本申请对软件模块进行组件积木化处理后,每个积木组件均由功能模块组成,例如,积木组件A由功能模块1~5组成,积木组件B由功能模块6~7组成,积木组件C由功能模块8~10组成,积木组件D由功能模块11组成,等等。

在本实施例中,将现有技术中的各软件模块均改造为积木组件后,还可以为每个积木组件编写相应的脚本文件,以通过该脚本文件描述嵌入式操作系统搭建过程需要依据的积木组件的相关信息。

在一可选实施例中,任一积木组件对应的脚本文件中至少包括积木依赖信息和积木配置信息。

其中,一积木组件对应的脚本文件中的积木依赖信息用于描述该积木组件与其他积木组件之间的依赖关系,例如,第一积木组件对应的脚本文件中包含第一积木组件与下层积木组件(即第二层积木组件)的依赖关系。

可选的,该依赖关系可以用依赖表进行描述,也就是说,依赖表代表了该积木组件与其他积木组件的上下层依赖关系;由于上层积木组件会调用下层积木组件提供的接口,则可选的,积木依赖信息具体可以包括接口依赖信息。

一积木组件对应的脚本文件中的积木配置信息用于描述组成该积木组件的若干功能模块是否为搭建嵌入式操作系统所需的设定功能模块(搭建嵌入式操作系统时,可能会用到某个积木组件的部分或全部功能模块,本实施例将搭建嵌入式操作系统时用到的功能模块定义为设定功能模块)。

可选的,本实施例可以用Y和N表示每个功能模块是否为设定功能模块,其中,若一功能模块配置为Y,表示该功能模块为设定功能模块,若配置为N,表示该功能模块不为设定功能模块,初始情况下可以均配置为Y或N。

例如,一积木组件(日志组件)的积木配置信息为:

Feature_config:

LOG_SUPPORT_ASYNC N(这里的N也可以为Y)

LOG_SUPPORT_FS N(这里的N也可以为Y)

LOG_SUPPORT_CLOUD N(这里的N也可以为Y)

这里,“LOG_SUPPORT_ASYNC”、“LOG_SUPPORT_FS”和“LOG_SUPPORT_CLOUD”为组成日志组件的三个功能模块,其中,“LOG_SUPPORT_ASYNC”代表异步日志功能,如果为Y表示搭建的嵌入式操作系统支持异步日志,如果为N表示不支持;“LOG_SUPPORT_FS”代表日志存储到文件系统功能,如果为Y表示搭建的嵌入式操作系统支持日志存贮到文件系统,如果为N表示不支持;“LOG_SUPPORT_CLOUD”代表日志传送到云服务前端功能,如果为Y表示搭建的嵌入式操作系统支持日志传送到云服务前端,如果为N表示不支持。

需要说明的是,上述Y和N仅为示例,除此之外,还可以采用其他标识,本申请对此不进行限定。

可选的,脚本文件可以使用YAML、JSON、XML等脚本语言实现,易于开发人员读写,易于使用高级语言进行处理。优选的情况下,可以使用YAML脚本语言实现上述脚本文件。

可以理解的是,可能存在某些嵌入式操作系统需要实现的功能还未开发相关代码,即现有技术中没有该功能对应的软件模块,此时,本实施例仍可以通过编写的积木组件改造工具生成该需要实现的功能所对应的积木组件,由于还未开发相关代码,该需要实现的功能所对应的积木组件内容为空。为了后续能够基于该需要实现的功能在空的积木组件中添加相关代码等信息,可以根据未开发的相关代码,自动生成该空的积木组件对应的积木组件脚手架代码。

可选的,积木组件脚手架代码中包括以下信息:第一,组件信息文件,用于根据代码目录名,自动添加相关信息;第二,默认代码目录结构,用于扫描代码目录,自动生成目录信息;第三,默认系统配置选项,用于预留空间方便开发人员按需定制;第四,默认编译选项,用于预留空间方便开发人员按需定制。当然,该积木组件脚手架代码中还可以包括其他信息,本申请对此不进行限定。

在本步骤中,第一积木组件是指图2所示虚线框内的积木组件,该第一积木组件为搭建嵌入式操作系统所需的第一层积木组件。

可选的,第一积木组件通常为应用级组件,这里,应用级组件包括适用于当前硬件平台(当前所要搭建的嵌入式操作系统对应的硬件平台)的硬件组件和解决方案组件,例如第一积木组件可以为Helloworld组件、设备连云组件等。

值得注意的是,所要搭建的嵌入式操作系统可能仅对应一个第一积木组件,也可能对应多个第一积木组件,例如,图2b示出了多个第一积木组件。

本步骤还可以获取当前要搭建的嵌入式操作系统配套的目标参数信息。这里,目标参数信息中至少包括设定功能模块的标识信息,通过目标参数信息包含的标识信息就可以确定出哪些功能模块为设定功能模块,哪些功能模块不为设定功能模块。

可选的,本步骤“获取嵌入式操作系统配套的目标参数信息”的具体实现方式可以有多种,本申请提供但不限于以下两种实现方式。

第一种:对预设的初始参数信息进行改写,得到嵌入式操作系统配套的目标参数信息。

这里,预设的初始参数信息是针对其他项目(即其他嵌入式操作系统)编写的参数信息,本步骤仅需要将该初始参数信息改写为本项目所需的目标参数信息,即可得到本实施例所要搭建的嵌入式操作系统配套的目标参数信息。

第二种:编写嵌入式操作系统配套的目标参数信息。

可以理解的是,可能存在未预先编写初始参数信息的情况,此时也可以直接针对所要搭建的嵌入式操作系统编写目标参数信息。

步骤S103、至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。

这里,若第一积木组件包括多个积木组件,则第一积木组件对应的脚本文件是指第一积木组件包含的各积木组件分别对应的脚本文件;同理,下述第二积木组件对应的脚本文件是指第二积木组件包含的各积木组件分别对应的脚本文件,下述目标积木组件对应的脚本文件是指目标积木组件包含的各积木组件分别对应的脚本文件。

如前述步骤中的介绍,本实施例会在目标环境中预装构建工具,则本步骤可以通过构建工具将第一积木组件和第一积木组件对应的脚本文件下载下来。

步骤S104、至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中。

其中,第二积木组件为目标积木组件中除第一积木组件外的其他积木组件。这里,目标积木组件是指搭建当前嵌入式操作系统所需的所有积木组件,也即图2b所示的所有积木组件,那么第二积木组件是指图2b所示虚线框外的所有积木组件。

具体来说,在本步骤中,第一积木组件对应的脚本文件中的积木依赖信息描述了该第一积木组件与第二层积木组件的依赖关系,通过该依赖关系,可以确定出第一积木组件所依赖的第二层积木组件,相应的,可以确定出第二层积木组件中的每个积木组件对应的脚本文件;第二层积木组件对应的脚本文件中的积木依赖信息描述了第二层积木组件与第三层积木组件的依赖关系,通过该依赖关系,可以确定出第二层积木组件所依赖的第三层积木组件,相应的,可以确定出第三层积木组件中的每个积木组件对应的脚本文件;以此类推,可以确定出所有的第二积木组件和第二积木组件对应的脚本文件,如此便可将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中。

如前述步骤中的介绍,本实施例会在目标环境中预装构建工具,则本步骤可以通过构建工具将第二积木组件和第二积木组件对应的脚本文件下载下来。

经由本步骤和前述步骤,就可以将搭建嵌入式操作系统时所需的所有积木组件(即目标积木组件)及其对应的脚本文件均下载到目标环境中,从而后续可基于目标积木组件搭建嵌入式操作系统。

步骤S105、根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。

如前述步骤中的介绍,本实施例会在目标环境中预安装构建工具和构建软件,此外,可选的,本步骤还可以在构建系统未安装编译软件时,从软件仓库自动下载编译软件,然后便可根据目标积木组件对应的脚本文件中的积木配置信息和目标参数信息中设定功能模块的标识信息,使用安装好的构建工具、构建软件和编译软件,对前述步骤下载的目标积木组件进行编译,并输出编译信息,在编译出错时,还会输出编译错误信息。

本申请提供的嵌入式操作系统的搭建方法,首先搭建目标环境,然后获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息,接着至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中,之后至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,最后根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。由此可见,本申请采用搭建目标环境的方式,屏蔽了嵌入式操作系统编译构建所要运行的操作系统及平台软件的差异,使得本申请能够一站式搭建编译环境,并且本申请将现有的软件模块以积木组件的方式进行维护,在搭建嵌入式操作系统时,仅按需下载嵌入式操作系统相关的目标积木组件即可,无需下载所有积木组件,节省了下载时间,并且开发人员无需关心下载的积木组件中,哪些积木组件需要,哪些积木组件不需要,节省了开发人员的时间,此外,本申请仅需一次性配置好嵌入式操作系统配套的目标参数信息,便可一站式搭建好嵌入式操作系统,搭建过程比较简单,且提高了嵌入式操作系统的搭建效率。

经由实验证明,本申请提供的目标环境搭建,可以让开发人员在Windows,Linux,MAC OS等系统上一站式,仅仅花费十几分钟搭建嵌入式操作系统。

在一可选的实施例中,对上述“步骤S103、至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中”的过程进行说明。

在一种可能的实现方式中,为了便于对积木组件进行维护,本实施例可以将一个大的积木组件软件仓库拆分为多个软件子仓库,每个软件子仓库存储一个积木组件,从而本实施例可以在一个大的积木组件软件仓库中按积木组件的方式维护不同组件级的软件子仓库。

那么,在下载第一积木组件及对应的脚本文件时,就需要知道要下载的第一积木组件及对应的脚本文件在哪个软件子仓库,基于此,本实施例可以维护一个预设的仓库信息,在该仓库信息中将软件子仓库与积木组件关联起来,从而可基于仓库信息从对应软件子仓库中下载相应积木组件。基于此,步骤S103的过程可以包括:根据第一积木组件的标识信息和预设的仓库信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。

在另一种可能的实现方式中,积木组件可能对应有多个版本信息(例如版本号),则上述“每个软件子仓库存储一个积木组件”具体是指每个软件子仓库存储一个积木组件的若干个版本。在本实施例中,可将积木组件的版本信息写入脚本文件,也即,任一积木组件的脚本信息中还包括该积木组件的版本信息。

本实施例在搭建嵌入式操作系统时,可以基于同一版本信息或者不同版本信息的目标积木组件进行搭建,基于此,需要提前获知下载哪个版本的第一积木组件,才可以去对应软件子仓库进行下载。

可选的,可以将需要下载的版本信息(为便于后续描述,将该第一积木组件对应的需要下载的版本信息定义为第一版本信息)写入嵌入式操作系统配套的目标参数信息中,也即,嵌入式操作系统配套的目标参数信息中可以包括第一积木组件的第一版本信息,此时,可选的,步骤S103的过程可以包括:根据第一积木组件的标识信息和预设的仓库信息,将第一版本信息下的第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。

具体来说,“根据第一积木组件的标识信息和预设的仓库信息,将第一版本信息下的第一积木组件和第一积木组件对应的脚本文件下载到目标环境中”的过程包括:

步骤a1、根据第一积木组件的标识信息和仓库信息,确定第一积木组件所在的软件子仓库,作为第一软件子仓库,其中,仓库信息中包括积木组件的标识信息与软件子仓库的标识信息的对应关系,第一软件子仓库中包括若干个版本下的第一积木组件和若干个版本下的第一积木组件分别对应的脚本文件。

步骤a2、从第一软件子仓库中将第一版本信息下的第一积木组件和第一版本信息下的第一积木组件对应的脚本文件下载到目标环境中。

上述步骤a1~a2详细介绍了目标参数信息中包括第一版本信息的情况下,对第一积木组件本身和第一积木组件对应的脚本文件进行下载的详细过程。可以理解的是,还可以存在目标参数信息中不包括第一版本信息的情况,此时步骤S103的过程可以包括:根据第一积木组件的标识信息和预设的仓库信息,将最新版本下的第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。这里,该具体实现过程与上述步骤a1和a2的过程类似,详细可参照前述步骤中的介绍,在此不再赘述。

也就是说,在本实施例中,若目标参数信息中不包括第一版本信息,则步骤S103的过程可以包括:根据第一积木组件的标识信息和仓库信息,将最新版本下的第一积木组件和最新版本下的第一积木组件对应的脚本文件下载到目标环境中;若目标参数信息中包括第一版本信息,则步骤S103的过程可以包括:根据第一积木组件的标识信息和预设仓库信息,将第一版本信息下的第一积木组件和第一版本信息下的第一积木组件对应的脚本文件下载到目标环境中。

需要说明的是,上述本实施例给出了步骤S103的两种具体实现方式,但是步骤S103的实施方式并不仅限于这两种实现方式,除此之外,还可以有其他实现方式,例如,可以将所有积木组件及对应的脚本文件存储在一个大的积木组件软件仓库中,若第一积木组件中的每个积木组件只有一个版本,则步骤S103仅根据第一积木组件的标识信息,便可将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中,若第一积木组件中的每个积木组件包括多个版本,则步骤S103可根据第一积木组件的标识信息和第一版本信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。

综上,以上本实施例给出了步骤S103的四种实现方式,分别如下:

第一种实现方式,若所有积木组件及对应的脚本文件存储在一个大的积木组件软件仓库中,且第一积木组件中的每个积木组件只有一个版本,则步骤S103的过程可以包括:根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。

第二种实现方式,若所有积木组件及对应的脚本文件存储在一个大的积木组件软件仓库中,且第一积木组件中的每个积木组件包括多个版本,则步骤S103的过程可以包括:若目标参数信息中不包括第一版本信息,则根据第一积木组件的标识信息,将最新版本下的第一积木组件和最新版本下的第一积木组件对应的脚本文件下载到目标环境中;若目标参数信息中包括第一版本信息,则根据第一积木组件的标识信息,将第一版本信息下的第一积木组件和第一版本信息下的第一积木组件对应的脚本文件下载到目标环境中。

这里,第一版本信息是指需要下载的第一积木组件的版本信息,在本实施例中,第一版本信息可以写入嵌入式操作系统配套的目标参数信息中。

第三种实现方式,若第一积木组件中的每个积木组件存储在一个软件子仓库中,且第一积木组件中的每个积木组件只有一个版本,则步骤S103的过程可以包括:根据第一积木组件的标识信息和仓库信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中。

第四种实现方式,若第一积木组件中的每个积木组件存储在一个软件子仓库中,且第一积木组件中的每个积木组件包括多个版本,则步骤S103的过程可以包括:若目标参数信息中不包括第一版本信息,则根据第一积木组件的标识信息和仓库信息,将最新版本下的第一积木组件和最新版本下的第一积木组件对应的脚本文件下载到目标环境中;若目标参数信息中包括第一版本信息,则根据第一积木组件的标识信息和仓库信息,将第一版本信息下的第一积木组件和第一版本信息下的第一积木组件对应的脚本文件下载到目标环境中。

需要说明的是,步骤S103的实施方式并不仅限于上述几种实现方式,除此之外,还可以有其他实现方式,本申请对此不进行具体限定。

本实施例通过仓库信息和/或第一版本信息可以快速定位到需要下载的第一积木组件及其脚本文件,节省了下载时间,提高了下载效率。

本申请的一个实施例,对上述“步骤S104、至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中”的过程进行说明。

在本实施例中,步骤S104的过程包括多种实现方式,下面给出但不限于以下几种实现方式。

第一种实现方式,若所有积木组件及对应的脚本文件存储在一个大的积木组件软件仓库中,且第二积木组件中的每个积木组件只有一个版本,则步骤S104的过程可以包括:根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中。

第二种实现方式,若所有积木组件及对应的脚本文件存储在一个大的积木组件软件仓库中,且第二积木组件中的每个积木组件包括多个版本,则步骤S104的过程可以包括:若目标参数信息中不包括第二版本信息,则根据第一积木组件对应的脚本文件中的积木依赖信息,将最新版本下的第二积木组件和最新版本下的第二积木组件对应的脚本文件下载到目标环境中;若目标参数信息中包括第二版本信息,则根据第一积木组件对应的脚本文件中的积木依赖信息,将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中。

这里,第二版本信息是指需要下载的第二积木组件的版本信息,在本实施例中,第二版本信息可以写入嵌入式操作系统配套的目标参数信息中。

第三种实现方式,若第二积木组件中的每个积木组件存储在一个软件子仓库中,且第二积木组件中的每个积木组件只有一个版本,则步骤S104的过程可以包括:根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中。

第四种实现方式,若第二积木组件中的每个积木组件存储在一个软件子仓库中,且第二积木组件中的每个积木组件包括多个版本,则步骤S104的过程可以包括:若目标参数信息中不包括第二版本信息,则根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将最新版本下的第二积木组件和最新版本下的第二积木组件对应的脚本文件下载到目标环境中;若目标参数信息中包括第二版本信息,则根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中。

需要说明的是,步骤S104的实施方式并不仅限于上述几种实现方式,除此之外,还可以有其他实现方式,本申请对此不进行具体限定。

本实施例通过仓库信息和/或第二版本信息可以快速定位到需要下载的第二积木组件及其脚本文件,节省了下载时间,提高了下载效率。

在一可选实施例中,上述步骤S104中,“根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中”的过程可以包括:

步骤b1、根据第一积木组件对应的脚本文件中的积木依赖信息和仓库信息,确定第二软件子仓库的标识信息,其中,第二软件子仓库是指第二积木组件所在的软件子仓库。

步骤b2、根据第一积木组件对应的脚本文件中的积木依赖信息、第二版本信息和第二软件子仓库的标识信息,构建针对嵌入式操作系统的依赖树,其中,依赖树的每个节点对应目标积木组件中的一个积木组件,第一积木组件对应的节点中包括第一版本信息和第一软件子仓库的标识信息,第二积木组件对应的节点中包括第二版本信息和第二软件子仓库的标识信息。

步骤b3、根据依赖树,从第二软件子仓库的标识信息指示的第二软件子仓库中将第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中。

具体来说,本实施例根据第一积木组件对应的脚本文件中的积木依赖信息,可以确定出第一积木组件所依赖的第二层积木组件,根据第二层积木组件对应的脚本文件包含的积木依赖信息,可以确定出第二层积木组件中的每个积木组件所依赖的第三层积木组件,以此类推,便可构建出针对嵌入式操作系统的依赖树。

构建出依赖树后,便可根据依赖树中的第二版本信息和第二软件子仓库的标识信息,使用构建工具从第二软件子仓库的标识信息指示的第二软件子仓库中确定出第二版本信息下的第二积木组件,并将确定出的第二版本信息下的第二积木组件和第二版本信息下的第二积木组件对应的脚本文件下载到目标环境中。

可选的,如果没有第二版本信息下的第二积木组件,构建工具也可以下载最新版本下的第二积木组件。

可选的,为了开发人员快速找到下载的目标积木组件,可以根据每个积木组件中的分类信息文件创建相应目录,每个目录下存放相同类型的积木组件代码,即可以一键构建所需的解决方案。

以下对上述实施例中的“步骤S105、根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件”进行说明。

前述实施例已经介绍了,目标参数信息中包括设定功能模块的标识信息和/或第一版本信息和第二版本信息,例如,目标参数信息中包括:搭建V2.0版本的嵌入式操作系统需要积木组件A(版本为V2.0)的功能模块1和3,并需要积木组件B(版本为V1.8)的功能模块6和7,以及,需要积木组件C(版本为V2.0)的功能模块10,等等。

可选的,上述“步骤S105、根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件”的过程可以包括以下步骤c1~c4:

步骤c1、根据目标积木组件对应的脚本文件中的积木配置信息和目标参数信息中设定功能模块的标识信息,生成目标配置文件。

具体来说,在本步骤中,构建工具可以集中按照依赖树,根据目标积木组件对应的脚本文件中包含的积木配置信息和目标参数信息中包含的设定功能模块的标识信息,生成一个统一的配置文件,该统一的配置文件即目标配置文件。

在一可选实施例中,本步骤的过程可以包括:按照目标参数信息中设定功能模块的标识信息对目标积木组件对应的脚本文件中的积木配置信息进行修改,由修改后的积木配置信息得到目标配置文件。

可以理解的是,初始情况下,目标积木组件对应的脚本文件中的积木配置信息通常与当前搭建的嵌入式操作系统不相匹配,需要通过本步骤的修改过程,将目标积木组件对应的脚本文件中的积木配置信息修改为与当前搭建的嵌入式操作系统相匹配的配置信息,也就是说,当前搭建的嵌入式操作系统需要哪个功能模块,就将该功能模块的配置信息修改为设定功能模块对应的配置信息。

例如,以步骤S102示出的日志组件为例,假设目标积木组件中包括该日志组件,并假设目标参数信息中包括功能模块“LOG_SUPPORT_ASYNC”和“LOG_SUPPORT_CLOUD”的标识信息,则对日志组件的脚本文件中的积木配置信息进行修改后,得到的修改后的积木配置信息为:

Feature_config:

LOG_SUPPORT_ASYNC Y

LOG_SUPPORT_FS N

LOG_SUPPORT_CLOUD Y

上述积木配置信息中,日志组件包含的“LOG_SUPPORT_ASYNC”配置为Y,表征“LOG_SUPPORT_ASYNC”为设定功能模块,同理,日志组件包含的“LOG_SUPPORT_CLOUD”配置为Y,表征“LOG_SUPPORT_CLOUD”为设定功能模块。

在本步骤中,对目标积木组件包含的每个积木组件对应的脚本文件中的积木配置信息均进行修改,就可以由目标积木组件对应的修改后的积木配置信息得到目标配置文件。

步骤c2、根据目标配置文件,对下载的目标积木组件进行裁剪,得到裁剪的目标积木组件。

具体来说,本步骤可以根据所述目标配置文件,将下载的目标积木组件中除设定功能模块外的其他功能模块裁掉,以得到裁剪的目标积木组件。

由于目标配置文件是基于目标参数信息包含的设定功能模块的标识信息生成的,那么根据目标配置文件,便可知道如何对下载的目标积木组件进行裁剪。例如,根据由c1示出的修改后的积木配置文件得到的目标配置文件,本步骤就可以将“LOG_SUPPORT_FS”功能模块从日志组件中裁掉,得到由“LOG_SUPPORT_ASYNC”和“LOG_SUPPORT_CLOUD”组成的裁剪的日志组件。

步骤c3、根据目标配置文件,生成目标编译文件。

其中,目标编译文件用于指示如何对裁剪的目标积木组件进行编译。

在本步骤中,目标配置文件做为目标积木组件的输入文件,可以按需构成用于指示如何对裁剪的目标积木组件进行编译的目标编译文件。这里,目标编译文件为预先安装的构建软件所需的编译文件。

由于本步骤能够根据目标配置文件,自动生成目标编译文件,从而开发人员不再需要手动编写编译文件,节省了开发人员的时间。

可选的,目标编译文件可以为makefile文件或CMakeLists文件。

步骤c4、根据目标编译文件,对裁剪的目标积木组件进行编译,得到编译后的可执行文件。

在本步骤中,根据目标编译文件,构建系统可以自动调用构建软件,然后再根据目标编译文件、构建软件和编译软件,即可对裁剪的目标积木组件进行编译,得到编译后的可执行文件。

综上,本实施例能够根据目标积木组件对应的脚本文件中的积木配置信息和目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行先裁剪再编译的处理,整个过程均自动执行,使得开发人员不需要额外做任何工作(现有技术中,开发人员需要在各个软件模块内进行修改,并且经常会发生多处修改,或者由于软件模块耦合,导致配置不统一,从而需要花费开发人员大量的时间进行调试),节省了开发人员的时间,并且极大的减少了出错的可能性。

在一些场景下,在前述步骤S105对目标积木组件进行编译后,可能还需要对编译后的可执行文件进行后处理,例如加密处理、添加包头处理、打印处理等。

可选的,本实施例可以将后处理信息写入目标积木组件的某个或某些积木组件对应的脚本文件中,例如,将后处理信息写入第一积木组件对应的脚本文件中,或者,将后处理信息写入目标积木组件对应的脚本文件中,从而后续可以在步骤S105后,根据写入第一积木组件(或目标积木组件)对应的脚本文件中的积木后处理信息,对编译后的可执行文件进行后处理,后处理后的可执行文件作为搭建的嵌入式操作系统。

需要说明的是,脚本文件包含的积木后处理信息仅用于指示搭建嵌入式操作系统时,需要对可执行文件做哪些后处理,但是具体怎么进行该后处理由外部命令指示。

例如,若目标积木组件对应的脚本文件中的积木后处理信息为加密处理,则说明需要对可执行文件进行加密,但是如何进行加密,加密算法是什么由外部加密命令指示。也就是说,本实施例“根据所述积木后处理信息,对所述编译后的可执行文件进行后处理”的过程包括:若积木后处理信息中包括加密处理,则从外部指定位置获取加密命令,并基于加密命令对编译后的可执行文件进行加密处理。

再例如,若目标积木组件对应的脚本文件包含的积木后处理信息为添加包头处理,则说明需要为可执行文件添加包头信息,但是如何进行添加包头,添加的包头信息是什么由外部包头添加命令指示。也就是说,本实施例“根据所述积木后处理信息,对所述编译后的可执行文件进行后处理”的过程包括:若积木后处理信息中包括添加包头处理,则从外部指定位置获取包头添加命令,并基于包头添加命令为编译后的可执行文件添加包头信息。

再例如,若目标积木组件对应的脚本文件包含的积木后处理信息为功能打印处理,则说明需要将搭建嵌入式操作系统时用到的设定功能模块的相关信息进行打印输出,但是具体如何打印由外部功能打印命令指示。也就是说,本实施例“根据所述积木后处理信息,对所述编译后的可执行文件进行后处理”的过程包括:若积木后处理信息中包括功能打印处理,则从外部指定位置获取功能打印命令,并基于功能打印命令对编译后的可执行文件对应的功能列表信息进行打印输出,其中,功能列表信息为设定功能模块的相关信息,例如标识信息等。

综上,本实施例可在积木组件编译后,进行各种后处理工作,使得本实施例提供的嵌入式操作系统的功能更丰富。

在上述各实施例中,详细介绍了任一积木组件对应的脚本文件中包括该积木组件的版本信息、用于描述该积木组件与其他积木组件之间的依赖关系的积木依赖信息、积木配置信息、积木后处理信息等,除此之外,本实施例提供的脚本文件还可以包括其他信息,例如,在一个实施例中,一积木组件对应的脚本文件可以包括以下内容:

第一,积木基本信息,包含积木组件的名称,积木组件独立管理的版本信息,积木组件的简单描述,积木组件的类型分类,积木组件的许可证信息等信息。

第二,积木的依赖信息,包含积木组件的依赖表,依赖表代表了各个积木组件的上下层依赖关系,可选的,积木依赖信息可以为接口依赖信息,上层积木组件会调用下层积木组件提供的接口。

第三,积木的外观信息,包含运行嵌入式操作系统的板级组件相关信息,包含CPU,芯片组,开发板组件等。

第四,积木编译信息,包含积木组件独立于项目的单独编译信息。

第五,积木配置信息,包含积木组件的相关配置信息。通过配置信息,可以自由的裁剪组件,从而可以让积木组件可大可小。

第六,积木后处理信息(可选),包含积木组件编译完成后的各种后处理工作信息。

可见,本申请使用脚本文件使得各个积木组件提供对外统一、可裁剪配置的功能组件集,以及统一风格的API调用函数。

需要说明的是,上述脚本文件仅为示例,不作为对本申请脚本文件的限定。

本申请实施例还提供了一种嵌入式操作系统的搭建装置,下面对本申请实施例提供的嵌入式操作系统的搭建装置进行描述,下文描述的嵌入式操作系统的搭建装置与上文描述的嵌入式操作系统的搭建方法可相互对应参照。

请参阅图3,示出了本申请实施例提供的嵌入式操作系统的搭建装置的结构示意图,如图3所示,该嵌入式操作系统的搭建装置可以包括:目标环境搭建模块301、信息获取模块302、第一下载模块303、第二下载模块304和编译模块305。

目标环境搭建模块301,用于搭建目标环境。

信息获取模块302,用于获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息。

第一下载模块303,用于至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中,其中,第一积木组件为目标积木组件中的根积木组件,目标积木组件包含的每个积木组件对应的脚本文件中均包括积木依赖信息和积木配置信息,积木依赖信息用于描述对应积木组件与其他积木组件之间的依赖关系,积木配置信息用于描述组成对应积木组件的若干功能模块是否为搭建嵌入式操作系统所需的设定功能模块,目标参数信息至少包括设定功能模块的标识信息。

第二下载模块304,用于至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,其中,第二积木组件为目标积木组件中除第一积木组件外的其他积木组件。

编译模块305,用于根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。

综上所述,本实施例公开的嵌入式操作系统的搭建装置的工作原理,与上述实施例公开的嵌入式操作系统的搭建方法的工作原理相同,详细可参照前述实施例中的介绍,在此不再赘述。

本申请实施例还提供了一种嵌入式操作系统的搭建设备。可选的,图4示出了嵌入式操作系统的搭建设备的硬件结构框图,参照图4,该嵌入式操作系统的搭建设备的硬件结构可以包括:至少一个处理器401,至少一个通信接口402,至少一个存储器403和至少一个通信总线404;

在本申请实施例中,处理器401、通信接口402、存储器403、通信总线404的数量为至少一个,且处理器401、通信接口402、存储器403通过通信总线404完成相互间的通信;

处理器401可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器403可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;

其中,存储器403存储有程序,处理器401可调用存储器403存储的程序,所述程序用于:

搭建目标环境;

获取第一积木组件的标识信息和嵌入式操作系统配套的目标参数信息;

至少根据第一积木组件的标识信息,将第一积木组件和第一积木组件对应的脚本文件下载到目标环境中,其中,第一积木组件为目标积木组件中的根积木组件,目标积木组件包含的每个积木组件对应的脚本文件中均包括积木依赖信息和积木配置信息,积木依赖信息用于描述对应积木组件与其他积木组件之间的依赖关系,积木配置信息用于描述组成对应积木组件的若干功能模块是否为搭建嵌入式操作系统所需的设定功能模块,目标参数信息至少包括设定功能模块的标识信息;

至少根据第一积木组件对应的脚本文件中的积木依赖信息,将第二积木组件和第二积木组件对应的脚本文件下载到目标环境中,其中,第二积木组件为目标积木组件中除第一积木组件外的其他积木组件;

根据目标积木组件对应的脚本文件中的积木配置信息,以及目标参数信息中设定功能模块的标识信息,对下载的目标积木组件进行编译,得到编译后的可执行文件,作为搭建的嵌入式操作系统。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述嵌入式操作系统的搭建方法。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

最后,还需要说明的是,在本文中,诸如和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种嵌入式操作系统的搭建方法、装置、设备和介质
  • 一种嵌入式操作系统的更新方法、装置、设备和介质
技术分类

06120114715103