嵌入式系统的启动方法、装置、嵌入式设备及存储介质与流程

文档序号:18795976发布日期:2019-09-29 19:38阅读:296来源:国知局
嵌入式系统的启动方法、装置、嵌入式设备及存储介质与流程

本申请属于计算机技术领域,具体涉及一种嵌入式系统的启动方法、装置、嵌入式设备及存储介质。



背景技术:

嵌入式的发展对嵌入式设备的功能提出了更高的要求,cpu(centralprocessingunit,中央处理器)系统的应用越来越广泛,基于同一种cpu小系统开发的各式各样嵌入式设备层出不穷。不同的嵌入式设备,除cpu小系统以外,其它外围设备各尽不同。因此用于引导设备启动的引导程序uboot也存在很大的差异,为支持不同的设备厂商快速的开发设备,cpu设计厂商需要提供对uboot的支持。

现有的嵌入式系统开发,引导程序uboot,一般情况下,cpu厂商会提供sdk(softwaredevelopmentkit)开发包,也就是全部的原始代码。部分cpu厂商由于保密安全等原因的考虑,会将sdk中部分关键的代码,以编译过程中的过程文件提供,例如*.o。这种方式,由于sdk开发包中兼容处理了多种类型的cpu小系统,代码量比较多,逻辑处理复杂。提供给设备厂商以后,当设备厂商开发人员对其进行修改时,就需要很强的专业技术能力,如果修改不合适,会导致很多问题。



技术实现要素:

鉴于此,本申请的目的在于提供一种嵌入式系统的启动方法、装置、嵌入式设备及存储介质,以改善现有引导程序所存在通用性差以及逻辑处理复杂不便于修改的问题。

本申请的实施例是这样实现的:

第一方面,本申请实施例提供了一种嵌入式系统的启动方法,包括:在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统;获取预设配置文件中的第二阶段程序启动策略;加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

本申请实施例提供了一种将嵌入式系统cpu小系统与外围设备分离设计的引导程序,即将引导cpu小系统启动的引导程序与引导外围设备的启动的引导程序相分离,使得基于同一类型的cpu小系统设计的众多的嵌入式设备能通用引导cpu小系统启动的引导程序,来初始化cpu密切相关的小系统,使得cpu小系统可靠性及可维护性能得到很好的保证,从而能够快速的适应不同设备厂商快速的推出产品。

结合第一方面实施例的一种可能的实施方式,在获取所述预设配置文件中的第二阶段程序启动策略之前,所述方法还包括:根据所述预设配置文件确定所述第一阶段引导程序不需要升级。本申请实施例中,在获取所述预设配置文件中的第二阶段程序启动策略之前,先确定第一阶段引导程序不需要升级,以保证cpu小系统的可靠性,减少后续启动出错的风险。

结合第一方面实施例的一种可能的实施方式,在获取所述预设配置文件中的第二阶段程序启动策略之前,所述方法还包括:根据所述预设配置文件确定所述第一阶段引导程序需要升级;加载所述预设配置文件中需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级。本申请实施例中,在获取所述预设配置文件中的第二阶段程序启动策略之前,若确定第一阶段引导程序需要升级,便加载需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级,以保证cpu小系统的可靠性,减少后续启动出错的风险。

结合第一方面实施例的一种可能的实施方式,在完成对所述第一阶段引导程序的升级之后,所述方法还包括:修改所述预设配置文件中需要升级的文件名称的标识参数,并重启所述第一阶段引导程序。本申请实施例中,在完成第一阶段引导程序的升级后,修改所述预设配置文件中需要升级的文件名称的标识参数,使其不再提示需要升级,并重启,以保证cpu小系统的可靠性。

结合第一方面实施例的一种可能的实施方式,所述最小系统包括文件系统,获取预设配置文件中的第二阶段程序启动策略,包括:从所述文件系统中获取所述预设配置文件;获取所述预设配置文件中的第二阶段程序启动策略。本申请实施例中,将预设配置文件配置于最小系统的文件系统中,简化了流程,还提高了应用场景的通用性。

