一种参数传递的方法和装置转让专利

申请号 : CN201610567374.0

文献号 : CN107632892A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李美锋

申请人 : 深圳市中兴微电子技术有限公司

摘要 :

本发明公开了一种参数传递的方法,在内核程序(Kernel)包中设置参数区,并在所述参数区中预设传递参数信息;所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;引导所述Kernel启动前,根据运行环境修正所述传递参数信息;获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。本发明还公开了一种参数传递的装置。

权利要求 :

1.一种参数传递的方法,其特征在于,所述方法包括:在内核程序Kernel包中设置参数区,并在所述参数区中预设传递参数信息;所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;所述方法还包括:引导所述Kernel启动前,根据运行环境,修正所述传递参数信息;

获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。

2.根据权利要求1所述的方法,其特征在于,所述向所述Kernel包中的Kernel提供运行所需的参数信息,包括:向所述Kernel提供所述Kernel启动过程中的运行环境参数信息、和/或提供所述Kernel运行过程中所需的运行参数信息。

3.根据权利要求1所述的方法,其特征在于,所述根据运行环境修正所述传递参数信息,包括:在系统非易失性存储器中确定用于启动的Kernel包;

根据运行环境修正所述用于启动的Kernel包中的所述传递参数信息。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述传递参数信息中设置第一升级信息;所述第一升级信息用于提供引导程序bootloader升级时所需的信息;

将所述bootloader升级结果信息设置到所述传递参数信息中;

所述第一升级信息包括:第一升级触发标志、和/或第一升级状态标志、和/或第一升级目标文件位置信息、和/或和第一升级目标文件大小信息、和/或第一升级目标分区信息。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述传递参数信息中设置第二升级信息;所述第二升级信息用于提供Kernel升级时所需的信息;

将所述Kernel升级结果信息设置到所述传递参数信息中;

所述第二升级信息包括:第二升级状态标志、和/或第二升级目标分区信息。

6.根据权利要求1所述的方法,其特征在于,所述Kernel在运行过程中设置在所述参数区的Kernel运行信息,包括:所述Kernel在所述参数区保存的重启信息;

所述重启信息包括:重启标志位、和/或重启日志信息;

所述重启标志位用于向bootloader指示系统重启原因。

7.根据权利要求1至6任一项所述的方法,其特征在于,所述传递参数信息还包括:Kernel的编译时间、和/或版本号、和/或版本类型。

8.一种参数传递的装置,其特征在于,所述装置包括:设置模块、修正模块和获取模块;

其中,

所述设置模块,用于在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;

所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;

所述修正模块,用于引导所述Kernel启动前,根据运行环境修正所述传递参数信息;

所述获取模块,用于获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。

9.根据权利要求8所述的装置,其特征在于,所述向所述Kernel包中的Kernel提供运行所需的参数信息,包括:向所述Kernel提供所述Kernel启动过程中的运行环境参数信息、和/或提供所述Kernel运行过程中所需的运行参数信息。

10.根据权利要求8所述的装置,其特征在于,所述修正模块,具体用于:在系统非易失性存储器中确定用于启动的Kernel包;

根据运行环境修正所述用于启动的Kernel包中的所述传递参数信息。

11.根据权利要求8所述的装置,其特征在于,所述设置模块,还用于:在所述传递参数信息中设置第一升级信息;所述第一升级信息用于提供bootloader升级时所需的信息;

将所述bootloader升级结果信息设置到所述传递参数信息中;

所述第一升级信息包括:第一升级触发标志、和/或第一升级状态标志、和/或第一升级目标文件位置信息、和/或和第一升级目标文件大小信息、和/或第一升级目标分区信息。

12.根据权利要求8所述的装置,其特征在于,所述设置模块,还用于:在所述传递参数信息中设置第二升级信息;所述第二升级信息用于提供Kernel升级时所需的信息;

将所述Kernel升级结果信息设置到所述传递参数信息中;

所述第二升级信息包括:第二升级状态标志、和/或第二升级目标分区信息。

13.根据权利要求8所述的装置,其特征在于,所述获取模块,还用于:获取所述Kernel在所述参数区保存的重启信息;

