System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 镜像处理方法及装置制造方法及图纸_技高网

镜像处理方法及装置制造方法及图纸

技术编号:42581548 阅读:15 留言:0更新日期:2024-08-29 00:43
本公开提供一种镜像处理方法及装置,涉及数据处理领域,能够为系统节省大量的存储空间,改善用户的体验。具体技术方案为:生成多个分区的镜像;对多个分区中各个分区的镜像分别进行压缩;通过压缩之后的多个分区的镜像生成升级文件;根据升级文件的头部信息,通过与压缩对应的解压缩处理需要升级的分区的镜像,得到目标数据,头部信息的各个分区与多个分区中的各个分区一一对应,需要升级的分区属于多个分区,目标数据包含经过解压缩处理之后的需要升级的分区的镜像。本公开不仅生成的升级文件体积较小,使得嵌入式设备所需的容纳升级文件的存储空间将大大减小;而且由于文件的体积变小,文件上传的速度将大幅提升。

【技术实现步骤摘要】

本公开涉及数据处理领域,尤其涉及一种镜像处理方法及装置


技术介绍

1、当前,随着技术和功能日新月异的发展,嵌入式系统也越来越庞大和复杂。

2、然而,在嵌入式系统升级的过程中,一般会直接将分区镜像进行打包,但是这样会浪费很多的存储空间。对于一般的嵌入式linux设备,bootloader文件和kernel文件在编译打包时,由于已经经过压缩,所以占用的空间比较小;rootfs系统和用户分区系统与实际应用息息相关,当功能庞大复杂时,文件系统分区的镜像将非常大,进而占用的存储空间很大;同时,当上传升级文件时,耗费的时间也会很长。


技术实现思路

1、本公开实施例提供一种镜像处理方法及装置,能够为系统节省大量的存储空间,提升文件上传的速度,改善用户的体验。技术方案如下:

2、根据本公开实施例的第一方面,提供一种镜像处理方法,该方法包括:生成多个分区的镜像;对多个分区中各个分区的镜像分别进行压缩;通过压缩之后的多个分区的镜像生成升级文件;根据升级文件的头部信息,通过与压缩对应的解压缩处理需要升级的分区的镜像,得到目标数据,头部信息的各个分区与多个分区中的各个分区一一对应,需要升级的分区属于多个分区,目标数据包含经过解压缩处理之后的需要升级的分区的镜像。

3、具体地,首先,可以编译好启动装载(bootloader)、内核(kernel)以及相应的应用程序等,制作rootfs、csvapp、vmsapp以及相应的备份分区和数据分区的镜像,生成多个分区的镜像。p>

4、接着,可以对多个分区中各个分区的镜像通过lzma(lempel-ziv-markov chain-algorithm)的方式进行压缩。

5、此后,在上述的文件头部之后,将经过压缩的各个分区的镜像文件进行拼接,形成一个包含各个分区镜像信息的大包文件,即,升级文件,该文件用于文件升级。

6、最后,可以遍历升级文件中头部所有对应的分区镜像,得到需要升级的分区的镜像,根据压缩之后的镜像大小以及偏移地址,将经过压缩的需要升级的分区中的所有分区的镜像数据取出来,使用与该压缩方法相对应的解压缩方法,进行解压缩,得到经过解压缩的目标数据。其中,如果在遍历升级文件中头部所有对应的分区镜像的过程中,遇到某个分区不需要升级,则自动跳转到下一个分区的镜像。

7、应理解,本申请实施例和嵌入式设备的实际应用强相关。因此,在上述方案(即,镜像打包阶段)中,需要实际考虑flash的实际规划。

8、基于上述方案,不仅生成的升级文件体积较小,针对于nand设备的yaffs文件系统,相较于未压缩的文件系统,压缩后体积为原来的三分之一,使得嵌入式设备所需的容纳升级文件的存储空间将大大减小;而且由于文件的体积变小,文件上传的速度将大幅提升。

9、在一些实施例中,方法还包括:生成头部信息,头部信息包括多个分区中的每个分区的镜像的名称、大小、偏移地址、校验和,以及是否需要升级的标志。