结合第一方面实施例的一种可能的实施方式,在加载与所述第二阶段程序启动策略对应的启动程序之前,所述方法还包括:确定所述第二阶段程序启动策略通过有效性校验。本申请实施例中,在加载与所述第二阶段程序启动策略对应的启动程序之前,先校验第二阶段程序启动策略的有效性,在通过有效性校验后才加载与所述第二阶段程序启动策略对应的启动程序,保证了加载的可靠性。

第二方面,本申请实施例还提供了一种嵌入式系统的启动装置,包括:第一启动模块、获取模块以及第二启动模块;第一启动模块,用于在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统;获取模块,用于获取预设配置文件中的第二阶段程序启动策略;第二启动模块,用于加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

结合第二方面实施例的一种可能的实施方式,还包括:第一确定模块,用于在所述获取模块用于获取预设配置文件中的第二阶段程序启动策略之前,根据所述预设配置文件确定所述第一阶段引导程序不需要升级。

结合第二方面实施例的一种可能的实施方式,还包括:升级模块;所述第一确定模块,还用于在所述获取模块用于获取预设配置文件中的第二阶段程序启动策略之前,根据所述预设配置文件确定所述第一阶段引导程序需要升级;升级模块,用于加载所述预设配置文件中需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级。

结合第二方面实施例的一种可能的实施方式,还包括:修改模块,用于修改所述预设配置文件中需要升级的文件名称的标识参数,并重启所述第一阶段引导程序。

结合第二方面实施例的一种可能的实施方式,所述最小系统包括文件系统,所述获取模块具体用于:从所述文件系统中获取所述预设配置文件;获取所述预设配置文件中的第二阶段程序启动策略。

结合第二方面实施例的一种可能的实施方式,还包括:第二确定模块,用于确定所述第二阶段程序启动策略通过有效性校验。

第三方面,本申请实施例还提供了一种嵌入式设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。

第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。

图1示出了本申请实施例提供的一种嵌入式系统的启动方法的流程示意图。

图2示出了本申请实施例提供的又一种嵌入式系统的启动方法的流程示意图。

图3示出了本申请实施例提供的一种嵌入式系统的启动装置的功能模块示意图。

图4示出了本申请实施例提供的一种嵌入式设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

第一实施例

请参阅图1,为本申请实施例提供的一种嵌入式系统的启动方法,下面将结合图1对其所包含的步骤进行说明。

步骤s101:在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统。

嵌入式设备在启动时,需要通用引导加载程序uboot进行引导,以完成嵌入式设备的启动,当嵌入式设备在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统。随着嵌入式的发展,基于同一种cpu小系统开发的嵌入式设备层出不穷。不同的嵌入式设备,除cpu小系统以外,其它外围设备各尽不同。因此用于引导嵌入式设备启动的uboot程序也存在很大的差异。鉴于此,本申请实施例提供了一种将嵌入式系统cpu小系统与外围设备分离设计的引导程序,即将引导cpu小系统启动的引导程序与引导外围设备的启动的引导程序相分离,使得基于同一类型的cpu小系统设计的众多的嵌入式设备能通用引导cpu小系统启动的引导程序,来初始化cpu密切相关的小系统,使得cpu小系统可靠性及可维护性能得到很好的保证,从而能够快速的适应不同设备厂商快速的推出产品。

进一步地,将cpu、cache(高速缓存)、mmu(memorymanagementunit,内存管理单元)、ddr(doubledatarate,双倍速率)控制器等关键小系统部件初始化功能,作为第一阶段的启动程序。第一阶段的引导程序至少包括如下功能:cpu内部状态寄存器的初始化,ddr控制器的初始化,cache的初始化。最小系统初始化后可正常使用。

第一阶段的启动程序作为固件的方式存放在存储介质中,系统上电后,cpu从存储介质中读取第一阶段的程序并执行,程序启动过程中,初始化cpu、cache、mmu,ddr控制器,确保cpu小系统稳定可靠。

步骤s102:获取预设配置文件中的第二阶段程序启动策略。