所述重启信息包括:重启标志位、和/或重启日志信息;

所述重启标志位用于向bootloader指示系统重启原因。

14.根据权利要求8至13任一项所述的装置,其特征在于,所述传递参数信息还包括:Kernel的编译时间、和/或版本号、和/或版本类型。

说明书 :

一种参数传递的方法和装置

技术领域

[0001] 本发明涉及操作系统启动引导技术,尤其涉及一种参数传递的方法和装置。

背景技术

[0002] 在传统的操作系统引导过程中,引导程序(bootloader)需要向操作系统内核(Kernel)传递一些必要的参数,比如页面大小、内存的起始地址和大小等运行环境信息;在Linux系统中,这些信息存放在tag结构体中。
[0003] 现有的参数传递机制中,参数的格式相对固定,不方便对参数进行个性化定制;参数的传递对象仅限于Kernel,没有实现Kernel之外的其它模块获得这些参数的方法;并且,参数传递是单向的,即只能由bootloader向Kernel传递参数,Kernel不能向bootloader传递参数。
[0004] 因此,如何实现bootloader和Kernel之间的参数双向传递,实现参数传递定制化,提高参数传递灵活性,是亟待解决的问题。

发明内容

[0005] 有鉴于此,本发明实施例期望提供一种参数传递的方法和装置,能实现bootloader和Kernel之间的参数双向传递,实现参数传递定制化,提高参数传递灵活性。
[0006] 为达到上述目的,本发明的技术方案是这样实现的:
[0007] 本发明实施例提供了一种参数传递的方法,所述方法包括:在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;所述方法还包括:
[0008] 引导所述Kernel启动前,根据运行环境,修正所述传递参数信息;
[0009] 获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。
[0010] 上述方案中,所述向所述Kernel包中的Kernel提供运行所需的参数信息,包括:
[0011] 向所述Kernel提供所述Kernel启动过程中的运行环境参数信息、和/或提供所述Kernel运行过程中所需的运行参数信息。
[0012] 上述方案中,所述根据运行环境修正所述传递参数信息,包括:
[0013] 在系统非易失性存储器中确定用于启动的Kernel包;
[0014] 根据运行环境修正所述用于启动的Kernel包中的所述传递参数信息。
[0015] 上述方案中,所述方法还包括:
[0016] 在所述传递参数信息中设置第一升级信息;所述第一升级信息用于提供bootloader升级时所需的信息;
[0017] 将所述bootloader升级结果信息设置到所述传递参数信息中;
[0018] 所述第一升级信息包括:第一升级触发标志、和/或第一升级状态标志、和/或第一升级目标文件位置信息、和/或和第一升级目标文件大小信息、和/或第一升级目标分区信息。
[0019] 上述方案中,所述方法还包括:
[0020] 在所述传递参数信息中设置第二升级信息;所述第二升级信息用于提供Kernel升级时所需的信息;
[0021] 将所述Kernel升级结果信息设置到所述传递参数信息中;
[0022] 所述第二升级信息包括:第二升级状态标志、和/或第二升级目标分区信息。
[0023] 上述方案中,所述Kernel在运行过程中设置在所述参数区的Kernel运行信息,包括:所述Kernel在所述参数区保存的重启信息;
[0024] 所述重启信息包括:重启标志位、和/或重启日志信息;
[0025] 所述重启标志位用于向bootloader指示系统重启原因。
[0026] 上述方案中,所述传递参数信息还包括:Kernel的编译时间、和/或版本号、和/或版本类型。
[0027] 本发明实施例还提供了一种参数传递的装置,所述装置包括:设置模块、修正模块和获取模块;其中,
[0028] 所述设置模块,用于在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;
[0029] 所述修正模块,用于引导所述Kernel启动前,根据运行环境修正所述传递参数信息;
[0030] 所述获取模块,用于获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。
[0031] 上述方案中,所述向所述Kernel包中的Kernel提供运行所需的参数信息,包括:
[0032] 向所述Kernel提供所述Kernel启动过程中的运行环境参数信息、和/或提供所述Kernel运行过程中所需的运行参数信息。
[0033] 上述方案中,所述修正模块,具体用于:
[0034] 在系统非易失性存储器中确定用于启动的Kernel包;
[0035] 根据运行环境修正所述用于启动的Kernel包中的所述传递参数信息。
[0036] 上述方案中,所述设置模块,还用于:
[0037] 在所述传递参数信息中设置第一升级信息;所述第一升级信息用于提供bootloader升级时所需的信息;
[0038] 将所述bootloader升级结果信息设置到所述传递参数信息中;
[0039] 所述第一升级信息包括:第一升级触发标志、和/或第一升级状态标志、和/或第一升级目标文件位置信息、和/或和第一升级目标文件大小信息、和/或第一升级目标分区信息。
[0040] 上述方案中,所述设置模块,还用于:在所述传递参数信息中设置第二升级信息;所述第二升级信息用于提供Kernel升级时所需的信息;
[0041] 将所述Kernel升级结果信息设置到所述传递参数信息中;
[0042] 所述第二升级信息包括:第二升级状态标志、和/或第二升级目标分区信息。
[0043] 上述方案中,所述获取模块,还用于:获取所述Kernel在所述参数区保存的重启信息;
[0044] 所述重启信息包括:重启标志位、和/或重启日志信息;
[0045] 所述重启标志位用于向bootloader指示系统重启原因。
[0046] 上述方案中,所述传递参数信息还包括:Kernel的编译时间、和/或版本号、和/或版本类型
[0047] 本发明实施例所提供的参数传递的方法和装置,在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;引导所述Kernel启动前,bootloader根据运行环境修正所述传递参数信息;bootloader获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。如此,bootloader和Kernel可以在参数区实现参数的双向传递,并通过预设传递参数信息,实现参数传递的定制化,提高参数传递灵活性。

