一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种嵌入式软件升级方法、系统及装置与流程

2022-10-13 08:35:55 来源:中国专利 TAG:


1.本技术涉及视频监控领域,特别涉及一种嵌入式软件升级方法、系统及装置。


背景技术:

2.在嵌入式设备硬件设计时,同一主芯片比如cpu等,通常会兼容多款不同厂商不同型号的元器件比如wifi、sensor等。针对这种情况,常需要将主芯片兼容的各元器件的软件程序统一组合在同一个升级包。
3.嵌入式设备在升级元器件时会获得上述升级包并存放至如ram、flash等存储介质中,之后根据硬件差异自动匹配加载升级包中对应元器件的升级数据。然而,嵌入式设备的本身存储资源如ram、flash等存储介质就比较紧凑,而将组合了各元器件的软件程序的上述升级包存放至如ram、flash等存储介质中会大大浪费存储资源,也会增加成本。


技术实现要素:

4.本技术实施例公开了一种嵌入式软件升级方法、系统及装置,以实现兼容硬件差异的节省存储资源的嵌入式软件升级。
5.本技术实施例提供了一种嵌入式软件升级方法,所述方法应用于嵌入式设备,该方法包括:
6.在确定需要升级的情况下,若本地不存在当前升级时所需的升级包规则信息,则通过与升级服务器之间的第一连接,获得当前升级时所需的升级包规则信息;所述升级包规则信息至少记录了所述嵌入式设备中主芯片兼容的至少两个不同组件的组件信息;所述组件信息至少包括:组件标识、组件对应的升级数据的存储位置信息;
7.通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据,对所述包头数据进行校验,在所述包头数据通过检验后,从所述升级包规则信息中确定出所述嵌入式设备中当前待升级组件的目标升级组件信息,通过所述第二连接,并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据,基于所述目标升级数据对当前待升级组件进行升级。
8.本技术实施例提供一种嵌入式软件升级系统,所述系统包括嵌入式设备和升级服务器;
9.所述嵌入式设备在确定需要升级的情况下,若本地不存在当前升级时所需的升级包规则信息,则通过与升级服务器之间的第一连接,获得当前升级时所需的升级包规则信息;所述升级包规则信息至少记录了所述嵌入式设备中主芯片兼容的至少两个不同组件的组件信息;所述组件信息至少包括:组件标识、组件对应的升级数据的存储位置信息;以及,
10.通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据,对所述包头数据进行校验,在所述包头数据通过检验后,从所述升级包规则信息中确定出所述嵌入式设备中当前待升级组件的目标升级组件信息,通过所述第二连接,并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据,
基于所述目标升级数据对当前待升级组件进行升级;
11.所述升级服务器,用于存储升级包规则信息和升级包,基于所述嵌入式设备需要升级的请求,通过第一连接返回所述嵌入式设备当前升级时所需的升级包规则信息,以及,通过第二连接返回指定位置存储的所述嵌入式设备当前待升级组件的升级数据;所述指定位置是指用于存储当前待升级组件的升级数据的位置。
12.本技术实施例提供一种嵌入式软件升级装置,所述装置应用于嵌入式设备,该装置包括:
13.获得单元,用于在确定需要升级的情况下,若本地不存在当前升级时所需的升级包规则信息,则通过与升级服务器之间的第一连接,获得当前升级时所需的升级包规则信息;所述升级包规则信息至少记录了所述嵌入式设备中主芯片兼容的至少两个不同组件的组件信息;所述组件信息至少包括:组件标识、组件对应的升级数据的存储位置信息;
14.下载单元,用于通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据;以及,在处理单元的触发下,通过所述第二连接并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据;
15.处理单元,用于对所述包头数据进行校验,在所述包头数据通过检验后,从所述升级包规则信息中确定出所述嵌入式设备中当前待升级组件的目标升级组件信息;并触发所述下载单元通过所述第二连接并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据,基于所述目标升级数据对当前待升级组件进行升级。
16.本技术实施例提供一种电子设备,电子设备包括:处理器和存储器。
17.其中,所述存储器,用于存储机器可执行指令;
18.所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上方法。
19.通过以上描述可以看出,本实施例中,嵌入式设备在进行升级时,先通过从升级包规则信息中确定出嵌入式设备中当前待升级组件的目标升级组件信息,之后依据目标组件信息中升级数据的存储位置信息从该存储位置信息下载对应的目标升级数据并进行升级,这从软件层次实现了在未对嵌入式硬件存储资源(比如ram和flash等)进行扩容的情况下,从软件层面上实现了针对主芯片相同兼容多款不同厂商的元器件的硬件进行软件适配,避免了定义不同型号带来的软件维护及认证成本,同时降低硬件扩容带来的成本增加问题,最终实现了兼容硬件差异的节省存储资源的嵌入式软件升级。
附图说明
20.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
21.图1为本技术实施例提供的方法流程图;
22.图2为本技术实施例提供的包头数据结构图;
23.图3为本技术实施例提供的升级包结构示意图;
24.图4为本技术实施例提供的系统结构图;
25.图5为本技术实施例提供的装置结构图;
26.图6是本技术实施例提供的装置硬件结构示意图。
具体实施方式
27.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
28.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
29.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
30.本技术实施例提供的嵌入式软件升级方法,与目前常采用的差分升级有着本质区别。目前的差分升级主要是针对两次升级的差异进行增量更新,而本技术实施例是针对硬件差异制作成兼容多个硬件差异的升级包,设备在升级的过程中根据硬件的差异项和升级包规则信息从程序包的指定位置进行下载并进行升级。为了使本领域技术人员更好地理解本技术实施例提供的技术方案,并使本技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本技术实施例中技术方案作进一步详细的说明。
31.参见图1,图1为本技术实施例提供的方法流程图。该方法应用于嵌入式设备。这里的嵌入式设备比如为摄像头、网关、路由器等,本实施例并不具体限定。
32.步骤101,在确定需要升级的情况下,若本地不存在当前升级时所需的升级包规则信息,则通过与升级服务器之间的第一连接,获得当前升级时所需的升级包规则信息;升级包规则信息至少记录了所述嵌入式设备中主芯片兼容的至少两个不同组件的组件信息。
33.在本实施例中,确定需要升级的方式有很多,比如接收到外部指令、或者检测到已有的组件升级包的过期时间到达、或者通过第一连接获得升级服务器记录的本嵌入式设备的第一版本信息,比较获得的所述第一版本信息与本地已记录的本设备的第二版本信息,若发现第一版本信息中的第一时间点在所述第二版本信息中的第二时间点之后,则确定需要升级,等等,本实施例并不具体限定。
34.在本实施例中,升级包规则信息与升级包一起会事先部署到升级服务器。基于此,应用于本步骤101,对于任一嵌入式设备,当确定需要升级的情况下,会通过与升级服务器之间的第一连接,请求当前升级时所需的升级包规则信息。这里,第一连接可为嵌入式设备与升级服务器之间的长连接,比如tcp连接、https连接等,本实施例并不具体限定。
35.作为一个实施例,升级包规则信息至少记录了嵌入式设备中主芯片兼容的至少两个不同组件的组件信息。这里,主芯片比如为cpu等。在应用中,同一主芯片比如cpu等可兼容多个不同组件比如通信、wifi、sensor等组件,本实施例并不具体限定。下文会举例描述
升级包规则信息,这里暂不赘述。
36.作为另一个实施例,在确定需要升级的情况下,若之前已获得上述升级包规则信息,则直接执行下述步骤102。
37.步骤102,通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据,对包头数据进行校验,在包头数据通过检验后,执行步骤103。
38.在本实施例中,当嵌入式设备获得上述升级包规则信息,嵌入式设备会通过与升级服务器交互建立第二连接。这里的第二连接可为短连接比如ydp、https等,本实施例并不具体限定。
39.嵌入式设备在成功建立本设备与升级服务器之间的第二连接后,会执行如步骤102的描述,通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据。可选地,在本实施例中,嵌入式设备通过第二连接,向升级服务器发送包头请求(用于请求当前升级时所需的升级包的包头数据)。当升级服务器接收到包头请求,其会通过第二连接返回嵌入式设备当前升级时所需的升级包的包头数据。最终实现了嵌入式设备成功下载当前升级时所需的升级包的包头数据。图2举例示出了包头数据的结钩。比如图2举例示出包头数据至少包含厂商标识信息、升级包头校验和、升级包头长度、设备类型标识、hash算法类型、升级组件个数、硬件主芯片平台校验位等信息。
40.嵌入式设备在下载包头数据后,就如步骤102描述的,对包头数据进行校验,比如对包头数据中的厂商标识信息、升级包头校验和、设备类型标识、硬件主芯片平台校验位(标识)等进行校验。在包头数据通过检验后,则执行下述步骤103。这里,对包头数据进行校验,其目的是为了在下载升级包中升级数据之前,提前校验嵌入式设备当前升级时所需的升级包的合法性。只有校验出嵌入式设备当前升级时所需的升级包合法,才会继续执行下述步骤103。
41.步骤103,从上述升级包规则信息中确定出嵌入式设备中当前待升级组件的目标升级组件信息,通过第二连接,并依据目标组件信息中升级数据的存储位置信息从该存储位置信息下载对应的目标升级数据,基于目标升级数据对当前待升级组件进行升级。
42.作为一个实施例,上述升级数据的存储位置信息通过偏移量和数据长度表征;其中,偏移量用于表示相对升级包的起始位置的偏移,数据长度是指升级数据的大小。
43.作为一个实施例,上述升级数据的存储位置信息也可通过起始位置和结束位置表征;其中,起始位置用于表示升级包中记录上述升级数据的起始位置,结束为止用于表示升级包中上述升级数据的结束位置。
44.基于上面描述,则如步骤103描述,即可直接依据目标组件信息中升级数据的存储位置信息从该存储位置信息下载目标升级数据,最终实现了仅从升级包的指定位置下载当前待升级组件所需的升级数据,而非下载整个升级包,这从软件层次实现了部分硬件差异的兼容性适配,减少了软件维护和认证等费用,也不需要针对硬件资源不足的情况进行扩容,减少了硬件成本。
45.至此,完成图1所示流程。
46.通过图1所示流程可以看出,在本实施例中,嵌入式设备在进行升级时,先通过从升级包规则信息中确定出嵌入式设备中当前待升级组件的目标升级组件信息,之后依据目标组件信息中升级数据的存储位置信息从该存储位置信息下载对应的目标升级数据并进
行升级,这从软件层次实现了在未对嵌入式硬件存储资源(比如ram和flash等)进行扩容的情况下,从软件层面上实现了针对主芯片相同兼容多款不同厂商的元器件的硬件进行软件适配,避免了定义不同型号带来的软件维护及认证成本,同时降低硬件扩容带来的成本增加问题,最终实现了兼容硬件差异的节省存储资源的嵌入式软件升级。
47.下面对上述升级包规则信息进行描述:
48.在本实施例中,升级包规则信息与升级包一起部署到升级服务器上。在具体实现时,升级包规则信息至少记录了嵌入式设备中主芯片兼容的至少两个不同组件的组件信息。作为一个实施例,这里的组件信息至少包括:组件标识、组件对应的升级数据的存储位置信息。假若升级数据的存储位置信息通过偏移量和数据长度表征,其中,偏移量用于表示相对升级包的起始位置的偏移,数据长度是指升级数据的大小,下述举例示出了升级规则信息:
49.[0050][0051]
在上面描述中,"checksum"比如"b0a997691c777528c5884720d0124366"表示校验和,这里的校验和可以采用sha256等散列函数进行标识。
[0052]
下面描述升级包的结构:
[0053]
如上描述,升级包规则信息与升级包一起部署到升级服务器。其中,升级包主要包含包头数据、至少一个组件头数据、升级数据。一个升级包通常包含一个包头数据和n个组件头数据,每个组件头数据包含1~k个具有差异的组件结构(也称组件差异项),k,n可根据实际需求设置。比如,其中,每一组件头数据至少包括:具有差异的各不同组件的组件差异项头数据;组件差异项头数据至少包括:组件差异项标识、组件差异项对应的升级数据的存储位置信息。图3举例示出了升级包的结构,这里不再赘述。
[0054]
以上对本技术实施例提供的升级包和升级规则信息进行了描述,下面对上述步骤103进行扩展描述:
[0055]
作为一个实施例,在步骤103中,在基于目标升级数据对所述当前待升级组件进行升级之前,可进一步将下载的目标升级数据进行完整性验证,在验证成功后将目标升级数据写入到嵌入式设备的指定分区,比如flash的某一分区等,本实施例并不具体限定。
[0056]
作为一个实施例,在步骤103中,在基于目标升级数据对所述当前待升级组件进行升级之后,可进一步删除已获得的所述升级包规则信息,以节省存储资源。
[0057]
以上对本技术实施例提供的方法进行了描述,下面对本技术实施例提供的系统和装置进行描述:
[0058]
参见图4,图4为本技术实施例提供的系统结构图。该系统包括嵌入式设备和升级服务器。
[0059]
其中,嵌入式设备在确定需要升级的情况下,若本地不存在当前升级时所需的升级包规则信息,则通过与升级服务器之间的第一连接,获得当前升级时所需的升级包规则信息;所述升级包规则信息至少记录了所述嵌入式设备中主芯片兼容的至少两个不同组件的组件信息;所述组件信息至少包括:组件标识、组件对应的升级数据的存储位置信息;以及,
[0060]
通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据,对所述包头数据进行校验,在所述包头数据通过检验后,从所述升级包规则信息中确定出所述嵌入式设备中当前待升级组件的目标升级组件信息,通过所述第二连接,并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据,基于所述目标升级数据对当前待升级组件进行升级;
[0061]
升级服务器,用于存储升级包规则信息和升级包,基于所述嵌入式设备需要升级的请求,通过第一连接返回所述嵌入式设备当前升级时所需的升级包规则信息,以及,通过第二连接返回指定位置存储的所述嵌入式设备当前待升级组件的升级数据;所述指定位置是指用于存储当前待升级组件的升级数据的位置。
[0062]
在本实施例中,嵌入式设备主要执行如图1所示的流程,这里不再赘述。
[0063]
在本实施例中,升级服务器存储所述升级包;所述升级包至少包括:包头数据、至少一个组件头数据、组件的升级数据;
[0064]
其中,每一组件头数据至少包括:具有差异的各不同组件的组件差异项头数据;所述组件差异项头数据至少包括:组件差异项标识、组件差异项对应的升级数据的存储位置信息。
[0065]
至此,完成图4所示的系统结构描述。
[0066]
参见图5,图5为本技术实施例提供的装置结构图图。所述装置应用于嵌入式设备,该装置包括:
[0067]
获得单元,用于在确定需要升级的情况下,若本地不存在当前升级时所需的升级包规则信息,则通过与升级服务器之间的第一连接,获得当前升级时所需的升级包规则信息;所述升级包规则信息至少记录了所述嵌入式设备中主芯片兼容的至少两个不同组件的组件信息;所述组件信息至少包括:组件标识、组件对应的升级数据的存储位置信息;
[0068]
下载单元,用于通过与升级服务器之间的第二连接,下载当前升级时所需的升级包的包头数据;以及,在处理单元的触发下,通过所述第二连接并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据;
[0069]
处理单元,用于对所述包头数据进行校验,在所述包头数据通过检验后,从所述升级包规则信息中确定出所述嵌入式设备中当前待升级组件的目标升级组件信息;并触发所述下载单元通过所述第二连接并依据所述目标组件信息中升级数据的存储位置信息从所述存储位置信息下载对应的目标升级数据,基于所述目标升级数据对当前待升级组件进行升级。
[0070]
可选地,所述确定需要升级包括:
[0071]
通过所述第一连接获得所述升级服务器记录的所述嵌入式设备的第一版本信息;
[0072]
比较获得的所述第一版本信息与本地已记录的本设备的第二版本信息,若发现第一版本信息中的第一时间点在所述第二版本信息中的第二时间点之后,则确定需要升级。
[0073]
可选地,所述升级包头数据至少包括:厂商标识信息、升级包头校验和、设备类型标识、硬件主芯片平台标识;
[0074]
对所述升级包头数据进行校验包括:
[0075]
至少对所述升级包头数据中的厂商标识信息、升级包头校验和、设备类型标识、硬件主芯片平台标识分别进行校验。
[0076]
可选地,所述升级数据的存储位置信息通过偏移量和数据长度表征;其中,所述偏移量用于表示相对升级包的起始位置的偏移,所述数据长度是指升级数据的大小。
[0077]
可选地,在基于所述目标升级数据对所述当前待升级组件进行升级之前,进一步包括:
[0078]
将下载的目标升级数据进行完整性验证,在验证成功后将所述目标升级数据写入到所述嵌入式设备的指定分区。
[0079]
可选地,在基于所述目标升级数据对所述当前待升级组件进行升级之后,进一步包括:
[0080]
删除已获得的所述升级包规则信息。
[0081]
至此,完成图5所示装置的结构描述。
[0082]
对应地,本技术实施例还提供了图5所示装置的硬件结构图,具体如图6所示,该电子设备可以为上述实施方法的设备。如图6所示,该硬件结构包括:处理器和存储器。
[0083]
其中,所述存储器,用于存储机器可执行指令;
[0084]
所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所示的方法实施例。
[0085]
作为一个实施例,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是ram(radom access memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0086]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献