在启动第一阶段引导程序,以初始化系统启动所需的最小系统后,作为一种实施方式,该最小系统包括文件系统(如fat文件系统),从该文件系统中获取预设配置文件,然后获取该预设配置文件中的第二阶段程序启动策略,并从文件系统中加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。也即,该实施方式下,该预设配置文件和第二阶段的启动程序存储在本端。其中,文件系统中用于存储第二阶段的用于引导外围设备启动的引导程序,以及配置文件。

在启动第一阶段引导程序,以初始化系统启动所需的最小系统后,作为一种实施方式,该最小系统包括通信模块,可以通过该通信模块从网上(如服务器)获取预设配置文件,然后再获取该预设配置文件中的第二阶段程序启动策略,并从服务器上加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。也即,该实施方式下,该预设配置文件和第二阶段的启动程序存储在云端,此时,对应的在启动第一阶段引导程序时,还包括对通信模块的初始化,也即此时,将cpu、cache(高速缓存)、mmu(memorymanagementunit,内存管理单元)、ddr控制器、通信模块等关键小系统部件初始化功能,作为第一阶段的启动程序。第一阶段的引导程序至少包括如下功能:cpu内部状态寄存器的初始化,ddr控制器的初始化,cache的初始化,通信模块初始化。

其中,预设配置文件中配置有第二阶段程序启动策略,该第二阶段程序启动策略用于记录需要启动的外围设备的名称以及对应的程序,以及多个外围设备之间的前后逻辑等。

其中,上述的通信模块可以为蓝牙模块、wifi模块、3g模块、4g模块、5g模块等。

步骤s103:加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

在完成最小系统初始化,获取预设配置文件中的第二阶段程序启动策略后,加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

在嵌入式系统中,会针对不同的场景设计各种各样的嵌入式板卡,硬件的设计种类繁多,很难进行模板化设计。因此在不同的设计板上,引导程序存在很大差异,但是对于同一类型的cpu而言,cpu最小系统是一致的。使用本申请实施例提供的方案以后,cpu小系统与外围设备分离,极大地保证了cpu小系统的可靠性及可维护性,从而能够快速的适应不同设备厂商快速的推出产品。

其中,需要说明的是,针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。

第二实施例

本申请实施例还提供的又一种嵌入式系统的启动方法,如图2所示,下面将结合图2对其所包含的步骤进行说明。

步骤s201:在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统。

该步骤与上述的步骤s101相同,详情请参阅上述的步骤s101。

步骤s202:获取预设配置文件并根据所述预设配置文件判断所述第一阶段引导程序是否需要升级。

在启动第一阶段引导程序,以初始化系统启动所需的最小系统后,作为一种实施方式,该最小系统包括文件系统(如fat文件系统),从该文件系统中获取预设配置文件,并根据所述预设配置文件判断所述第一阶段引导程序是否需要升级。在根据所述预设配置文件确定所述第一阶段引导程序不需要升级时,执行步骤s205;在根据所述预设配置文件确定所述第一阶段引导程序需要升级时,执行步骤s203。

在启动第一阶段引导程序,以初始化系统启动所需的最小系统后,作为一种实施方式,该最小系统包括通信模块,可以通过该通信模块从网上(如服务器)获取预设配置文件,并根据所述预设配置文件判断所述第一阶段引导程序是否需要升级。在根据所述预设配置文件确定所述第一阶段引导程序不需要升级时,执行步骤s205;在根据所述预设配置文件确定所述第一阶段引导程序需要升级时,执行步骤s203。

其中,可以根据预设配置文件中配置的标识参数来确定第一阶段引导程序是否需要升级,如若所述第一阶段引导程序中的某个文件的对应的标识参数为“yes”,则表示该文件需要升级,若对应的标识参数为“ok”,则表示升级成功或不需要升级。需要说明的是,上述的标识参数仅仅是一种示例,不能将其理解成是对本申请的限制,例如,还可以用诸如数字“1”表示需要升级,数字“2”表示升级成功或不需要升级等方式来标识。

步骤s203:加载所述预设配置文件中需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级。

