发明内容
本发明要解决的技术问题是为了克服现有技术中嵌入式双系统的更新方式复杂、在双系统更新时操作复杂耗时较长、加重了技术人员的负担的缺陷,提供一种更新方式灵活、合理利用存储设备的空间的嵌入式双系统的更新方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
一种嵌入式双系统的更新方法,其特点在于,该嵌入式双系统包括一存储设备,该存储设备用于存储镜像文件,该镜像文件包括启动信息、bootloader镜像文件、第一系统的内核及根文件和第二系统的内核及根文件,该启动信息中还包括存储设备配置信息,该存储设备配置信息包括存储设备分区信息,该嵌入式双系统的更新方法包括以下步骤:
步骤S1、在bootloader模式下接收并解析更新指令以获得更新模式以及更新的镜像文件;
步骤S2、判断该更新模式是否为镜像文件整体更新模式,若是,进入步骤S3;若否,进入步骤S4;
步骤S3、读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区;
步骤S4、将该更新的镜像文件中与该更新模式一一对应的部分写入该存储设备中与该更新模式一一对应的分区中。
优选地,该存储设备分区包括:启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区。
优选地,当该更新模式为该镜像文件整体更新模式时,
步骤S3中读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区为启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区;
步骤S4中将该更新的镜像文件中的存储设备配置信息写入该启动信息分区、将bootloader镜像文件写入该bootloader分区、将第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中,或者,
当该更新模式为启动信息更新模式时,
步骤S4中将该更新的镜像文件中的存储设备配置信息写入该启动信息分区中,或者,
当该更新模式为bootloader镜像更新模式时,
步骤S4中将该更新的镜像文件中的bootloader镜像文件写入该bootloader分区中,或者,
当该更新模式为内核及根文件更新模式时,
步骤S4中将该更新的镜像文件中的第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中。
优选地,该启动信息中还包括该bootloader镜像文件的起始地址及占用的地址空间大小、该第一系统的内核及根文件的启动地址、该第一系统的内核及根文件的校验值、该第一系统的内核及根文件的占用的地址空间大小、该第二系统的内核及根文件的启动地址、该第二系统的内核及根文件的校验值、该第二系统的内核及根文件的占用的地址空间大小。
优选地,该存储设备为一flash设备。
本发明还提供一种嵌入式双系统的更新系统,其特点在于,该嵌入式双系统包括一存储设备,该存储设备用于存储镜像文件,该镜像文件包括启动信息、bootloader镜像文件、第一系统的内核及根文件和第二系统的内核及根文件,该启动信息中还包括存储设备配置信息,该存储设备配置信息包括存储设备分区信息,该嵌入式双系统的更新系统还包括:
一输入装置,用于在bootloader模式下接收并解析更新指令以获得更新模式以及更新的镜像文件;
一控制装置,用于判断该更新模式是否为镜像文件整体更新模式,若是,则启用一分区装置;若否,启用一更新装置;
该分区装置用于读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区;
该更新装置用于将该更新的镜像文件中与该更新模式一一对应的部分写入该存储设备中与该更新模式一一对应的分区中。
优选地,该存储设备分区包括:启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区。
优选地,当该更新模式为该镜像文件整体更新模式时,
该分区装置用于读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区为启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区;
该更新装置用于将该更新的镜像文件中的存储设备配置信息写入该启动信息分区、将bootloader镜像文件写入该bootloader分区、将第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中,或者,
当该更新模式为启动信息更新模式时,
该更新装置用于将该更新的镜像文件中的存储设备配置信息写入该启动信息分区中,或者,
当该更新模式为bootloader镜像更新模式时,
该更新装置用于将该更新的镜像文件中的bootloader镜像文件写入该bootloader分区中,或者,
当该更新模式为内核及根文件更新模式时,
该更新装置用于将该更新的镜像文件中的第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中。
优选地,该启动信息中还包括该bootloader镜像文件的起始地址及占用的地址空间大小、该第一系统的内核及根文件的启动地址、该第一系统的内核及根文件的校验值、该第一系统的内核及根文件的占用的地址空间大小、该第二系统的内核及根文件的启动地址、该第二系统的内核及根文件的校验值、该第二系统的内核及根文件的占用的地址空间大小。
优选地,该存储设备为一flash设备。
本发明的积极进步效果在于:
1、提供了可以及时更新的嵌入式双系统的更新方法及系统,其可以简单灵活的方式来更新任何所需要的部分镜像或者整个镜像,成功地解决了技术人员在更新系统镜像时所面临的操作复杂、花费时间较长的问题,提高了生产效率。
2、有效合理的利用了存储设备(例如一flash)的空间,由于双系统共同使用一个bootloader镜像而为存储设备节省了很多空间。同时flash设备的信息分区提供了一个很好的设置系统启动状态的平台。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
参考图1,本发明所述的嵌入式双系统的更新方法,该嵌入式双系统包括一存储设备,该存储设备用于存储镜像文件,该镜像文件包括启动信息、bootloader镜像文件、第一系统的内核及根文件和第二系统的内核及根文件,该启动信息中还包括存储设备配置信息,该存储设备配置信息包括存储设备分区信息,该嵌入式双系统的更新方法包括以下步骤:
步骤S1、在bootloader模式下接收并解析更新指令以获得更新模式以及更新的镜像文件;
步骤S2、判断该更新模式是否为镜像文件整体更新模式,若是,进入步骤S3;若否,进入步骤S4;
步骤S3、读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区;
步骤S4、将该更新的镜像文件中与该更新模式一一对应的部分写入该存储设备中与该更新模式一一对应的分区中。
具体来说,该存储设备分区包括:启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区。
更具体地,针对各种不同的更新模式,
当该更新模式为该镜像文件整体更新模式时,
步骤S3中读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区为启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区;
步骤S4中将该更新的镜像文件中的存储设备配置信息写入该启动信息分区、将bootloader镜像文件写入该bootloader分区、将第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中,或者,
当该更新模式为启动信息更新模式时,
步骤S4中将该更新的镜像文件中的存储设备配置信息写入该启动信息分区中,或者,
当该更新模式为bootloader镜像更新模式时,
步骤S4中将该更新的镜像文件中的bootloader镜像文件写入该bootloader分区中,或者,
当该更新模式为内核及根文件更新模式时,
步骤S4中将该更新的镜像文件中的第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中。
其中,该启动信息中还包括该bootloader镜像文件的起始地址及占用的地址空间大小、该第一系统的内核及根文件的启动地址、该第一系统的内核及根文件的校验值、该第一系统的内核及根文件的占用的地址空间大小、该第二系统的内核及根文件的启动地址、该第二系统的内核及根文件的校验值、该第二系统的内核及根文件的占用的地址空间大小。
在本实施例中,该存储设备为一flash设备。
参考图2,本发明所述的嵌入式双系统的更新系统,该嵌入式双系统包括一存储设备1,该存储设备用于存储镜像文件,该镜像文件包括启动信息、bootloader镜像文件、第一系统的内核及根文件和第二系统的内核及根文件,该启动信息中还包括存储设备配置信息,该存储设备配置信息包括存储设备分区信息,该嵌入式双系统的更新系统还包括:
一输入装置2,用于在bootloader模式下接收并解析更新指令以获得更新模式以及更新的镜像文件;
一控制装置3,用于判断该更新模式是否为镜像文件整体更新模式,若是,则启用一分区装置4;若否,启用一更新装置5;
该分区装置4用于读取该更新的镜像文件中的存储设备分区信息并将该存储设备1重新分区;
该更新装置5用于将该更新的镜像文件中与该更新模式一一对应的部分写入该存储设备1中与该更新模式一一对应的分区中。
具体来说,该存储设备分区包括:启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区。
更具体地,针对各种不同的更新模式,
当该更新模式为该镜像文件整体更新模式时,
该分区装置4用于读取该更新的镜像文件中的存储设备分区信息并将该存储设备重新分区为启动信息分区、bootloader分区、第一系统镜像分区和第二系统镜像分区;
该更新装置5用于将该更新的镜像文件中的存储设备配置信息写入该启动信息分区、将bootloader镜像文件写入该bootloader分区、将第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中,或者,
当该更新模式为启动信息更新模式时,
该更新装置5用于将该更新的镜像文件中的存储设备配置信息写入该启动信息分区中,或者,
当该更新模式为bootloader镜像更新模式时,
该更新装置5用于将该更新的镜像文件中的bootloader镜像文件写入该bootloader分区中,或者,
当该更新模式为内核及根文件更新模式时,
该更新装置5用于将该更新的镜像文件中的第一系统的内核及根文件写入该第一系统镜像分区以及将第二系统的内核及根文件写入该第二系统镜像分区中。
其中,该启动信息中还包括该bootloader镜像文件的起始地址及占用的地址空间大小、该第一系统的内核及根文件的启动地址、该第一系统的内核及根文件的校验值、该第一系统的内核及根文件的占用的地址空间大小、该第二系统的内核及根文件的启动地址、该第二系统的内核及根文件的校验值、该第二系统的内核及根文件的占用的地址空间大小。
在本实施例中该存储设备1为一flash设备。
接下来,以一嵌入式双系统的启动的完整流程为例进一步说明本发明的技术方案,下文中为了描述上的便利,将双系统分别称作系统A和系统B。
该嵌入式双系统包括嵌入式双系统的镜像文件(在本发明中是否系统A和系统B共用一个bootloader镜像文件),而启动流程中包括默认系统引导方法以及更新方式的系统引导方法。所述的镜像文件由启动信息部分,bootloader镜像部分和内核及其根文件镜像部分组成(内核及其根文件镜像二者合起来的作用相当于PC机的操作系统软件)。启动信息部分包括flash配置信息,bootloader镜像启始地址及占用的地址空间大小,系统镜像启动地址、系统镜像校验值以及系统镜像占用的地址空间大小(在这里,系统镜像指的是内核及其根文件镜像)。
所述的flash配置信息包括flash设备分区信息,系统镜像A的启动地址和系统镜像B的启动地址。
所述的flash设备包括bootloader分区(bootloader分区用于存放bootloader镜像文件),启动信息分区,系统镜像A分区,系统镜像B分区,环境变量分区(其中环境变量分区用于存放系统启动的一些参数)以及保留分区。
所述的默认系统引导方法的流程是,首先获取信息分区中关于启动系统的信息,判断系统选择从哪一个镜像分区启动,然后读取启动信息中相对应的启动地址以及镜像的校验值。校验镜像的校验值如果正确,程序就会跳转到读取到的启动地址处去运行;如果不正确,则选择另外一个镜像分区启动,并读取启动信息分区中其对应的启动地址,校验镜像的校验值,如果正确,程序到读取的启动地址处去运行。如果两个系统都不能正常启动,或者校验镜像的校验值都不正确,系统进入命令模式等待输入更新命令进入更新方式的系统引导。
所述的更新方式的系统引导方法包括更新命令,更新模式和系统引导方式。其中更新模式包括启动信息部分更新模式,bootloader镜像更新模式,内核及其根文件镜像更新模式,整个镜像更新模式。更新方式的系统引导方法具体过程如下,当系统进入命令模式后,输入更新命令及其更新模式后,判断其属于上述的哪一种更新模式:
a)如果属于整个镜像更新模式,读取flash配置信息的flash设备分区信息,将flash设备分为bootloader分区,启动信息分区,系统镜像A分区,系统镜像B分区,环境变量分区以及保留分区(需要其他分区时,只需重新修改嵌入式双系统的镜像文件的flash配置信息然后重新使用更新方式的系统引导方法引导系统),然后将bootloader镜像写入bootloader分区,flash配置信息写入启动信息分区,内核及其根文件镜像写入系统镜像A分区和系统镜像B分区。
b)如果是启动信息部分更新模式,只需将flash配置信息写入启动信息分区。
c)如果是bootloader镜像更新模式,只需将bootloader镜像写入bootloader分区。
d)如果是内核及其根文件镜像更新模式,需将内核及其根文件镜像写入系统镜像A分区和系统镜像B分区。
然后重新启动系统,接着按照默认系统引导方法启动系统。
本发明提供了可以及时更新的嵌入式双系统的更新方法及系统,其可以简单灵活的方式来更新任何所需要的部分镜像或者整个镜像,成功地解决了技术人员在更新系统镜像时所面临的操作复杂、花费时间较长的问题,提高了生产效率。并且有效合理的利用了存储设备(例如一flash)的空间,由于双系统共同使用一个bootloader镜像而为存储设备节省了很多空间。同时flash设备的信息分区提供了一个很好的设置系统启动状态的平台。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。