10、具体地,可以生成升级文件的文件头部信息,该头部信息包括多个分区中的每个分区的镜像的名称、大小、偏移地址、校验和checksum,以及是否需要升级的标志,等。头部的各个分区的定义需要和正在实施的项目上的分区完全一致,即,头部信息的各个分区与多个分区中的各个分区一一对应。

11、在一些实施例中,方法还包括:根据已写入的升级标志,通过多个分区的镜像判断是否需要升级。

12、具体地,该步骤主要的工作在于启动装载(bootloader)根据已写入的升级标志,判断是否需要执行升级操作,如果不需要升级,则按照既有流程启动下一阶段镜像;如果需要升级,则进入升级流程。

13、在一些实施例中,方法还包括:在需要升级的情况下,将升级文件发送至目标分区,并向启动装载(bootloader)的参数(param)分区写入升级标志。

14、具体地,该步骤主要是在需要升级的情况下,将上述生成的升级文件通过网络或者通用串行总线(universal serial bus,usb)等媒介上传至嵌入式设备的某个分区(即,目标分区)内,同时向启动装载(bootloader)的参数(param)分区写入升级标志。

15、在一些实施例中,方法还包括:对目标数据进行检验;当目标分区的镜像的校验和与目标分区的镜像对应的头部信息的校验和一致,根据目标分区的镜像进行升级,目标分区为需要升级的分区中的任一分区。

16、其中,对目标数据进行检验,是指在目标数据包含的解压缩处理之后的需要升级的分区的镜像中,依次检验每一个需要升级的分区的镜像。

17、举例而言,在解压缩完成之后,需要对目标数据进行检验。当目标数据中的目标分区的镜像的校验和(checksum)与目标分区的镜像对应的头部信息的校验和(checksum),则表明文件解析正确,可以进行下一步操作,即,根据目标分区的镜像进行升级;否则,直接退出升级操作。

18、在一些实施例中,根据目标分区的镜像进行升级,包括:通过目标分区的镜像进行分区的擦除和写。

19、举例而言,可以将解压缩之后的镜像数据通过驱动接口写入nandflash,具体操作可能包括了分区的擦除和写的动作。

20、在一些实施例中,方法还包括:擦除头部信息中包含的需要升级的标志。

21、具体地,当执行完上述步骤之后,升级动作基本完成,此时需要将头部信息中包含的需要升级的标志进行清除,否则系统每次启动之后都会进行升级操作。

22、在一些实施例中,方法还包括:统计压缩之后的多个分区中各个分区的镜像的大小。

23、在一些实施例中,方法还包括:计算多个分区中各个分区的镜像的校验和;统计多个分区中各个分区的镜像的大小。

24、具体地,可以计算得到上述步骤生成的多个分区中的各个分区镜像的校验和(checksum),并统计多个分区中的各个分区镜像文件的大小。

25、在一些实施例中,方法还包括:下载目标数据;安装目标数据,并重启设备。

26、具体地,下载升级文件(即,目标数据)并完成下载之后,可以自动在共享式零终端本地进行安装,并在安装完成后,进行重启。在实际实现的过程中,当软件升级完成之后,需要重启设备。

27、根据本公开实施例的第二方面,提供一种镜像处理设备,包括存储器和处理器。存储器拥有存储程序。当程序在处理器中执行时,处理器用于执行第一方面及第一方面任一实施例的方法。

28、基于上述设备,不仅生成的升级文件体积较小,针对于nand设备的yaffs文件系统,相较于未压缩的文件系统,压缩后体积为原来的三分之一,使得嵌入式设备所需的容纳升级文件的存储空间将大大减小;而且由于文件的体积变小,文件上传的速度将大幅提升。

29、根据本公开实施例的第三方面,提供一种镜像处理装置,包括:第一生成模块,用于生成多个分区的镜像;压缩模块,用于对多个分区中各个本文档来自技高网...

【技术保护点】

1.一种镜像处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述根据所述目标分区的镜像进行升级,包括:

7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:

【技术特征摘要】

1.一种镜像处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要...

【专利技术属性】
技术研发人员:陈和登
申请(专利权)人:西安万像电子科技有限公司
类型:发明
国别省市:

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

1