一种嵌入式设备的多系统启动方法技术方案

技术编号:38592702 阅读:12 留言:0更新日期:2023-08-26 23:31
一种嵌入式设备的多系统启动方法,包括:在uboot中创建第一环境变量和第二环境变量以标记各系统的启动次数和当前启动的系统,以及用于评价各系统稳定性的第三环境变量;BootLoader启动后,读取环境变量数据,并对读取的数据进行CRC校验;开始启动系统时,根据第二环境变量或第三环境变量的值选择系统进行启动,如未正常启动,判断第一环境变量是否大于设定值,如是,则进行备份恢复或切换别的系统进行启动;并可根据存储器件和应用场景选择相应的启动跳转和系统升级方法。本发明专利技术可提高系统启动的成功率和效率,提高设备运行的可靠性和稳定性,避免因升级导致的系统不正常,保证用户在任何情况下均有可使用的操作系统。证用户在任何情况下均有可使用的操作系统。证用户在任何情况下均有可使用的操作系统。

【技术实现步骤摘要】
一种嵌入式设备的多系统启动方法


[0001]本专利技术涉及系统启动
,尤其涉及一种嵌入式设备的多系统启动方法。

技术介绍

[0002]随着通信技术、物联网技术、人工智能技术以及智能家居等领域的不断发展,嵌入式设备得到广泛应用,涉及方方面面各个领域,如工控领域(机械臂、智能测试仪)、智能家居领域、交通物流领域、医疗健康领域、通信领域(路由器、企业级网关、通信基站设备、交换机)等。在一些领域中,设备运行的稳定性和可维护性对用户体验的影响越来越大。为提高设备的运行可靠性和可维护性,可在工控机、基站设备、交换机等设备中安装多个操作系统,方便用户使用,一旦一个系统出现问题,用户可以进入另一个系统,不会因为系统崩溃而导致的循环重启、无法开机等无法正常使用的问题;同时多个系统之间相互独立,可独立运行各自支持的应用程序,也扩大了设备的应用灵活性和使用范围。
[0003]但安装有多个系统的设备在系统启动时存在系统选择和升级的问题,特别是当出现系统故障重启时如何协调多个系统之间的配合关系,以提高设备运行的可靠性和稳定性,则显得尤为重要。

技术实现思路

[0004]本专利技术的目的是克服上述现有技术的缺点,提供一种系统启动的成功率高、系统运行稳定可靠的一种嵌入式设备的多系统启动方法,该方法为解决单固件启动不可靠的问题,进一步提升了设备运行的稳定可靠性,保证设备在出现无法正常使用的情况下,仍有可启动的系统供用户使用。
[0005]本专利技术是通过以下技术方案来实现的:
[0006]一种嵌入式设备的多系统启动方法,包括如下步骤:
[0007]S1、给各系统进行编号标记,并将各系统的编号标记记载在存储器件的分区表中,并将编号记录在分区名称上以进行区分和获取;在uboot中创建第一环境变量和第二环境变量,所述第一环境变量用于标记各系统的启动次数,所述第二环境变量用于标记当前启动的系统;
[0008]S2、引导加载程序BootLoader启动后,读取uboot

env中的环境变量数据,并对读取的数据进行CRC校验,以确保数据读取准确;
[0009]S3、选择系统进行启动;
[0010]S4、如选择的系统启动成功,重置第一环境变量的值为零,如未正常启动,则将第一环境变量的值加一,并判断第一环境变量的值是否大于设定值,并根据判断情况执行步骤S5或S6,直至系统启动成功;
[0011]S5、如第一环境变量的值≥设定值,则切换别的系统继续按照S4步骤进行启动,并重置第一环境变量的值为零;
[0012]S6、如第一环境变量的值<设定值,则继续选择该系统继续按照S4步骤进行启动。
[0013]进一步地,所述系统启动的方法为:
[0014]根据选择启动的系统,跳转到系统对应的位置进行启动,根据系统存储器件选择不同的跳转启动方式:
[0015]如系统的存储器件为NAND Flash,则系统启动时,根据flash分区表,找到该系统对应的分区名,选择对应UBI分区进行启动,并将启动参数写入环境变量bootargs中;
[0016]如系统的存储器件为EMMC,则系统启动时,根据emmc分区表,找到该系统kernel所在的分区,同时找到对应rootfs所在的分区,将rootfs的信息写入环境变量bootargs中,启动kernel后,kernel通过BootLoader传入的cmdline找到对应rootfs的位置并继续启动。
[0017]进一步地,当选择系统或切换系统进行启动时,根据第二环境变量的值选择系统或切换系统,及按照各系统的标记值进行选择,优先选择第一系统。
[0018]进一步地,还包括:在uboot中创建第三环境变量stab_sys,所述第三环境变量stab_sys用于评价各系统的稳定性,当选择系统或切换系统进行启动时,根据第三环境变量的值选择或切换稳定性高的系统;
[0019]第三环境变量stab_sys的表达式为:
[0020][0021]其中,K1、K2均为权重系数,为定值,m
sys
为该系统的历史启动总次数,a
sys
为该系统的历史启动成功总次数,b
sys
为该系统运行过程中出现故障的历史总次数。K1、K2为定值,a
sys
、b
sys
、m
sys
均为变量;
[0022]当一个系统启动时,该系统的m
sys
值+1,如启动成功,则该系统a
sys
值+1;该系统运行时,如出现故障重启,则该系统的b
sys
值+1。
[0023]进一步地,系统启动成功后,还包括:init进程中的bootcount程序通过使用fw_printf和fw_set工具对uboot