附图说明

[0048] 图1为本发明实施例参数传递的方法的流程示意图;
[0049] 图2为本发明实施例Kernel包的组成结构示意图;
[0050] 图3为本发明实施例bootloader升级步骤流程示意图;
[0051] 图4为本发明实施例Kernel升级步骤流程示意图;
[0052] 图5为本发明实施例参数传递的装置的组成结构示意图。

具体实施方式

[0053] 本发明实施例中,在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;引导所述Kernel启动前,根据运行环境修正所述传递参数信息;获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息。
[0054] 下面结合实施例对本发明再作进一步详细的说明。
[0055] 本发明实施例提供的参数传递的方法,如图1所示,所述方法包括:
[0056] 步骤101:在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;
[0057] 这里,所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;
[0058] 通常,在编译生成标准Kernel后,结合幻数,将两者的结合文件烧录到Flash等系统的非易失性存储器中,在系统启动时由bootloader引导所述Kernel启动;这里,将幻数和Kernel两者的结合文件为Kernel包;存储器中可以存储1个以上的Kernel包;其中,所述幻数由一组特定的数组成,bootloader可以通过幻数区分不同的Kernel包,在FLASH中查找到有效的Kernel包;
[0059] 如图2所示,可以在所述Kernel包中设置参数区;可以将所述参数区设置在所述幻数和Kernel之间,所述参数区成为所述Kernel包的文件头;在所述参数区可以预先根据Kernel启动或运行时需要参数设置传递参数信息;所述传递参数信息可以设置成初始化状态;
[0060] 进一步的,所述传递参数信息包括:所述Kernel启动过程中的运行环境参数信息、和/或提供所述Kernel运行过程中所需的运行参数信息;这里,所述运行环境参数信息包括:内存页面大小、内存的起始地址和大小等;所述运行参数信息包括针对不同Kernel在运行过程中所需的参数信息,如存储器分区占用情况等;所述传递参数信息还可以包括:Kernel的编译时间、和/或版本号、和/或版本类型等一些定制化的参数信息。
[0061] 实际应用中,可以将所述传递参数信息以文件的形式和所述幻数和Kernel一起合并成为最终的烧录文件;如在Linux系统中,首先可以编译生成标准Kernel,Linux系统环境下为uImage;再准备传递参数信息文件,该文件包含了要传递的参数的初始值;然后运行buildImage等文件处理工具,将传递参数信息文件以文件头形式与uImage和幻数合并成烧录文件;最后,将烧录文件烧录到FLASH等存储器。
[0062] 由于,所述参数区存在于存储器中,因此,在系统运行过程中,其他模块也可以读取参数区的传递参数信息;解决了bootloader传递给Kernel的参数其他模块无法获取的问题。
[0063] 步骤102:引导所述Kernel启动前,根据运行环境修正所述传递参数信息;
[0064] 系统启动后,由bootloader引导Kernel启动;bootloader遍历存储器,查找所有可用的Kernel,并确定需要启动的Kernel;这里,可以根据传递参数信息中的Kernel版本号来确定需要启动的Kernel;确定需要启动的Kernel后,bootloader可以在存储器中读取需要启动的Kernel所属的Kernel包中的参数区,确定参数区的传递参数信息,获取Kernel启动所需的参数信息;bootloader可以根据当前的运行环境等信息,修改所述传递参数信息;如可以根据当前系统的双倍速率同步动态随机存储器(DDR SD-RAM,Double Data Rate Synchronous Dynamic-Random Access Memory)等随机存储器的页面大小、起始地址和大小等参数信息,修正所述传递参数信息中处于初始状态的随机存储器参数信息;
[0065] 完成传递参数信息修改后,bootloader将需要启动的Kernel搬运到DDR SD-RAM等内存中,并引导所述Kernel启动;
[0066] Kernel启动后,读取与自身对应Kernel包中的参数区的传递参数信息,从而获取了bootloader传递的参数。
[0067] 步骤103:获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息;
[0068] 这里,在Kernel运行过程中,可以将运行过程中的Kernel运行信息,如运行标志信息或日志信息,存储到自身对应的参数区中,当系统重启后bootloader可以在所述参数区获取所述Kernel运行信息,并作相应处理;如此,完成了Kernel对bootloader的信息传递;
[0069] 如在Kernel运行过程中,系统出现重启;通常,bootloader无法获知重启原因,因此也无法做出处理;这里,Kernel在重启前可以在参数区设置重启标志位,通过重启标志位告知bootloader重启的原因,如用户指示重启、Kernel升级完成重启、系统崩溃重启等;并且可以将重启时的日志存储到参数区,bootloader可以通过重启日志确定问题,并作相应处理,如重新分配内存等。
[0070] 进一步的,还可以在所述参数区传递参数信息中设置第一升级信息;所述第一升级信息用于提供bootloader升级时所需的信息;所述第一升级信息包括:第一升级触发标志、和/或第一升级状态标志、和/或第一升级目标文件位置信息、和/或和第一升级目标文件大小信息、和/或第一升级目标分区信息;这里,所述第一升级信息可以是预先在烧录Kernel包的时候烧录的,也可以是在系统运行后设置的;在系统重启后bootloader获取第一升级信息,进行bootloader升级;
[0071] 具体的,如图3所示,bootloader根据所述第一升级信息进行升级包括以下步骤:
[0072] 步骤301,判断参数区传递参数信息中的第一升级触发标志,这里,第一升级触发标志可以采用upgrade_flag表示;如果upgrade_flag=0,则表示bootloader不需要升级,可以修正传递参数信息并引导Kernel启动流程;如果upgrade_flag=1,则触发bootloader升级流程,转到步骤302;
[0073] 步骤302,读取bootloader升级所需的参数信息,包括bootloader升级状态标志、升级目标文件所在分区位置和文件大小、升级目标分区信息等;
[0074] 步骤303,读取并检查升级目标文件是否为有效版本,如果为有效版本,执行烧录程序,将该版本烧录到升级目标分区;
[0075] 步骤304,如果烧录成功,将bootloader升级状态标志置升级完成;如果烧录失败,将bootloader升级状态标志置升级失败;
[0076] 步骤305,最后,将bootloader升级结果信息,如bootloader升级状态标志等,写入到参数区的传递参数信息中,Kernel或其他模块可以通过读取传递参数信息获取所述bootloader升级结果。
[0077] 进一步的,还可以参数区传递参数信息中设置第二升级信息;所述第二升级信息用于提供Kernel升级时所需的信息;所述第二升级信息包括:第二升级状态标志、和/或第二升级目标分区信息等;
[0078] 具体的,如图4所示,根据所述第二升级信息进行Kernel升级包括以下步骤:
[0079] 步骤401:系统运行中如果触发了Kernel升级进程,则进入步骤402;
[0080] 步骤402:下载新版本Kernel包到内存;
[0081] 步骤403:读取新版本Kernel包参数区的传递参数信息,可以通过版本号等信息检查该版本是否为有效的可升级版本;
[0082] 步骤404:如果为有效可升级版本,烧录新版本Kernel包到传递参数信息中规定的目标分区;
[0083] 步骤405:烧录完成,将所述升级状态标志置为1,表明升级成功,将所述Kernel升级结果信息,如Kernel升级状态标志等,写入到参数区的传递参数信息中,供后续bootloader等读取。
[0084] 本发明实施例提供的参数传递的方法,如图5所示,所述装置包括:设置模块51、修正模块52和获取模块53;其中,
[0085] 所述设置模块51,用于在Kernel包中设置参数区,并在所述参数区中预设传递参数信息;
[0086] 这里,所述传递参数信息用于向所述Kernel包中的Kernel提供运行所需的参数信息;
[0087] 通常,在编译生成标准Kernel后,结合幻数,将两者的结合文件烧录到Flash等存储器中,在系统启动时由bootloader引导所述Kernel启动;这里,将幻数和Kernel两者的结合文件为Kernel包;存储器中可以存储1个以上的Kernel包;其中,所述幻数由一组特定的数组成,bootloader可以通过幻数区分不同的Kernel包,在FLASH中查找到有效的Kernel包;
[0088] 如图2所示,可以在所述Kernel包中设置参数区;可以将所述参数区设置在所述幻数和Kernel之间,所述参数区成为所述Kernel包的文件头;在所述参数区可以预先根据Kernel启动或运行时需要参数设置传递参数信息;所述传递参数信息可以设置成初始化状态;
[0089] 进一步的,所述传递参数信息包括:所述Kernel启动过程中的运行环境参数信息、和/或提供所述Kernel运行过程中所需的运行参数信息;这里,所述运行环境参数信息包括:内存页面大小、内存的起始地址和大小等;所述运行参数信息包括针对不同Kernel在运行过程中所需的参数信息,如存储器分区占用情况等;所述传递参数信息还可以包括:Kernel的编译时间、和/或版本号、和/或版本类型等一些定制化的参数信息。
[0090] 实际应用中,可以将所述传递参数信息以文件的形式和所述幻数和Kernel一起合并成为最终的烧录文件;如在Linux系统中,首先可以编译生成标准Kernel,Linux系统环境下为uImage;再准备传递参数信息文件,该文件包含了要传递的参数的初始值;然后运行buildImage等文件处理工具,将传递参数信息文件以文件头形式与uImage和幻数合并成烧录文件;最后,将烧录文件烧录到FLASH等存储器。
[0091] 由于,所述参数区存在于存储器中,因此,在系统运行过程中,其他模块也可以读取参数区的传递参数信息;解决了bootloader传递给Kernel的参数其他模块无法获取的问题。
[0092] 所述修正模块52,用于引导所述Kernel启动前,根据运行环境修正所述传递参数信息;
[0093] 系统启动后,由bootloader引导Kernel启动;bootloader遍历存储器,查找所有可用的Kernel,并确定需要启动的Kernel;这里,可以根据传递参数信息中的Kernel版本号来确定需要启动的Kernel;确定需要启动的Kernel后,bootloader可以在存储器中读取需要启动的Kernel所属的Kernel包中的参数区,确定参数区的传递参数信息,获取Kernel启动所需的参数信息;bootloader可以根据当前的运行环境等信息,修改所述传递参数信息;如可以根据当前系统的DDR SD-RAM等随机存储器的页面大小、起始地址和大小等参数信息,修正所述传递参数信息中处于初始状态的随机存储器参数信息;
[0094] 完成传递参数信息修改后,bootloader将需要启动的Kernel搬运到DDR SD-RAM等内存中,并引导所述Kernel启动;
[0095] Kernel启动后,读取与自身对应Kernel包中的参数区的传递参数信息,从而获取了bootloader传递的参数。
[0096] 所述获取模块53,用于获取所述Kernel在运行过程中设置在所述参数区的Kernel运行信息;
[0097] 这里,在Kernel运行过程中,可以将运行过程中的Kernel运行信息,如运行标志信息或日志信息存储到自身对应的参数区中,当系统重启后bootloader可以在所述参数区获取所述Kernel运行信息,并作相应处理;如此完成了Kernel对bootloader的信息传递;
[0098] 如在Kernel运行过程中,系统出现重启;通常,bootloader无法获知重启原因,因此也无法做出处理;这里,Kernel在重启前可以在参数区设置重启标志位,通过重启标志位告知bootloader重启的原因,如用户指示重启、Kernel升级完成重启、系统崩溃重启等;并且可以将重启时的日志存储到参数区,bootloader可以通过重启日志确定问题,并作相应处理,如重新分配内存等。
[0099] 进一步的,所述设置模块51还可以在所述参数区传递参数信息中设置第一升级信息;所述第一升级信息用于提供bootloader升级时所需的信息;所述第一升级信息包括:第一升级触发标志、和/或第一升级状态标志、和/或第一升级目标文件位置信息、和/或和第一升级目标文件大小信息、和/或第一升级目标分区信息;这里,所述第一升级信息可以是预先在烧录Kernel包的时候烧录的,也可以是在系统运行后设置的;在系统重启后bootloader获取第一升级信息,进行bootloader升级;
[0100] 具体的,如图3所示,bootloader根据所述第一升级信息进行升级包括以下步骤:
[0101] 步骤301,判断参数区传递参数信息中的第一升级触发标志,这里,第一升级触发标志可以采用upgrade_flag表示;如果upgrade_flag=0,则表示bootloader不需要升级,可以修正传递参数信息并引导Kernel启动流程;如果upgrade_flag=1,则触发bootloader升级流程,转到步骤302;
[0102] 步骤302,读取bootloader升级所需的参数信息,包括bootloader升级状态标志、升级目标文件所在分区位置和文件大小、升级目标分区信息等;
[0103] 步骤303,读取并检查升级目标文件是否为有效版本,如果为有效版本,执行烧录程序,将该版本烧录到升级目标分区;
[0104] 步骤304,如果烧录成功,将bootloader升级状态标志置升级完成;如果烧录失败,将bootloader升级状态标志置升级失败;
[0105] 步骤305,最后,将bootloader升级结果信息,如bootloader升级状态标志等,写入到参数区的传递参数信息中,Kernel或其他模块可以通过读取传递参数信息获取所述bootloader升级结果。
[0106] 进一步的,所述设置模块51还可以参数区传递参数信息中设置第二升级信息;所述第二升级信息用于提供Kernel升级时所需的信息;所述第二升级信息包括:第二升级状态标志、和/或第二升级目标分区信息等;
[0107] 具体的,如图4所示,根据所述第二升级信息进行Kernel升级包括以下步骤:
[0108] 步骤401:系统运行中如果触发了Kernel升级进程,则进入步骤402;
[0109] 步骤402:下载新版本Kernel包到内存;
[0110] 步骤403:读取新版本Kernel包参数区的传递参数信息,可以通过版本号等信息检查该版本是否为有效的可升级版本;
[0111] 步骤404:如果为有效可升级版本,烧录新版本Kernel包到传递参数信息中规定的目标分区;
[0112] 步骤405:烧录完成,将所述升级状态标志置为1,表明升级成功,将所述Kernel升级结果信息,如Kernel升级状态标志等,写入到参数区的传递参数信息中,供后续bootloader等读取。
[0113] 在实际应用中,设置模块51可以由外部电脑系统等实现;修正模块52和获取模块53可以由操作系统所在系统的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。
[0114] 以上所述,仅为本发明的最佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。