在根据所述预设配置文件确定所述第一阶段引导程序不需要升级时,加载所述预设配置文件中需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级。

步骤s204:修改所述预设配置文件中需要升级的文件名称的标识参数,并重启所述第一阶段引导程序。

在加载所述预设配置文件中需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级后,修改所述预设配置文件中需要升级的文件名称的标识参数,并重启所述第一阶段引导程序。为了便于理解,假设文件名称a以及文件名称b对应的文件需要升级,则加载文件名称a以及文件名称b各自对应的升级程序进行升级,在完成对所述第一阶段引导程序的升级后,将文件名称a的标识参数由“yes”修改为“ok”,以及将文件名称b的标识参数由“yes”修改为“ok”,然后重启所述第一阶段引导程序。

步骤s205:获取所述预设配置文件中的第二阶段程序启动策略。

该步骤与上述的步骤s102相同,详情请参阅上述的步骤s102。

步骤s206:加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

该步骤与上述的步骤s103相同,详情请参阅上述的步骤s103。

作为一种可选的实施方式,在获取预设配置文件中的第二阶段程序启动策略之前,还需要先确定所述第二阶段程序启动策略通过有效性校验。也即该实施方式下,在获取预设配置文件中的第二阶段程序启动策略之前,需要先对预设配置文件中的第二阶段程序启动策略的有效性校验进行校验(如进行crc校验),在检验通过后,才获取预设配置文件中的第二阶段程序启动策略。若校验失败,或者预设配置文件中没有第二阶段程序启动策略,则停留在启动输入输出终端界面(此时,由于第一阶段初始化完成,因此,若校验失败或者预设配置文件中没有第二阶段程序启动策略时,系统可停留在该界面),以便用户输入。

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

第三实施例

本申请实施例提供了一种嵌入式系统的启动装置100,如图3所示。该包括嵌入式系统的启动装置100包括:第一启动模块110、获取模块120以及第二启动模块130。

第一启动模块110,用于在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统。

获取模块120,用于获取预设配置文件中的第二阶段程序启动策略。可选地,当所述最小系统包括文件系统时,所述获取模块120,用于从所述文件系统中获取所述预设配置文件;获取所述预设配置文件中的第二阶段程序启动策略。

第二启动模块130,用于加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

可选地,嵌入式系统的启动装置100还包括:第一确定模块。

该第一确定模块,用于在获取模块120获取预设配置文件中的第二阶段程序启动策略之前,根据所述预设配置文件确定所述第一阶段引导程序不需要升级。

可选地,嵌入式系统的启动装置100还包括:升级模块。

该第一确定模块,还用于在获取模块120获取预设配置文件中的第二阶段程序启动策略之前,根据所述预设配置文件确定所述第一阶段引导程序需要升级。

该升级模块,用于加载所述预设配置文件中需要升级的文件名称对应的升级程序,完成对所述第一阶段引导程序的升级。

可选地,嵌入式系统的启动装置100还包括:修改模块。该修改模块,用于修改所述预设配置文件中需要升级的文件名称的标识参数,并重启所述第一阶段引导程序。

可选地,嵌入式系统的启动装置100还包括:第二确定模块。该第二确定模块,用于确定所述第二阶段程序启动策略通过有效性校验。

本申请实施例所提供的嵌入式系统的启动装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

第四实施例

本申请实施例还提供了一种嵌入式设备200,如图4所示,包括:存储控制器210、存储器220、通讯总线230以及处理器240。

所述存储控制器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,存储器220用于存储计算机程序,如存储有图3中所示的软件功能模块,即嵌入式系统的启动装置100。其中,嵌入式系统的启动装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operatingsystem,os)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块,例如嵌入式系统的启动装置100包括的软件功能模块或计算机程序。例如,处理器240,用于在监测到系统上电时,启动第一阶段引导程序,以初始化系统启动所需的最小系统;以及还用于获取预设配置文件中的第二阶段程序启动策略;以及还用于加载与所述第二阶段程序启动策略对应的启动程序,以完成本次系统的启动。

其中,存储器220可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。

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

第五实施例

本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),其上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法实施例所示的步骤。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1