env分区中的环境变量进行读写,将第一环境变量中各系统的启动次数清零。
[0024]进一步地,所述S2步骤中,如为烧录后第一次启动,则BootLoader启动后,需初始化环境变量分区。
[0025]进一步地,还包括:系统启动成功后,通过SnapShot对当前系统进行备份(相当于进行一次快照),并将系统备份存储在存储介质SnapShot分区中;
[0026]当S5步骤中第一环境变量的值(该系统的启动次数)≥设定值,如SnapShot分区中存储有该系统备份,则恢复SnapShot分区中该系统备份中的内容,再进行启动,如该系统仍无法启动,则按照S5步骤切换其它系统进行启动;如SnapShot分区中没有存储该系统备份,则按照S5步骤至直接切换其它系统进行启动。即通过预先系统备份的方式来提高系统启动的成功率。
[0027]进一步地,还包括:系统启动成功后,通过SnapShot对当前系统进行备份(相当于进行一次快照),并将系统备份存储在存储介质SnapShot分区中;
[0028]当按照S5步骤所有系统切换完成且均没有启动成功时,如SnapShot分区中存储有一个系统备份,则恢复SnapShot分区中该系统备份中的内容,再进行启动。为节省存储介质空间,snapshot分区中可仅保存最后一次系统快照,如恢复后仍无法启动,不进行系统切换,转而进入下一步恢复步骤。
[0029]当然,如没有节省存储介质空间方面的顾虑,也可在SnapShot分区中存储多个系统的备份,这种情况下,当所有系统切换完成且均没有启动成功时,则选择(按照系统标记顺序或随机选择)一个系统备份进行恢复和启动;如该系统仍无法启动时,则切换(按照顺序或随机的原则)其它系统备份进行恢复和启动。
[0030]进一步地,还包括:当按照S5步骤所有系统切换完成且都没有启动成功时,uboot判段是否连接网络:如果有连接网络,则连接预设的服务器,通过otg的方式升级某一个系统分区,并启动该系统,如该系统仍无法启动时,则转入下一步恢复步骤;
[0031]如果没有连接网络,则进入系统恢复模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式设备的多系统启动方法,其特征在于,包括如下步骤:S1、给各系统进行编号标记,并将各系统的编号标记记载在存储器件的分区表中,在uboot中创建第一环境变量和第二环境变量,所述第一环境变量用于标记各系统的启动次数,所述第二环境变量用于标记当前启动的系统;S2、引导加载程序BootLoader启动后,读取uboot

env中的环境变量数据,并对读取的数据进行CRC校验,以确保数据读取准确;S3、选择系统进行启动;S4、如选择的系统启动成功,重置第一环境变量的值为零,如未正常启动,则将第一环境变量的值加一,并判断第一环境变量的值是否大于设定值,根据判断情况执行步骤S5或S6,直至系统启动成功;S5、如第一环境变量≥设定值,则切换别的系统继续按照S4步骤进行启动,并重置第一环境变量的值为零;S6、如第一环境变量<设定值,则继续选择该系统并按照S4步骤进行启动。2.根据权利要求1所述的一种嵌入式设备的多系统启动方法,其特征在于,所述系统启动的方法为:根据选择启动的系统,跳转到系统对应的位置进行启动,根据系统存储器件选择不同的跳转启动方式:如系统的存储器件为NAND Flash,则系统启动时,根据flash分区表,找到该系统对应的分区名,选择对应UBI分区进行启动,并将启动参数写入环境变量bootargs中;如系统的存储器件为EMMC,则系统启动时,根据emmc分区表,找到该系统kernel所在的分区,同时找到对应rootfs所在的分区,将rootfs的信息写入环境变量bootargs中,启动kernel后,kernel通过BootLoader传入的cmdline找到对应rootfs的位置并继续启动。3.根据权利要求1所述的一种嵌入式设备的多系统启动方法,其特征在于,当选择系统或切换系统进行启动时,根据第二环境变量的值选择系统或切换系统。4.根据权利要求1所述的一种嵌入式设备的多系统启动方法,其特征在于,还包括:在uboot中创建第三环境变量stab_sys,所述第三环境变量stab_sys用于评价各系统的稳定性,当选择系统或切换系统进行启动时,根据第三环境变量的值选择或切换稳定性高的系统;第三环境变量stab_sys的表达式为:其中,K1、K2均为权重系数,m
sys
为该系统的历史启动总次数,a
sys
为该系统的历史启动成功总次数,b
sys
为该系统运行过程中出现故障的历史总次数;当一个系统启动时,该系统的m
sys
值+1,如启动成功,则该系统a
sys
值+1;该系统运行时,如出现故障重启,则该系统的b
sys
值+1。5....

【专利技术属性】
技术研发人员:田萌黄文哲张小峰
申请(专利权)人:上海贝锐信息科技股份有限公司
类型:发明
国别省市:

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

1