软件远程升级方法与流程

文档序号:29205286发布日期:2022-03-11 23:47阅读:761来源:国知局
软件远程升级方法与流程

1.本发明涉及软件升级技术领域,尤其涉及一种应用于家用电器的软件远程升级方法和一种应用于待更新设备的软件远程升级方法。


背景技术:

2.目前,为了保证ota升级的顺利执行,通常需要将待更新设备的内存空间分成三个区域:(引导区、下载文件缓存区、工作区),其中,引导区主要功能是系统上电时初始化必要的接口和内存分配,下载文件缓存区主要是存放从云端服务器下载的升级包文件,工作区,也即软件正常运行的区域,主要存放系统正常工作的代码文件。
3.然而,下载文件缓存区和工作区通常需要一样的大小空间,以便文件能直接覆盖更新,但是实际情况下普通单片机的内部flash空间都是有限的,通用的就16k,32k大小,如果需要使用ota功能,则实际整机软件代码则只能使用一半的空间呢,将造成空间利用的浪费和整机的成本上升。


技术实现要素:

4.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种应用于家用电器的软件远程升级方法,能够压缩待更新设备内存空间中的下载文件缓存区,从而,在实现ota功能基础上,最大化利用待更新设备的内存空间,降低待更新设备制造成本。
5.本发明的第二个目的在于提出一种应用于待更新设备的软件远程升级方法。
6.为达到上述目的,本发明第一方面实施例提出的软件远程升级方法,应用于家用电器,所述方法包括以下步骤:获取原文件和更新文件;根据待更新设备的存储方式,对所述原文件和所述更新文件进行区块存储;依次比较每个区块对应的原文件和更新文件以获得差异区块;根据所述差异区块生成差异文件,以便根据所述差异文件对所述待更新设备远程更新。
7.根据本发明实施例的软件远程升级方法,获取原文件和更新文件,并根据待更新设备的存储方式,对原文件和更新文件进行区块存储,然后,依次比较每个区块对应的原文件和更新文件以获得差异区块,以及,根据差异区块生成差异文件,以便根据差异文件对待更新设备远程更新。由此,压缩待更新设备内存空间中的下载文件缓存区,从而,在实现ota功能基础上,最大化利用待更新设备的内存空间,降低待更新设备制造成本。
8.另外,根据本发明第一方面实施例提出的软件远程升级方法,还可以具有如下的附加技术特征:
9.根据本发明的一个实施例,所述根据待更新设备的存储方式,对所述原文件和所述更新文件进行区块存储,包括:获取所述待更新设备中寄存器的区块大小;根据所述寄存器的区块大小,对所述原文件和所述更新文件进行区块存储。
10.根据本发明的一个实施例,所述依次比较每个区块对应的原文件和更新文件以获
得差异区块,包括:依次比较每个区块对应的原文件和更新文件;如果所述原文件与所述更新文件不同,则将该区块设置为差异区块。
11.根据本发明的一个实施例,在根据待更新设备的存储方式,对所述原文件和所述更新文件进行区块存储时,所述方法还包括:按照所述原文件或所述更新文件的内容顺序对所述区块进行编号。
12.根据本发明的一个实施例,所述根据所述差异区块生成差异文件,包括:获取所述差异区块的总个数、每个所述差异区块的编号和差异区块内容;根据所述差异区块的总个数、每个所述差异区块的编号和所述差异区块内容生成所述差异文件,并对所述差异文件添加文件头。
13.为达到上述目的,本发明第二方面实施例提出的软件远程升级方法,应用于待更新设备,所述方法包括以下步骤:获取差异文件,其中,所述差异文件根据所述待更新设备的存储方式对原文件和更新文件进行区块存储,并依次比较每个区块对应的原文件和更新文件得到差异区块,以及根据所述差异区块生成的;根据所述差异文件进行更新。
14.根据本发明实施例的软件远程升级方法,获取差异文件,其中,差异文件根据所述待更新设备的存储方式对原文件和更新文件进行区块存储,并依次比较每个区块对应的原文件和更新文件得到差异区块,以及根据所述差异区块生成的,以及,根据差异文件进行更新。由此,压缩待更新设备内存空间中的下载文件缓存区,从而,在实现ota功能基础上,最大化利用待更新设备的内存空间,降低待更新设备制造成本。
15.另外,根据本发明第二方面实施例提出的软件远程升级方法,还可以具有如下的附加技术特征:
16.根据本发明的一个实施例,所述差异文件包括所述差异区块的总个数、每个所述差异区块的编号和差异区块内容,其中,所述根据所述差异文件进行更新,包括:对所述差异文件进行解析,以获得所述差异区块的总个数、每个所述差异区块的编号和所述差异区块内容;根据所述差异区块的总个数获取所述差异区块内容的起始位置;按照所述待更新设备的存储方式从所述起始位置顺序读取所述差异区块内容,并将所述差异区块内容填充至所述差异区块的编号对应的位置。
17.根据本发明的一个实施例,在将所述差异区块内容填充至所述差异区块的编号对应的位置之前,所述方法还包括:获取所述待更新设备的引导区和工作区的起始位置;根据所述引导区和工作区的起始位置获取偏移区块数;根据所述偏移区块数对所述差异区块的编号对应的位置进行调整。
18.根据本发明的一个实施例,所述根据所述引导区和工作区的起始位置获取偏移区块数,包括:获取所述工作区的起始位置与所述引导区的起始位置之间的差值;获取所述差值与所述待更新设备的寄存器的区块大小的比值,以获得所述偏移区块数。
19.根据本发明的一个实施例,所述根据所述偏移区块数对所述差异区块的编号对应的位置进行调整,包括:在所述差异区块的编号上增加所述偏移区块数,以获得调整后的所述差异区块的编号对应的位置。
20.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
21.图1是根据本发明实施例的应用于家用电器的软件远程升级方法的流程示意图;
22.图2是根据本发明一个具体实施例的生成差异文件的流程示意图;
23.图3是根据本发明实施例的应用于待更新设备的软件远程升级方法的流程示意图;
24.图4是根据本发明一个具体实施例的待更新设备ota升级的流程示意图。
具体实施方式
25.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
26.下面参考附图描述本发明实施例的软件远程升级方法。
27.应理解的是,为了保证ota(空中下载)升级的顺利执行,现有技术中的设备至少需要将寄存器的内部空间划分为三个区域:(引导区、下载文件缓存区、工作区),其中,下载文件缓存区和工作区通常需要一样的大小空间,以便新的文件能够直接进行覆盖与更新,然而,实际情中,设备的内部存储空间都是有限的,通用的为16k或32k大小,此时,设备如果使用ota功能,则导致设备的实际整机软件代码只能使用一半的内部存储空间,从而造成设备内部存储空间的资源浪费,同时,还造成设备的制造成本上升。
28.为此本发明实施例分别提出了一种可以用于家用电器的软件远程升级方法和一种可以用于待更新设备的软件远程升级方法,从而能够强化待更新设备的原文件以及用于软件远程升级的更新文件的差异性,有效减少待更新设备的下载区内存空间的浪费,提高待更新设备的有限内存空间的利用率,同时,增加家电控制板和显示板大范围普及ota的可行性。
29.图1是根据本发明实施例的应用于家用电器的软件远程升级方法的流程示意图。
30.如图1所示,本发明实施例的应用于家用电器的软件远程升级方法,包括以下步骤:
31.s101,获取待更新设备的原文件以及用于软件远程升级的更新文件。
32.可以理解的是,在对待更新设备的软件进行远程升级的过程中,家用电器可以获取待更新设备的原文件以及用于软件远程升级的更新文件,以便于根据原文件以及更新文件之间的代码差异生成差异文件。
33.s102,对待更新设备的原文件以及用于软件远程升级的更新文件,根据待更新设备的存储方式进行区块存储。
34.具体地,在对待更新设备的软件进行远程升级的过程中,家用电器还可对获取得到的待更新设备的原文件以及用于软件远程升级的更新文件,以待更新设备的存储方式进行区块存储。
35.s103,将每个区块对应的待更新设备的原文件以及用于软件远程升级的更新文件依次比较,以获得差异区块。
36.具体地,在对待更新设备的软件进行远程升级的过程中,家用电器还可以将将存储于每个区块内对应的待更新设备的原文件以及用于软件远程升级的更新文件进行依次
比较,从而获得相应的差异区块。
37.s104,根据获取得到的差异区块生成对应的差异文件,以便于根据差异文件远程更新待更新设备。
38.具体地,在对待更新设备的软件进行远程升级的过程中,家用电器还可以根据依次比较每个区块内对应的待更新设备的原文件以及用于软件远程升级的更新文件所获得的差异区块生成对应的差异文件,以便于根据生成的差异文件完成对待更新设备软件的远程更新与升级。
39.由此,根据本发明实施例的软件远程升级方法,强化待更新设备的原文件以及用于软件远程升级的更新文件的差异性,通过家用电器将存储于每个区块内对应的待更新设备的原文件以及用于软件远程升级的更新文件进行依次比较,从而获得相应的差异区块,并生成对应的差异文件,以便于根据生成的差异文件完成对待更新设备软件的远程更新与升级,从而减少待更新设备的下载区内存空间的浪费,提高待更新设备的有限内存空间的利用率,增加家电控制板和显示板大范围普及ota的可行性。
40.进一步地,对待更新设备的原文件以及用于软件远程升级的更新文件,根据待更新设备的存储方式进行区块存储,具体包括:获取需要进行远程更新的待更新设备的寄存器的内部区块大小,进而,对待更新设备的原文件以及用于软件远程升级的更新文件,根据待更新设备的寄存器的内部区块大小进行区块存储。
41.举例而言,若待更新设备中的寄存器的内部的总区块大小为a字节,则可以每个区块512字节,将待更新设备的寄存器划分为a/512个区块,然后,对待更新设备的原文件以及用于软件远程升级的更新文件,以每个区块大小为512字节的形式,进行区块存储。
42.进一步地,将每个区块对应的待更新设备的原文件以及用于软件远程升级的更新文件进行依次比较,以获得相应的差异区块,具体包括:将存储于每个区块对应的待更新设备的原文件以及用于软件远程升级的更新文件进行依次比较,其中,如果当前区块存储的待更新设备的原文件与用于软件远程升级的更新文件不同,则可以将当前区块设置成差异区块。
43.可以理解的是,在通过将每个区块对应的待更新设备的原文件以及用于软件远程升级的更新文件进行比较,以获取全部的差异区块之后,可以通过家用电器根据获取得到的全部差异区间生成对应的差异文件,以便于待更新设备的软件根据生成的差异文件进行远程更新与升级。
44.进一步地,在对待更新设备的原文件以及用于软件远程升级的更新文件进行,根据待更新设备的存储方式进行相应的区块存储时,方法还包括:按照待更新设备的原文件或用于软件远程升级的更新文件的区块内容对每个区块进行顺序编号。
45.具体而言,家用电器可以按照待更新设备的原文件或用于软件远程升级的区块内容对每个区块进行顺序编号,以便于家用电器按照编号对每个区块内对应存储的待更新设备的原文件或用于软件远程升级的更新文件进行依次比较,从而根据差异区块生成相应的差异文件。
46.进一步地,根据获取得到的差异区块生成对应的差异文件,具体包括:获取被设置为差异区块的区块总个数,以及每个差异区块的编号及其对应的差异区块内容,进而,根据被设置为差异区块的区块总个数,以及每个差异区块的编号及其对应的差异区块内容,生
成相应的差异文件,并对生成的差异文件添加文件头。
47.可以理解的是,家用电器可以预设的文件格式,根据被设置为差异区块的区块总个数,以及每个差异区块的编号及其对应的差异区块内容,生成相应的差异文件,例如,差异文件=文件头+差异区块的区块总个数num+每个差异区块的编号[num]+差异区块内容[num][b0]。
[0048]
下面结合附图2对本发明实施例的差异文件的生成进行说明,具体而言,如图2所示,在对待更新设备进行软件远程更新的过程中,家用电器初始化完成后,执行如下步骤:
[0049]
s10,加载待更新设备的原文件以及用于软件远程升级的更新文件。
[0050]
可以理解的是,待更新设备的原文件以及用于软件远程升级的更新文件可以先转换成二进制文件,以便于家用电器依次比较待更新设备的原文件以及用于软件远程升级的更新文件的区块差异。
[0051]
s11,获取待更新设备的原文件的文件大小以及用于软件远程升级的更新文件的文件大小,取最大值num。
[0052]
s12,取n=0。
[0053]
s13,从待更新设备的原文件以及用于软件远程升级的更新文件的地址n位置中取区块字节数据对比。
[0054]
s14,判断当前区块内容是否存在差异,如果是,则执行步骤s15,如果否,则执行步骤s16。
[0055]
s15,按预设的文件格式在差异文件中填写各个差异区块的编号,并更新差异文件中,每个差异区块编号对应的差异区块内容。
[0056]
s16,n=n+1;
[0057]
s17,判断n是否大于num,如果是,则执行步骤s18,如果否,则执行步骤s13。
[0058]
s18,差异文件导出完成。
[0059]
应理解的是,在本发明的实施例中,家用电器可以作为软件远程升级过程中的上位机,以获取待更新设备的原文件以及用于软件远程升级的更新文件,从而便于根据原文件以及更新文件之间的代码差异生成差异文件,并进行相关差异文件的更新与导出。
[0060]
综上,根据本发明实施例的可应用于家用电器的软件远程升级方法,通过家用电器获取待更新设备的原文件以及用于软件远程升级的更新文件,然后,对待更新设备的原文件以及用于软件远程升级的更新文件,根据待更新设备的寄存器大小进行相应的区块存储,然后,将每个区块对应的待更新设备的原文件以及用于软件远程升级的更新文件进行依次比较,从而获得差异区块,以及,根据获得的差异区块生成相应的差异文件,以便于根据生成的差异文件对待更新设备的软件进行远程更新和升级。由此,压缩待更新设备内存空间中的下载文件缓存区,从而,在实现ota功能基础上,最大化利用待更新设备的内存空间,降低待更新设备制造成本。
[0061]
图3是根据本发明实施例的应用于待更新设备的软件远程升级方法的流程示意图。
[0062]
如图3所示,本发明实施例的应用于家用电器的软件远程升级方法,包括以下步骤:
[0063]
s201,获取差异文件。
[0064]
应理解的是,对待更新设备的原文件以及用于软件远程升级的更新文件,可以根据待更新设备的存储方式,进行区块存储,进而,将每个区块对应的待更新设备的原文件以及用于软件远程升级的更新文件进行依次比较,从而得到相应的差异区块,以及根据相应的差异区块生成对应的差异文件。
[0065]
s202,根据差异文件进行软件远程更新与升级。
[0066]
由此,根据本发明实施例的可以应用于的软件远程升级方法,强化待更新设备的原文件以及用于软件远程升级的更新文件的差异性,待更新设备可以从家用电器获取并下载根据待更新设备的原文件以及用于软件远程升级的更新文件生成的差异文件,以便于根据生成的差异文件实现待更新设备的软件远程更新与升级,从而减少待更新设备的下载区内存空间的浪费,提高待更新设备的有限内存空间的利用率,增加家电控制板和显示板大范围普及ota的可行性。
[0067]
进一步地,差异文件包括被设置为差异区块的区块总个数,以及每个差异区块的编号及其对应的差异区块内容,其中,根据生成的差异文件进行更新,包括:解析差异文件,以获得被设置为差异区块的区块总个数,以及每个差异区块的编号及其对应的差异区块内容,并根据被设置为差异区块的区块总个数,获取差异区块的区块内容起始位置,进而,从起始位置按照待更新设备的存储方式,顺序读取差异区块的内容,以及,将差异区块中的内容填充至差异区块的编号所对应的区块位置。
[0068]
举例而言,待更新设备可以在引导区中解析差异文件,然后通过被设置为差异区块的区块总个数,确定有效的差役区块内容的起始位置,进而,从起始位置按照待更新设备的存储方式,例如,按照区块大小512字节的顺序对差异区块的内容进行读取,并依次填充至差异区块的编号所对应的区块中,从而生成相应的差异文件。
[0069]
进一步地,在将差异区块的差异内容填充至当前差异区块的编号对应的区块位置之前,应用于待更新设备的软件远程升级方法还可以包括如下步骤:获取待更新设备的引导区的起始位置和待更新设备的工作区的起始位置,进而,根据待更新设备的引导区的起始位置和待更新设备的工作区的起始位置,获取当前偏移区块数,从而,根据待更新设备的偏移区块数对待更新设备的当前差异区块的编号对应的位置进行调整。
[0070]
应理解的是,由于家用电器在将对每个区块内对应存储的待更新设备的原文件或用于软件远程升级的更新文件进行依次比较的过程中,默认是从区块0开始进行对比,因此,差异区块序号也是以0为基准,而在待更新设备中,由于有引导区存在,工作区的文件存储是存在偏移的,因此,在本发明的实施例中,待更新设备还可以根据待更新设备的引导区的起始位置和待更新设备的工作区的起始位置获取待更新设备的偏移区块数,从而根据偏移区块数对待更新设备的当前差异区块的编号对应的位置进行调整。
[0071]
进一步地,根据待更新设备的引导区以及待更新设备的工作区的起始位置获取当前偏移区块数,具体包括:获取待更新设备的引导区的起始位置与待更新设备的工作区的起始位置之间的差值,进而,获取待更新设备的引导区的起始位置与待更新设备的工作区的起始位置的差值与待更新设备的寄存器的内部区块大小的比值,从而获得偏移区块数。
[0072]
举例而言,假设待更新设备的引导区工作完成后,跳转至工作区进行工作,工作区的起始位置为0x3000,则待更新设备的工作区起始位置与待更新设备的引导区起始位置的差值与待更新设备的寄存器的内部区块大小的比值为0x3000/512,从而获得偏移区块数为
12。
[0073]
进一步地,根据偏移区块数对当前差异区块的编号对应的位置进行调整,包括:在当前差异区块的编号上增加相应的偏移区块数,进而,获得调整后的当前差异区块的编号所对应的区块位置。
[0074]
具体而言,在对待更新设备的软件进行远程升级与更新的过程中,在根据待更新设备的工作区的起始位置与待更新设备的引导区的起始位置的差值与待更新设备的寄存器的内部区块大小的比值,获取得到偏移区块数之后,还将对差异区块编号进行偏移覆盖,例如,在当前差异区块的编号上增加相应的偏移区块数,以获得调整后的差异区块的编号对应的位置,例如,差异文件中的差异区块的编号为num1,则调整后的差异区块的编号为num1+12。
[0075]
下面结合附图4对本发明实施例的待更新设备的ota升级过程进行说明,具体而言,如图4所示,在对待更新设备进行软件远程更新的过程中,待更新设备上电后,执行如下步骤:
[0076]
s20,进入引导区执行。
[0077]
s21,初始化接口、调试串口和内存管理。
[0078]
s22,判断待升级设备的升级标志位是否为1,如果是,则执行步骤s23,如果否,则执行步骤s26。
[0079]
s23,读取下载区的差异文件。
[0080]
s24,启动待更新设备的软件远程升级。
[0081]
s25,按照固定文件格式解析差异文件,将差异区块中的内容填充至调整后的当前差异区块的编号对应的区块位置。
[0082]
s26,判断待更新设备的软件远程升级是否完成,如果是,则执行步骤s27,如果否,则执行步骤s28。
[0083]
s27,跳转到工作区执行,并执行步骤s29。
[0084]
s28,继续执行待更新设备的软件远程升级操作,执行步骤s25。
[0085]
s29,判断工作区是否执行正常,如果是,则执行步骤s30,如果否,则等待下一次待更新设备上电。
[0086]
s30,将待升级设备的升级标志位置为0。
[0087]
s31,执行工作区中的文件。
[0088]
s32,判断家用电器端是否存在新的差异文件,如果是,则执行步骤s33,如果否,则执行步骤s31。
[0089]
s33,判断下载区是否为空,如果否,则执行步骤s34,如果是,则执行步骤s35。
[0090]
s34,清空下载区。
[0091]
s35,判断待更新设备的软件远程升级是否超时,如果是,则执行步骤s31,如果否,则执行步骤s36。
[0092]
s36,下载新的差异文件。
[0093]
s37,判断差异文件是否下载完成,如果是,则执行步骤s38,如果否,则执行步骤s35。
[0094]
s38,将待升级设备的升级标志位置为1。
[0095]
s39,待更新设备软件重启,并执行步骤s20。
[0096]
综上,根据本发明实施例的软件远程升级方法,可以应用于待更新设备,通过从家用电器获取差异文件,并根据差异文件对软件进行远程升级与更新。由此,压缩待更新设备内存空间中的下载文件缓存区,从而,在实现ota功能基础上,最大化利用待更新设备的内存空间,降低待更新设备制造成本。
[0097]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0098]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0099]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0100]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0101]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0102]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0103]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1