CN112416411B - 升级方法及装置、设备端、服务器、计算机可读介质 - Google Patents
升级方法及装置、设备端、服务器、计算机可读介质 Download PDFInfo
- Publication number
- CN112416411B CN112416411B CN201910786357.XA CN201910786357A CN112416411B CN 112416411 B CN112416411 B CN 112416411B CN 201910786357 A CN201910786357 A CN 201910786357A CN 112416411 B CN112416411 B CN 112416411B
- Authority
- CN
- China
- Prior art keywords
- upgraded
- storage partition
- file
- starting
- system image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种用于升级设备端的***的升级方法,其中设备端包括第一存储分区、第二存储分区和第三存储分区,第二存储分区在第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,第三存储分区在第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,该升级方法包括:当设备端基于当前***镜像文件工作时,接收待升级文件;将待升级文件写入用于存储待升级文件的存储分区;在设备端断电重启时,从第一存储分区中的启动引导文件跳转至待升级启动装载程序,再跳转至待升级***镜像文件,完成设备端的***升级。本公开还提供了升级装置、设备端、服务器及计算机可读介质。
Description
技术领域
本公开实施例涉及***升级领域,特别涉及用于升级设备端的***的升级方法及装置、设备端、服务器、计算机可读介质。
背景技术
目前,嵌入式设备在进行***升级时,通常需要进入空中下载技术(OTA)模式,在该模式下,该嵌入式设备将无法进行正常的工作,只能等待***升级完成后才能正常工作,严重影响了用户体验。
发明内容
本公开实施例提供一种用于升级设备端的***的升级方法及装置、设备端、服务器、计算机可读介质。
第一方面,本公开实施例提供一种用于升级设备端的***的升级方法,所述设备端包括存储器,所述存储器包括预先设置的第一存储分区、第二存储分区以及第三存储分区,所述第一存储分区用于存储启动引导文件,所述第二存储分区在所述第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,所述第三存储分区在所述第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件;该升级方法包括:
当所述设备端基于所述当前***镜像文件工作时,接收待升级文件,所述待升级文件包括待升级启动装载程序和待升级***镜像文件;
将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区;
在所述设备端断电重启时,在运行所述启动引导文件后,跳转运行所述待升级启动装载程序;
在运行所述待升级启动装载程序后,跳转运行所述待升级***镜像文件,完成所述设备端的***升级。
在一些实施例中,所述第二存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件;所述第三存储分区用于存储待升级文件,所述第三存储分区当前为空白分区或者所述第三存储分区当前存储有历史启动装载程序和历史***镜像文件;
所述在运行所述启动引导文件后,跳转运行所述待升级启动装载程序之前,还包括:将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述在运行所述启动引导文件后,跳转运行所述待升级启动装载程序,包括:在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
在一些实施例中,将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区之后,还包括:
将所述第一存储分区对应的状态标志位修改为第一状态,所述第一状态用于指示在所述设备端断电重启时执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
在一些实施例中,所述将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序之前,还包括:
检测所述第一存储分区对应的状态标志位是否为所述第一状态或预先设置的第二状态,所述第二状态用于指示在设备端断电重启时在运行所述启动引导文件后跳转至所述第二存储分区的起始地址;
若检测出所述第一存储分区对应的状态标志位为第一状态时,执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
在一些实施例中,所述第三存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件;所述第二存储分区当前存储有所述当前启动装载程序和历史***镜像文件,所述第二存储分区用于存储待升级文件;
所述将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区,包括:将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,以覆盖所述第二存储分区当前存储的所述当前启动装载程序和所述历史***镜像文件,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述在所述设备端断电重启时,在运行所述启动引导文件后,跳转运行所述待升级启动装载程序,包括:在所述设备端断电重启时,在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
在一些实施例中,所述存储器还包括特定存储分区;所述接收待升级文件之后,还包括:将所述待升级启动装载程序写入至所述特定存储分区;
若未完全将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,所述设备端即断电重启时,所述升级方法还包括:
将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作;
当所述设备端基于所述当前***镜像文件工作时,将所述特定存储分区中的所述待升级启动装载程序拷贝至所述第二存储分区,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址,并继续将所述待升级***镜像文件写入至所述第二存储分区。
在一些实施例中,在将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区之后,还包括:
将所述第一存储分区对应的状态标志位修改为第二状态,所述第二状态用于指示在所述设备端断电重启时在运行所述启动引导文件后跳转至所述第二存储分区的起始地址。
在一些实施例中,所述在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序之前,还包括:
检测所述第一存储分区对应的状态标志位是否为所述第二状态或第一状态,所述第一状态用于指示在所述设备端断电重启时执行将所述当前启动装载程序拷贝至所述第二存储分区的步骤;
若检测出所述第一存储分区对应的状态标志位为所述第二状态时,执行所述在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序的步骤;
若检测出所述第一存储分区对应的状态标志位为第一状态时,执行所述将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作的步骤。
第二方面,本公开实施例提供一种用于升级设备端的***的升级装置,所述设备端包括存储器,所述存储器包括预先设置的第一存储分区、第二存储分区以及第三存储分区,所述第一存储分区用于存储启动引导文件,所述第二存储分区在所述第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,所述第三存储分区在所述第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件;所述升级装置包括:
接收模块,用于当所述设备端基于所述当前***镜像文件工作时,接收待升级文件,所述待升级文件包括待升级启动装载程序和待升级***镜像文件;
写入模块,用于将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区;
运行模块,用于在所述设备端断电重启时,在运行所述启动引导文件后,跳转运行所述待升级启动装载程序;在运行所述待升级启动装载程序后,跳转运行所述待升级***镜像文件,完成所述设备端的***升级。
在一些实施例中,所述第二存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件;所述第三存储分区用于存储待升级文件,所述第三存储分区当前为空白分区或者所述第三存储分区当前存储有历史启动装载程序和历史***镜像文件;
所述升级装置还包括拷贝模块,所述拷贝模块用于在所述设备端断电重启时,所述运行模块运行所述启动引导文件后,跳转运行所述待升级启动装载程序之前,将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述运行模块具体用于在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
在一些实施例中,还包括状态修改模块,所述状态修改模块用于在所述写入模块将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区之后,将所述第一存储分区对应的状态标志位修改为第一状态,所述第一状态用于指示在所述设备端断电重启时触发所述拷贝模块执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
在一些实施例中,还包括检测模块,所述检测模块用于在所述设备端断电重启时,所述拷贝模块将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序之前,检测所述第一存储分区对应的状态标志位是否为所述第一状态或预先设置的第二状态,所述第二状态用于指示在设备端断电重启时触发所述运行模块在运行所述启动引导文件后跳转至所述第二存储分区的起始地址;若检测出所述第一存储分区对应的状态标志位为第一状态时,触发所述拷贝模块执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
在一些实施例中,所述第三存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件;所述第二存储分区当前存储有所述当前启动装载程序和历史***镜像文件,所述第二存储分区用于存储待升级文件;
所述写入模块具体用于将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,以覆盖所述第二存储分区当前存储的所述当前启动装载程序和所述历史***镜像文件,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述运行模块具体用于在所述设备端断电重启时,在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
在一些实施例中,所述存储器还包括特定存储分区;所述升级装置还包括拷贝模块;
所述写入模块还用于在所述接收模块接收待升级文件之后,将所述待升级启动装载程序写入至所述特定存储分区;
所述拷贝模块用于若所述写入模块未完全将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,所述设备端即断电重启时,将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作;当所述设备端基于所述当前***镜像文件工作时,将所述特定存储分区中的所述待升级启动装载程序拷贝至所述第二存储分区,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述写入模块还用于在所述拷贝模块将所述特定存储分区中的所述待升级启动装载程序拷贝至所述第二存储分区之后,继续将所述待升级***镜像文件写入至所述第二存储分区。
在一些实施例中,还包括状态修改模块,所述状态修改模块用于在所述写入模块将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区之后,将所述第一存储分区对应的状态标志位修改为第二状态,所述第二状态用于指示在所述设备端断电重启时触发所述运行模块在运行所述启动引导文件后跳转至所述第二存储分区的起始地址。
在一些实施例中,还包括检测模块,所述检测模块用于在所述设备端断电重启时,所述运行模块运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序之前,检测所述第一存储分区对应的状态标志位是否为所述第二状态或第一状态,所述第一状态用于指示在所述设备端断电重启时触发所述拷贝模块执行将所述当前启动装载程序拷贝至所述第二存储分区的步骤;
所述检测模块若检测出所述第一存储分区对应的状态标志位为所述第二状态时,触发所述运行模块执行所述在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序的步骤;
所述检测模块若检测出所述第一存储分区对应的状态标志位为第一状态时,触发所述拷贝模块执行所述将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作的步骤。
第三方面,本公开实施例提供一种设备端,包括上述任一实施例提供的升级装置。
第四方面,本公开实施例提供一种服务器,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任一实施例提供的升级方法。
第五方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现上述任一实施例提供的升级方法。
本公开实施例提供的用于升级设备端的***的升级方法及装置、设备端、服务器、计算机可读介质,在设备端基于当前***镜像文件工作时,接收待升级文件,并将其中的待升级启动装载程序和待升级***镜像文件写入用于存储待升级文件的存储分区,在设备端断电重启时,从启动引导文件跳转至待升级启动装载程序,再从待升级启动装载程序跳转至待升级***镜像文件,从而在用户无感知的情况下,完成设备端的***升级即OTA升级,整个升级过程不影响用户正常使用设备端,从而提高了用户体验度。
附图说明
附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种用于升级设备端的***的升级方法的流程图;
图2为本公开实施例提供的另一种用于升级设备端的***的升级方法的流程图;
图3为本公开实施例中一种存储器的结构示意图;
图4为将待升级启动装载程序和待升级***镜像文件写入至第三存储分区后存储器的结构示意图;
图5为本公开实施例提供的又一种用于升级设备端的***的升级方法的流程图;
图6为本公开实施例提供的再一种用于升级设备端的***的升级方法的流程图;
图7为本公开实施例中另一种存储器的结构示意图;
图8为将待升级启动装载程序和待升级***镜像文件写入至第二存储分区后存储器的结构示意图;
图9为本公开实施例提供的再一种用于升级设备端的***的升级方法的流程图;
图10为本公开实施例提供的再一种用于升级设备端的***的升级方法的流程图;
图11为本公开实施例提供的一种用于升级设备端的***的升级装置的结构示意图;
图12为本公开实施例提供的另一种升级装置的结构示意图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的用于升级设备端的***的升级方法及装置、设备端、服务器、计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。
本文所述实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。因此,实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不旨在是限制性的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
图1为本公开实施例提供的一种用于升级设备端的***的升级方法的流程图,该升级方法可以由升级装置来执行,该装置可以通过软件和/或硬件的方式实现,该装置可以集成在设备端或服务器中。如图1所示,该升级方法包括:
步骤11、当设备端基于当前***镜像文件工作时,接收待升级文件,待升级文件包括待升级启动装载程序和待升级***镜像文件。
在本公开实施例中,设备端包括存储器,存储器包括预先设置的第一存储分区、第二存储分区以及第三存储分区。其中,第一存储分区用于存储启动引导文件,启动引导文件的启动跳转地址为第一存储分区的起始地址;第二存储分区在第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,第三存储分区在第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件;第三存储分区为存储器的临时文件(Temp)分区。其中,该存储器可以为如硬盘、闪存(Flash)等物理存储器。
其中,启动引导文件为设备端用于启动引导、支持OTA升级、接收OTA升级包并将OTA升级包写入存储器(如Flash)的***镜像;当前***镜像文件为设备端当前用于正常工作(如语音处理、与终端、客户端交互)的***镜像文件;上述待升级文件即为上述OTA升级包,包括待升级启动装载程序和待升级***镜像文件,在OTA升级包中,前一部分数据为待升级启动装载程序,后一部分数据为待升级***镜像文件;上述待升级文件(OTA升级包)存放于设备端对应的服务器上,其中的待升级***镜像文件为用于升级设备端的***的***镜像文件。
在本公开实施例中,第一存储分区的起始地址、第二存储分区的起始地址和第三存储分区的起始地址均为预先设置,具体可以根据实际需要设置,本公开实施例对此不作具体限制。
在本公开实施例中,启动引导文件实际也为一个启动装载程序(Bootloader),启动引导文件在出厂时固化,启动引导文件中设置有第二存储分区的起始地址,因此设备端在每次重启运行启动引导文件时,启动引导文件均能够在运行后自动跳转至第二存储分区的起始地址。
本公开实施例所提供的升级方法,可以由设备端执行。在步骤11中,在设备端基于当前***镜像文件工作,且设备端需要进行***升级时,设备端接收包括待升级启动装载程序和待升级***镜像文件的待升级文件。
在本公开实施例中,当前启动装载程序中设置有当前***镜像文件的启动跳转地址,从而在运行当前启动装载程序后自动跳转至该当前***镜像文件的启动跳转地址以运行该当前***镜像文件,从而使得设备端能够基于当前***镜像文件正常工作。
在本公开实施例中,在第三存储分区存储有当前启动装载程序和当前***镜像文件时,第二存储分区中存储有当前启动装载程序,且在第二存储分区中,当前启动装载程序的启动跳转地址为第二存储分区的起始地址。从而在设备端未升级前,在设备端重启时,能够在运行启动引导文件后跳转至第二存储分区的起始地址,以运行当前启动装载程序,从而跳转运行当前***镜像文件,进而使得设备端能够基于当前***镜像文件工作。
步骤12、将待升级启动装载程序和待升级***镜像文件写入至第二存储分区、第三存储分区中用于存储待升级文件的存储分区。
在本公开实施例中,若第二存储分区中存储有当前启动装载程序和当前***镜像文件时,则第三存储分区为用于存储待升级文件的存储分区,此时,在步骤12中,将待升级启动装载程序和待升级***镜像文件写入至第三存储分区。具体地,从第三存储分区的起始地址开始写入待升级启动装载程序,然后再写入待升级***镜像文件。
若第三存储分区中存储有当前启动装载程序和当前***镜像文件时,则第二存储分区为用于存储待升级文件的存储分区,此时,在步骤12中,将待升级启动装载程序和待升级***镜像文件写入至第二存储分区。具体地,从第二存储分区的起始地址开始写入待升级启动装载程序,然后再写入待升级***镜像文件。
步骤13、在设备端断电重启时,在运行启动引导文件后,跳转运行待升级启动装载程序。
在本公开实施例中,若第二存储分区中存储有当前启动装载程序和当前***镜像文件时,则在步骤12中在将待升级文件写入至第三存储分区后,还需要将待升级启动装载程序拷贝至第二存储分区的起始地址。从而在步骤13中,从第一存储分区的起始地址运行启动引导文件后,能够跳转至第二存储分区的起始地址以运行待升级启动装载程序。
在本公开实施例中,若第三存储分区中存储有当前启动装载程序和当前***镜像文件时,则在步骤12中在将待升级文件写入至第二存储分区后,在步骤13中,从第一存储分区的起始地址运行启动引导文件后,直接跳转至第二存储分区的起始地址以运行待升级启动装载程序。
步骤14、在运行待升级启动装载程序后,跳转运行待升级***镜像文件,完成设备端的***升级。
在步骤14中,由于待升级启动装载程序中设置有待升级***镜像文件的启动跳转地址(待升级***镜像文件在用于存储待升级文件的存储分区中存储的起始地址),因此设备端在运行待升级启动装载程序后,自动跳转至待升级***镜像文件的启动跳转地址以运行待升级***镜像文件,从而完成设备端的***升级。
在完成设备端的***升级后,将待升级启动装载程序作为当前启动装载程序,待升级***镜像文件作为当前***镜像文件,以等待下一次***更新。
在本公开实施例中,设备端可以为嵌入式设备端,嵌入式设备端可以为在较低的芯片主频、内存、闪存(Flash)的环境下完成语音处理功能以及与终端、客户端的交互功能的嵌入式设备端,例如,该嵌入式设备端为智能语音车载支架,本公开实施例对于设备端的实现方式不作特别限制。
传统的智能语音车载支架,在需要进行***升级时,首先需要使得该智能语音车载支架进入专门的OTA模式,在OTA模式下,智能语音车载支架无法进行语音处理以及音频数据的上行和下行,仅能接收OTA升级包,在大约10分钟的时间内,用户无法正常使用智能语音车载支架的语音功能,严重影响了用户体验。而通过本公开实施例所提供的升级方法,可以使得智能语音车载支架在进行***升级时,智能语音车载支架仍然能够正常工作,即智能语音车载支架仍然可以在***升级过程中不仅能够接收OTA升级包,还可以正常进行语音处理以及音频数据的上行和下行,从而提高了智能语音车载支架用户的体验度。
本公开实施例所提供的用于升级设备端的***的升级方法,在设备端基于当前***镜像文件工作时,接收待升级文件,并将其中的待升级启动装载程序和待升级***镜像文件写入用于存储待升级文件的存储分区,在设备端断电重启时,从启动引导文件跳转至待升级启动装载程序,再从待升级启动装载程序跳转至待升级***镜像文件,从而在用户无感知的情况下,完成设备端的***升级即OTA升级,整个升级过程不影响用户正常使用设备端,从而提高了用户体验度。
图2为本公开实施例提供的另一种用于升级设备端的***的升级方法的流程图,该升级方法可以由升级装置来执行,该装置可以通过软件和/或硬件的方式实现,该装置可以集成在设备端或服务器中。如图2所示,该升级方法包括:
步骤21、在设备端基于当前***镜像文件工作时,接收待升级文件,该待升级文件包括待升级启动装载程序和待升级***镜像文件。
在本公开实施例中,设备端包括存储器,图3为本公开实施例中一种存储器的结构示意图,如图3所示,存储器包括预先设置的第一存储分区1、第二存储分区2以及第三存储分区3。其中,第一存储分区1用于存储启动引导文件,在第一存储分区1中,启动引导文件的启动跳转地址为第一存储分区1的起始地址;第二存储分区2当前存储有当前启动装载程序(Bootloader)和当前***镜像文件,在第二存储分区2中,当前启动装载程序的启动跳转地址为第二存储分区2的起始地址;第三存储分区3为空白分区或者第三存储分区3当前存储有历史启动装载程序(Bootloader)和历史***镜像文件。
在本公开实施例中,如图3所示,存储器还包括用于存储出厂数据(Factory Data)的存储分区和用于存储用户数据(User Data)的存储分区。
此外,关于本公开实施例中步骤21的其他相关描述可参见前述实施例中对步骤11的描述,此处不再赘述。
可以理解的是,本公开实施例的升级方法在第二存储分区当前存储有当前启动装载程序和当前***镜像文件,第三存储分区为空白分区或者第三存储分区当前存储有历史启动装载程序和历史***镜像文件,第三存储分区用于存储待升级文件的前提下执行。
步骤22、将待升级启动装载程序和待升级***镜像文件写入至第三存储分区。
在本公开实施例中,由于第二存储分区当前存储有当前启动装载程序和当前***镜像文件,因此第三存储分区作为用于存储待升级文件的存储分区。
在本公开实施例中,若第三存储分区为空白分区,则在步骤22中,直接将待升级启动装载程序和待升级***镜像文件写入至第三存储分区;若第三存储分区当前存储有历史启动装载程序和历史***镜像文件,则在步骤12中,将待升级启动装载程序和待升级***镜像文件写入至第三存储分区,并覆盖其中的历史启动装载程序和历史***镜像文件。
图4为将待升级启动装载程序和待升级***镜像文件写入至第三存储分区后存储器的结构示意图,如图4所示,在步骤22后,第三存储分区3中存储有待升级启动装载程序(Bootloader)和待升级***镜像文件。其中,待升级启动装载程序的启动跳转地址为第三存储分区3的起始地址。即,在步骤22中,从第三存储分区3的起始地址开始写入待升级启动装载程序,然后再写入待升级***镜像文件。
在本公开实施例中,待升级启动装载程序中设置有待升级***镜像文件的启动跳转地址,从而在运行待升级启动装载程序后自动跳转至该待升级***镜像文件的启动跳转地址以运行该待升级***镜像文件,从而使得设备端能够基于待升级***镜像文件正常工作。
在本公开实施例中,设备端在接收待升级文件之后,将其中的待升级启动装载程序和待升级***镜像文件写入至第三存储分区之前,还需要对待升级***镜像文件进行校验,以校验待升级***镜像文件是否完整和真实可靠,在校验通过后执行将待升级启动装载程序和待升级***镜像文件写入至第三存储分区的步骤即步骤22。在本公开实施例中,可以采用SHA256算法对待升级***镜像文件进行校验。
在本公开实施例中,在步骤22中,待待升级启动装载程序和待升级***镜像文件全部写入至第三存储分区后,设备端还需要对第三存储分区中存储的数据即待升级启动装载程序(Bootloader)和待升级***镜像文件进行校验,具体可以采用SHA256算法进行校验,在校验通过后则进行下一步操作。
在一些实施例中,设备端在对第三存储分区中存储的数据即待升级启动装载程序(Bootloader)和待升级***镜像文件校验通过后,还需要记录待升级启动装载程序的长度和对应的校验值。
在本公开实施例中,当前启动装载程序和待升级启动装载程序的长度均为预先设置的固定长度。其中,当前启动装载程序的长度也可以理解为其在第二存储分区中所占的内存大小,待升级启动装载程序的长度也可以理解为其在第三存储分区中所占的内存大小。
需要说明的是,在本公开实施例中,设备端在接收待升级文件,并将其中的待升级启动装载程序和待升级***镜像文件写入至第三存储分区时,设备端当前仍然可以基于当前***镜像文件进行工作,并不会对用户使用设备端时造成影响。
步骤23、在设备端断电重启时,将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖当前启动装载程序。
在本公开实施例中,如图4所示,在步骤23中设备端将待升级启动装载程序拷贝至第二存储分区2,并使待升级启动装载程序覆盖第二存储分区2当前存储的当前启动装载程序之后,第二存储分区2中存储有待升级启动装载程序和当前***镜像文件,其中,待升级启动装载程序的启动跳转地址为第二存储分区2的起始地址。
在一些实施例中,在设备端断电重启时,设备端根据预先记录的待升级启动装载程序的长度和对应的校验值将待升级启动装载程序拷贝至第二存储分区,其中,待升级启动装载程序的长度用于确定待升级启动装载程序所需占用的第二存储分区的内存大小。待升级启动装载程序对应的校验值用于对待升级启动装载程序进行校验。
步骤24、从第一存储分区的起始地址运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序。
在本公开实施例中,在设备端重启时,设备端在将待升级启动装载程序写入第二存储分区并覆盖当前启动装载程序后,首先从第一存储分区的起始地址开始运行启动引导文件。由于启动引导文件中设置有第二存储分区的起始地址,因此,每次在设备端重启并运行启动引导文件后,将自动跳转至第二存储分区的起始地址。由于此时待升级启动装载程序已覆盖当前启动装载程序存储于第二存储分区中,因此此时将从第二存储分区的起始地址开始运行待升级启动转载程序。
步骤25、在运行待升级启动装载程序后,跳转至待升级***镜像文件的启动跳转地址以运行待升级***镜像文件,完成设备端的***升级。
在步骤25中,由于待升级启动装载程序中设置有待升级***镜像文件的启动跳转地址(待升级***镜像文件在第三存储分区中存储的起始地址),因此设备端在运行待升级启动装载程序后,自动跳转至待升级***镜像文件的启动跳转地址以运行待升级***镜像文件,从而完成设备端的***升级。
至此,已完成设备端从当前***镜像文件到待升级***镜像文件的***升级,此后,如图4所示,在每次设备端重启时,设备端均通过第一存储分区1中的启动引导文件跳转至第二存储分区2中的待升级启动装载程序,再通过第二存储分区2中的待升级启动装载程序跳转至第三存储分区3中的待升级***镜像文件,以使得设备端在重启后基于待升级***镜像文件进行工作。
在本公开实施例中,通过上述步骤完成设备端的***升级后,将待升级启动装载程序作为当前启动装载程序,待升级***镜像文件作为当前***镜像文件,并等待下一次***升级。此外,关于本公开实施例所提供的升级方法的的其他描述可参见前述实施例的描述,此处不再赘述。
图5为本公开实施例提供的又一种用于升级设备端的***的升级方法的流程图,如图5所示,本公开实施例与前述实施例的区别仅在于在步骤22之后,还包括步骤221。
步骤221、将第一存储分区对应的状态标志位修改为第一状态,第一状态用于指示在设备端断电重启时执行将待升级启动装载程序拷贝至第二存储分区的步骤。
在一些实施例中,设备端在将待升级启动装载程序和待升级***镜像文件写入至第三存储分区,并对第三存储分区中的待升级启动装载程序和待升级***镜像文件进行校验之后,将第一存储分区对应的状态标志位修改为第一状态。
在本公开实施例中,初始时,第一存储分区对应的状态标志位为第二状态,第二状态用于指示在设备端断电重启时在运行启动引导文件后跳转至第二存储分区的起始地址。
在本公开实施例中,在设备端断电重启时,先执行下述步骤222,后执行将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖当前启动装载程序的步骤。
步骤222、检测第一存储分区对应的状态标志位是否为第一状态或预先设置的第二状态,第二状态用于指示运行模块在设备端断电重启时在运行启动引导文件后跳转至第二存储分区的起始地址,若检测为第一状态时,则执行将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖当前启动装载程序的步骤,若检测为第二状态时,则在运行启动引导文件后跳转至第二存储分区的起始地址。
在本公开实施例中,在设备端断电重启时,设备端首先检测第一存储分区对应的状态标志位的状态值,若该第一存储分区对应的状态标志位的状态值为第一状态时,表明待升级启动装载程序和待升级***镜像文件已成功写入第三存储分区,因此执行将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖当前启动装载程序的步骤。
若该第一存储分区对应的状态标志位的状态值为第二状态时,表明待升级启动装载程序和待升级***镜像文件未写入或未完全写入第三存储分区,且第一存储分区对应的状态标志位未被修改为第一状态,因此,在运行启动引导文件后,跳转至第二存储分区的起始地址。此时,第二存储分区中仍存储当前启动装载程序,且当前启动装载程序的启动跳转地址仍为第二存储分区的起始地址,从而在运行启动引导文件后,从第二存储分区的起始地址运行当前启动装载程序,然后从当前启动装载程序跳转至当前***镜像文件的启动跳转地址以运行当前***镜像文件,从而保证设备端断电重启时,若检测出第一存储分区对应的状态标志位仍为第二状态,即设备端未能成功升级到待升级***镜像文件时,设备端仍然能够基于当前***镜像文件进行工作。
此外,关于本公开实施例所提供的升级方法的其他描述可参见前述实施例中的描述,此处不再赘述。
图6为本公开实施例提供的再一种用于升级设备端的***的升级方法的流程图,该升级方法可以由升级装置来执行,该装置可以通过软件和/或硬件的方式实现,该装置可以集成在设备端或服务器中。如图6所示,该升级方法包括:
步骤31、在设备端基于当前***镜像文件工作时,接收待升级文件,该待升级文件包括待升级启动装载程序和待升级***镜像文件。
在本公开实施例中,设备端包括存储器,图7为本公开实施例中一种存储器的结构示意图,如图7所示,存储器包括预先设置的第一存储分区1、第二存储分区2以及第三存储分区3。其中,第一存储分区1用于存储启动引导文件,在第一存储分区1中,启动引导文件的启动跳转地址为第一存储分区1的起始地址;第二存储分区2当前存储有当前启动装载程序(Bootloader)和历史***镜像文件,在第二存储分区2中,当前启动装载程序的启动跳转地址为第二存储分区2的起始地址,第二存储分区2用于存储待升级文件;第三存储分区3当前存储有当前启动装载程序和当前***镜像文件。
在本公开实施例中,如图7所示,设备端存储器还包括特定存储分区4。
此外,关于本公开实施例中步骤31的其他相关描述可参见前述实施例中对步骤11和步骤21的描述,此处不再赘述。
可以理解的是,本公开实施例的升级方法在第三存储分区当前存储有当前启动装载程序和当前***镜像文件,第二存储分区当前存储有当前启动装载程序和历史***镜像文件,第二存储分区用于存储待升级文件的前提下执行。
步骤32、将待升级启动装载程序写入至特定存储分区。
步骤33、将待升级启动装载程序和待升级***镜像文件写入至第二存储分区。
在本公开实施例中,由于第三存储分区当前存储有当前启动装载程序和当前***镜像文件,因此第二存储分区作为用于存储待升级文件的存储分区。
在步骤33中,将待升级启动装载程序和待升级***镜像文件写入至第二存储分区,以覆盖第二存储分区中当前存储的当前启动装载程序和历史***镜像文件。
在本公开实施例中,如图7所示,设备端基于当前***镜像文件工作时,存储器的第二存储分区2中当前存储有当前启动装载程序和历史***镜像文件。图8为将待升级启动装载程序和待升级***镜像文件写入至第二存储分区后存储器的结构示意图,在步骤33中,如图8所示,设备端将待升级启动装载程序和待升级***镜像文件写入至第二存储分区2后,第二存储分区2此时存储待升级启动装载程序和待升级***镜像文件。其中,待升级启动装载程序的启动跳转地址为第二存储分区2的起始地址。即,在步骤33中,从第二存储分区2的起始地址开始写入待升级启动装载程序,然后再写入待升级***镜像文件。
在本公开实施例中,待升级启动装载程序中设置有待升级***镜像文件的启动跳转地址,从而在运行待升级启动装载程序后能够自动跳转至该待升级***镜像文件的启动跳转地址以运行该待升级***镜像文件,从而使得设备端能够基于待升级***镜像文件正常工作。
在本公开实施例中,设备端在接收待升级文件之后,将其中的待升级启动装载程序和待升级***镜像文件写入至第二存储分区之前,还需要对待升级***镜像文件进行校验,以校验待升级***镜像文件是否完整和真实可靠,在校验通过后执行将待升级启动装载程序和待升级***镜像文件写入至第二存储分区的步骤即步骤33。在本公开实施例中,可以采用SHA256算法对待升级***镜像文件进行校验。
在本公开实施例中,在步骤33中,待将待升级启动装载程序和待升级***镜像文件全部写入至第二存储分区后,设备端还需要对第二存储分区中存储的数据即待升级启动装载程序(Bootloader)和待升级***镜像文件进行校验,具体可以采用SHA256算法进行校验,在校验通过后则进行下一步操作。
步骤34、在设备端断电重启时,从第一存储分区的起始地址运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序。
在本公开实施例中,在设备端断电重启时,首先从第一存储分区的起始地址开始运行启动引导文件。由于启动引导文件中设置有第二存储分区的起始地址,因此,每次在设备端重启并运行启动引导文件后,将自动跳转至第二存储分区的起始地址,以运行待升级启动装载程序。
步骤35、在运行待升级启动装载程序后,跳转至待升级***镜像文件的启动跳转地址以运行待升级***镜像文件,完成设备端的***升级。
在步骤35中,由于待升级启动装载程序中设置有待升级***镜像文件的启动跳转地址(待升级***镜像文件在第二存储分区中存储的起始地址),因此设备端在运行待升级启动装载程序后,自动跳转至待升级***镜像文件的启动跳转地址以运行待升级***镜像文件,从而完成设备端的***升级。
至此,已完成设备端从当前***镜像文件到待升级***镜像文件的升级,此后,在每次设备端重启时,设备端均通过启动引导文件跳转至待升级启动装载程序,再通过待升级启动装载程序跳转至待升级***镜像文件,以使得设备端在重启后基于待升级***镜像文件进行工作。
在本公开实施例中,通过上述步骤完成设备端的***升级后,将待升级启动装载程序作为当前启动装载程序,待升级***镜像文件作为当前***镜像文件,并等待下一次***升级。
在一些实施例中,参见图7和图8,若未完全将待升级启动装载程序和待升级***镜像文件写入至第二存储分区2,设备端即断电重启时,由于待升级启动装载程序和待升级***镜像文件未完全写入,且未完全写入的待升级启动装载程序已覆盖第二存储分2之前存储的当前启动装载程序,因此将导致设备端无法正常启动,也无法正常工作,即设备端将出现“变砖”情况。
为了有效避免待升级启动装载程序和待升级***镜像文件未完全写入第二存储分区,设备端即断电重启导致设备端出现“变砖”情况的问题,在一些实施例中,若未完全将待升级启动装载程序和待升级***镜像文件写入至第二存储分区,设备端即断电重启时,该升级方法还包括:
步骤341、将当前启动装载程序拷贝至第二存储分区,当前启动装载程序的启动跳转地址为第二存储分区的起始地址,以使设备端重启后能够基于当前***镜像文件工作。
在步骤341中,参见图8,若未完全将待升级启动装载程序和待升级***镜像文件写入至第二存储分2,设备端即断电重启时,从第三存储分区3中将当前启动装载程序拷贝至第二存储分区2,以覆盖第二存储分区2中未完全写入的待升级启动装载程序,其中,拷贝完成后,当前启动装载程序的启动跳转地址为第二存储分区2的起始地址,从而使得设备端重启后能够基于第三存储分区3中的当前***镜像文件工作。
在一些实施例中,由于预先记录了当前启动装载程序的长度和校验值,因此,在步骤341中,可以根据预先记录的当前启动装载程序的长度和对应的校验值将当前启动装载程序拷贝至第二存储分区,其中,当前启动装载程序的长度用于确定当前启动装载程序所需占用的第二存储分区的内存大小,当前启动装载程序对应的校验值用于对当前启动装载程序进行校验。
步骤342、当设备端基于当前***镜像文件工作时,将特定存储分区中的待升级启动装载程序拷贝至第二存储分区,待升级启动装载程序的启动跳转地址为第二存储分区的起始地址,并继续将待升级***镜像文件写入至第二存储分区。
在步骤342中,当设备端基于当前***镜像文件工作时,设备端将特定存储分区中的待升级启动装载程序拷贝至第二存储分区,以覆盖第二存储分区当前存储的当前启动装载程序,并继续将待升级***镜像文件写入至第二存储分区。其中,待升级启动装载程序的启动跳转地址为第二存储分区的起始地址。
在步骤341和步骤342后,当设备端断电重启时,继续执行上述步骤34,以完成设备端的***升级。
此外,关于本公开实施例所提供的升级方法的其他描述可参见前述实施例的描述,此处不再赘述。
图9为本公开实施例提供的再一种用于升级设备端的***的升级方法的流程图,如图9所示,与前述实施例提供的升级方法不同的是,在本公开实施例中,在将待升级启动装载程序和待升级***镜像文件完全写入至第二存储分区之后,即在步骤33之后,还包括步骤331。
步骤331、将第一存储分区对应的状态标志位修改为第二状态,第二状态用于指示在设备端断电重启时在运行启动引导文件后跳转至第二存储分区的起始地址。
在一些实施例中,设备端在将待升级启动装载程序和待升级***镜像文件写入至第二存储分区,并对第二存储分区中的待升级启动装载程序和待升级***镜像文件进行校验之后,将第一存储分区对应的状态标志位修改为第二状态。
为了有效避免待升级启动装载程序和待升级***镜像文件未完全写入第二存储分区,设备端即断电重启导致设备端出现“变砖”情况的问题,在本公开实施例中,在设备端断电重启时,从第一存储分区的起始地址运行启动引导文件之前,需要先检测是否已成功将待升级启动装载程序写入至第二存储分区。具体地,在设备端断电重启时,从第一存储分区的起始地址运行启动引导文件之前,该升级方法还包括:
步骤332、检测第一存储分区对应的状态标志位是否为第二状态或第一状态,若检测为第二状态时,则执行从第一存储分区的起始地址运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序的步骤,若检测为第一状态时,则执行步骤333。
在本公开实施例中,在设备端断电重启时,设备端首先检测第一存储分区对应的状态标志位的状态值,若检测出该第一存储分区对应的状态标志位的状态值为第二状态时,表明待升级启动装载程序和待升级***镜像文件已成功写入第二存储分区,因此在从第一存储分区的起始地址运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序。
由于待升级启动装载程序和待升级***镜像文件未完全写入第二存储分区,因此,第一存储分区对应的状态标志位未被修改,即此时第一存储分区对应的状态标志位仍维持在第一状态。若在步骤332中,检测出该第一存储分区对应的状态标志位的状态值为第一状态时,则表明待升级启动装载程序和待升级***镜像文件未写入或未完全写入第二存储分区,即设备端未能成功从第二***镜像文件升级至第三***镜像文件,因此,为了能够确保设备端仍然能够正常工作,故执行步骤333,以使设备端仍然能够基于当前***镜像文件进行工作。
步骤333、将当前启动装载程序拷贝至第二存储分区,当前启动装载程序的启动跳转地址为第二存储分区的起始地址。
由于第一存储分区对应的状态标志位为第一状态,表明待升级启动装载程序和待升级***镜像文件未写入或未完全写入第二存储分区,因此,第二存储分区当前存储启动装载程序为未完全写入的待升级启动装载程序或者其他启动装载程序,有可能导致设备端无法重新启动而变“砖”。为了有效防止这一现象发生,当检测出第一存储分区对应的状态标志位为第一状态时,在步骤333中,首先将当前启动装载程序拷贝至第二存储分区,以覆盖第二存储分区当前存储的未完全写入的待升级启动装载程序或者其他启动装载程序,且使得当前启动装载程序的启动跳转地址为第二存储分区的起始地址。
在一些实施例中,由于预先记录了当前启动装载程序的长度和校验值,因此,在步骤333中,可以根据预先记录的当前启动装载程序的长度和对应的校验值将当前启动装载程序拷贝至第二存储分区,其中,当前启动装载程序的长度用于确定当前启动装载程序所需占用的第二存储分区的内存大小,当前启动装载程序对应的校验值用于对当前启动装载程序进行校验。
步骤334、从第一存储分区的起始地址运行启动引导文件后,跳转至第二存储分区的起始地址以运行当前启动装载程序。
步骤335、在运行当前启动装载程序后,跳转至当前***镜像文件的启动跳转地址以运行当前***镜像文件,以使设备端基于当前***镜像文件工作。
在本公开实施例中,若在步骤332中检测出第一存储分区对应的状态标志位为第一状态时,即可通过步骤333至步骤335使得设备端能够基于当前***镜像文件进行工作。需要说明的是,前述实施例中的步骤341包括本公开实施例中的步骤333至步骤335。
为了使得设备端在基于当前***镜像文件工作之后,即步骤335之后,能够重新升级至待升级***镜像文件,在步骤335之后,还包括:
步骤336、当设备端基于当前***镜像文件工作时,将特定存储分区中的待升级启动装载程序拷贝至第二存储分区,并继续将待升级***镜像文件写入至第二存储分区,并跳转至步骤331。
在步骤336中,当设备端基于当前***镜像文件工作时,设备端将特定存储分区中的待升级启动装载程序拷贝至第二存储分区,以覆盖第二存储分区当前存储的当前启动装载程序,并继续将待升级***镜像文件写入至第二存储分区。其中,待升级启动装载程序的启动跳转地址为第二存储分区的起始地址。在步骤336中,将待升级启动装载程序和待升级***镜像文件完全写入第二存储分区之后,跳转至执行上述步骤331。
此外,关于本公开实施例所提供的升级方法的具体描述可参见前述实施例的描述,此处不再赘述。
图10为本公开实施例提供的再一种用于升级设备端的***的升级方法的流程图,如图10所示,该升级方法包括:
步骤41、当终端与设备端建立蓝牙连接时,终端的客户端从设备端处获取设备端的当前***镜像版本信息。
在本公开实施例中,终端与设备端可以基于度秘***的移动配件(DuerOS MobileAccessory,简称:DMA)蓝牙协议的进行蓝牙连接,也可以基于其他蓝牙协议进行蓝牙连接,本公开实施例对此不作限制。
在本公开实施例中,终端可以为手机、平板电脑等智能终端,客户端可以为能够与设备端进行交互的应用程序(APP),客户端从设备端处获取的设备端的当前***镜像版本信息可以包括当前***镜像版本号。
步骤42、客户端从设备端对应的服务器处获取设备端的最新***镜像版本信息。
在本公开实施例中,终端与设备端对应的服务器之间可以通过网络连接,客户端可以通过网络获取服务器处存储的设备端的最新***镜像版本信息。其中,最新***镜像版本信息可以包括设备端的最新***镜像版本号。
步骤43、客户端根据设备端的当前***镜像版本信息和设备端的最新***镜像版本信息,判断设备端是否需要进行***升级,若是,执行步骤44,否则结束流程。
在本公开实施例中,客户端通过判断设备端的最新***镜像版本号和设备端的当前***镜像版本号是否一致,来判断设备端是否需要进行***升级。客户端若判断出设备端的最新***镜像版本号和设备端的当前***镜像版本号一致时,则判断出设备端不需要进行***升级,客户端若判断出设备端的最新***镜像版本号和设备端的当前***镜像版本号不一致时,则判断出设备端需要进行***升级。
步骤44、客户端从服务器处获取最新***镜像版本信息对应的OTA升级包。
在本公开实施例中,客户端若判断出设备端需要进行***升级,且检查出服务器处存在最新***镜像版本信息对应的OTA升级包时,则从服务器处下载该OTA升级包。
步骤45、客户端向设备端传输该OTA升级包,该OTA升级包包括待升级启动装载程序和待升级***镜像文件。
在本公开实施例中,客户端在传输上述OTA升级包时,采用分块传输的方式,即客户端首先将OTA升级包分成若干块OTA升级数据,然后将若干块OTA升级数据依次传输给设备端。
在本公开实施例中,当遇到蓝牙带宽不足、蓝牙断连、终端断电、设备端断电等异常情况时,在蓝牙带宽充裕、终端与设备端重新建立蓝牙连接后,客户端对若干块OTA升级数据进行断点续传,直至传输完整的OTA升级包给设备端。
在终端与设备端重新建立蓝牙连接时,若终端的客户端再次通过上述步骤41至步骤44检测到服务器处存在更新的***镜像版本号对应的OTA升级包时,则下载更新的OTA升级包,并传输更新的OTA升级包给设备端。
步骤46、在设备端基于当前***镜像文件工作时,设备端接收待升级文件,该待升级文件为上述OTA升级包,该待升级文件包括上述待升级启动装载程序和待升级***镜像文件。
在步骤46中,在设备端基于当前***镜像文件工作时,设备端接收客户端传输的OTA升级包,即待升级文件,该待升级文件包括上述待升级启动装载程序和待升级***镜像文件。
在一些实施例中,若客户端向设备端分块传输OTA升级包时,设备端首先对每块OTA升级数据进行校验,具体可采用SHA256算法进行校验,校验通过后,则进行下一步操作。
关于步骤46的具体描述可参见前述实施例中对步骤21的描述,此处不再赘述。
步骤47、设备端将待升级启动装载程序和待升级***镜像文件写入至第三存储分区。
需要说明的是,本公开实施例的升级方法基于第二存储分区当前存储有当前启动装载程序和当前***镜像文件,第三存储分区当前为空白分区或者第三存储分区当前存储有历史启动装载程序和历史***镜像文件,第三存储分区用于存储待升级文件的前提下进行。
关于步骤47的具体描述可参见前述实施例中对步骤22的描述,此处不再赘述。
步骤48、设备端将第一存储分区对应的状态标志位修改为第一状态,第一状态用于指示在设备端断电重启时执行将第二启动装载程序拷贝至第二存储分区的步骤。
关于步骤48的具体描述可参见前述实施例中对步骤221的描述,此处不再赘述。
步骤49、在设备端断电重启时,设备端检测第一存储分区对应的状态标志位为第一状态或第二状态,第二状态用于指示在设备端断电重启时在运行启动引导文件后跳转至第二存储分区的起始地址,若检测为第一状态时,则执行步骤50,若检测为第二状态时,则在运行启动引导文件后跳转至第二存储分区的起始地址。
关于步骤49的具体描述可参见前述实施例中对步骤222的描述,此处不再赘述。
步骤50、设备端将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖当前启动装载程序。
关于步骤50的具体描述可参见前述实施例中对步骤23的描述,此处不再赘述。
步骤51、设备端从第一存储分区的起始地址运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序。
关于步骤51的具体描述可参见前述实施例中对步骤24的描述,此处不再赘述。
步骤52、设备端在运行待升级启动装载程序后,跳转至待升级***镜像文件的启动跳转地址以运行待升级***镜像文件,完成设备端的***升级。
关于步骤52的具体描述可参见前述实施例中对步骤25的描述,此处不再赘述。
此外,关于本公开实施例提供的升级方法的其他描述可参见前述实施例的描述,此处不再赘述。
图11为本公开实施例提供的一种用于升级设备端的***的升级装置的结构示意图,其中,设备端包括存储器,存储器包括预先设置的第一存储分区、第二存储分区以及第三存储分区,述第一存储分区用于存储启动引导文件,第二存储分区在第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,第三存储分区在第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件;如图11所示,该升级装置包括接收模块401、写入模块402和运行模块403。
接收模块401用于当设备端基于当前***镜像文件工作时,接收待升级文件,待升级文件包括待升级启动装载程序和待升级***镜像文件。
写入模块402用于将待升级启动装载程序和待升级***镜像文件写入至第二存储分区、第三存储分区中用于存储待升级文件的存储分区。
运行模块403用于在设备端断电重启时,在运行启动引导文件后,跳转运行待升级启动装载程序;在运行待升级启动装载程序后,跳转运行待升级***镜像文件,完成设备端的***升级。
此外,本公开实施例所提供的升级装置,用于实现前述实施例中图1所示的升级方法,具体描述可参见前述实施例中对图1所示的升级方法的描述,此处不再赘述。
图12为本公开实施例提供的另一种升级装置的结构示意图,如图12所示,在本公开实施例中,第二存储分区当前存储有当前启动装载程序和当前***镜像文件;第三存储分区用于存储待升级文件,第三存储分区当前为空白分区或者第三存储分区当前存储有历史启动装载程序和历史***镜像文件。
如图12所示,本公开实施例与前述实施例的升级装置的区别在于,本公开实施例中,接收模块401接收待升级文件后,写入模块402用于将待升级启动装载程序和待升级***镜像文件写入至第三存储分区,该升级装置还包括拷贝模块404。
其中,拷贝模块404用于在设备端断电重启时,运行模块403运行启动引导文件后,跳转运行待升级启动装载程序之前,将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖第二存储分区当前存储的当前启动装载程序,待升级启动装载程序的启动跳转地址为第二存储分区的起始地址。运行模块403具体用于在运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序。
在本公开实施例中,如图12所示,该升级装置还包括状态修改模块405和检测模块406,状态修改模块405用于在写入模块402将待升级启动装载程序和待升级***镜像文件写入至第二存储分区、第三存储分区中用于存储待升级文件的存储分区即第三存储分区之后,将第一存储分区对应的状态标志位修改为第一状态,第一状态用于指示在设备端断电重启时触发拷贝模块404执行将待升级启动装载程序拷贝至第二存储分区的步骤。
检测模块406用于在所述设备端断电重启时,拷贝模块404将待升级启动装载程序拷贝至第二存储分区,并使待升级启动装载程序覆盖第二存储分区当前存储的当前启动装载程序之前,检测第一存储分区对应的状态标志位是否为第一状态或预先设置的第二状态,第二状态用于指示在设备端断电重启时触发运行模块403在运行启动引导文件后跳转至第二存储分区的起始地址;若检测出第一存储分区对应的状态标志位为第一状态时,触发拷贝模块404执行将待升级启动装载程序拷贝至第二存储分区的步骤。
关于本公开实施例的升级装置的其他描述可参见前述实施例的升级装置的描述,此处不再赘述。此外,本公开实施例所提供的升级装置,用于实现前述实施例中图2所示的升级方法,具体描述可参见前述实施例中对图2所示的升级方法的描述,此处不再赘述。
本公开实施例还提供的一种升级装置,在本公开实施例中,第三存储分区当前存储有当前启动装载程序和当前***镜像文件;第二存储分区当前存储有当前启动装载程序和历史***镜像文件,第二存储分区用于存储待升级文件。
如图12所示,本公开实施例与前述实施例的升级装置的区别在于,本公开实施例中,接收模块401接收待升级文件后,写入模块402具体用于将待升级启动装载程序和待升级***镜像文件写入至所述第二存储分区,以覆盖第二存储分区当前存储的当前启动装载程序和历史***镜像文件,待升级启动装载程序的启动跳转地址为第二存储分区的起始地址;运行模块403具体用于在设备端断电重启时,在运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序。
在本公开实施例中,存储器还包括特定存储分区,写入模块402还用于在接收模块接收待升级文件之后,将待升级启动装载程序写入至特定存储分区。
在本公开实施例中,拷贝模块404用于若写入模块402未完全将待升级启动装载程序和待升级***镜像文件写入至第二存储分区,设备端即断电重启时,将当前启动装载程序拷贝至第二存储分区,当前启动装载程序的启动跳转地址为第二存储分区的起始地址,以使设备端重启后能够基于当前***镜像文件工作;当设备端基于当前***镜像文件工作时,将特定存储分区中的待升级启动装载程序拷贝至第二存储分区,待升级启动装载程序的启动跳转地址为第二存储分区的起始地址。
在本公开实施例中,写入模块402还用于在拷贝模块404将特定存储分区中的待升级启动装载程序拷贝至第二存储分区之后,继续将待升级***镜像文件写入至第二存储分区。
在本公开实施例中,状态修改模块405用于在写入模块402将待升级启动装载程序和待升级***镜像文件写入至第二存储分区之后,将第一存储分区对应的状态标志位修改为第二状态,第二状态用于指示在设备端断电重启时触发运行模块403在运行启动引导文件后跳转至第二存储分区的起始地址。
在本公开实施例中,检测模块406用于在设备端断电重启时,运行模块403运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序之前,检测第一存储分区对应的状态标志位是否为第二状态或第一状态,第一状态用于指示在设备端断电重启时触发拷贝模块404执行将当前启动装载程序拷贝至第二存储分区的步骤。若检测出第一存储分区对应的状态标志位为第二状态时,触发运行模块403执行在运行启动引导文件后,跳转至第二存储分区的起始地址以运行待升级启动装载程序的步骤;若检测出第一存储分区对应的状态标志位为第一状态时,触发拷贝模块404执行将当前启动装载程序拷贝至第二存储分区,当前启动装载程序的启动跳转地址为第二存储分区的起始地址,以使设备端重启后能够基于当前***镜像文件工作的步骤。
关于本公开实施例的升级装置的其他描述可参见前述实施例的升级装置的描述,此处不再赘述。此外,本公开实施例所提供的升级装置,用于实现前述实施例中图6所示的升级方法,具体描述可参见前述实施例中对图6所示的升级方法的描述,此处不再赘述。
此外,本公开实施例还提供了一种设备端,设备端可以包括上述任一实施例提供的升级装置。
关于该升级装置的具体描述可参见上述实施例中对升级装置的描述,此处不再赘述。
本公开实施例还提供了一种服务器,该服务器包括:一个或多个处理器以及存储装置;其中,存储装置上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现前述的升级方法。
本公开实施例还提供了一计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被执行时实现前述的升级方法。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述升级方法中任一项方法。
需要说明的是,本文中“起始地址”、“启动跳转地址”均为物理地址。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (17)
1.一种用于升级设备端的***的升级方法,所述设备端包括存储器,所述存储器包括预先设置的第一存储分区、第二存储分区以及第三存储分区,所述第一存储分区用于存储启动引导文件,所述第二存储分区在所述第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,所述第三存储分区在所述第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件;所述升级方法包括:
当所述设备端基于所述当前***镜像文件工作时,接收待升级文件,所述待升级文件包括待升级启动装载程序和待升级***镜像文件;
将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区;
在所述设备端断电重启时,在运行所述启动引导文件后,跳转运行所述待升级启动装载程序;
在运行所述待升级启动装载程序后,跳转运行所述待升级***镜像文件,完成所述设备端的***升级;
在所述第三存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件,所述第二存储分区当前存储有所述当前启动装载程序和历史***镜像文件,所述第二存储分区用于存储待升级文件的情况下,
所述将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区,包括:将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,以覆盖所述第二存储分区当前存储的所述当前启动装载程序和所述历史***镜像文件,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述在所述设备端断电重启时,在运行所述启动引导文件后,跳转运行所述待升级启动装载程序,包括:在所述设备端断电重启时,在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
2.根据权利要求1所述的升级方法,其中在所述第二存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件,所述第三存储分区用于存储待升级文件,所述第三存储分区当前为空白分区或者所述第三存储分区当前存储有历史启动装载程序和历史***镜像文件的情况下,
所述在运行所述启动引导文件后,跳转运行所述待升级启动装载程序之前,还包括:将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述在运行所述启动引导文件后,跳转运行所述待升级启动装载程序,包括:在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
3.根据权利要求2所述的升级方法,其中将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区之后,还包括:
将所述第一存储分区对应的状态标志位修改为第一状态,所述第一状态用于指示在所述设备端断电重启时执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
4.根据权利要求3所述的升级方法,其中所述将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序之前,还包括:
检测所述第一存储分区对应的状态标志位是否为所述第一状态或预先设置的第二状态,所述第二状态用于指示在设备端断电重启时在运行所述启动引导文件后跳转至所述第二存储分区的起始地址;
若检测出所述第一存储分区对应的状态标志位为第一状态时,执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
5.根据权利要求1所述的升级方法,其中所述存储器还包括特定存储分区;所述接收待升级文件之后,还包括:将所述待升级启动装载程序写入至所述特定存储分区;
若未完全将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,所述设备端即断电重启时,所述升级方法还包括:
将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作;
当所述设备端基于所述当前***镜像文件工作时,将所述特定存储分区中的所述待升级启动装载程序拷贝至所述第二存储分区,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址,并继续将所述待升级***镜像文件写入至所述第二存储分区。
6.根据权利要求5所述的升级方法,其中在将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区之后,还包括:
将所述第一存储分区对应的状态标志位修改为第二状态,所述第二状态用于指示在所述设备端断电重启时在运行所述启动引导文件后跳转至所述第二存储分区的起始地址。
7.根据权利要求6所述的升级方法,其中所述在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序之前,还包括:
检测所述第一存储分区对应的状态标志位是否为所述第二状态或第一状态,所述第一状态用于指示在所述设备端断电重启时执行将所述当前启动装载程序拷贝至所述第二存储分区的步骤;
若检测出所述第一存储分区对应的状态标志位为所述第二状态时,执行所述在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序的步骤;
若检测出所述第一存储分区对应的状态标志位为第一状态时,执行所述将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作的步骤。
8.一种用于升级设备端的***的升级装置,所述设备端包括存储器,所述存储器包括预先设置的第一存储分区、第二存储分区以及第三存储分区,所述第一存储分区用于存储启动引导文件,所述第二存储分区在所述第三存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件,所述第三存储分区在所述第二存储分区中存储有当前启动装载程序和当前***镜像文件时用于存储待升级文件;所述升级装置包括:
接收模块,用于当所述设备端基于所述当前***镜像文件工作时,接收待升级文件,所述待升级文件包括待升级启动装载程序和待升级***镜像文件;
写入模块,用于将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区;
运行模块,用于在所述设备端断电重启时,在运行所述启动引导文件后,跳转运行所述待升级启动装载程序;在运行所述待升级启动装载程序后,跳转运行所述待升级***镜像文件,完成所述设备端的***升级;
在所述第三存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件,所述第二存储分区当前存储有所述当前启动装载程序和历史***镜像文件,所述第二存储分区用于存储待升级文件的情况下,
所述写入模块具体用于将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,以覆盖所述第二存储分区当前存储的所述当前启动装载程序和所述历史***镜像文件,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述运行模块具体用于在所述设备端断电重启时,在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
9.根据权利要求8所述的升级装置,其中在所述第二存储分区当前存储有所述当前启动装载程序和所述当前***镜像文件,所述第三存储分区用于存储待升级文件,所述第三存储分区当前为空白分区或者所述第三存储分区当前存储有历史启动装载程序和历史***镜像文件的情况下,
所述升级装置还包括拷贝模块,所述拷贝模块用于在所述设备端断电重启时,所述运行模块运行所述启动引导文件后,跳转运行所述待升级启动装载程序之前,将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述运行模块具体用于在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序。
10.根据权利要求9所述的升级装置,其中还包括状态修改模块,所述状态修改模块用于在所述写入模块将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区、所述第三存储分区中用于存储待升级文件的存储分区之后,将所述第一存储分区对应的状态标志位修改为第一状态,所述第一状态用于指示在所述设备端断电重启时触发所述拷贝模块执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
11.根据权利要求10所述的升级装置,其中还包括检测模块,所述检测模块用于在所述设备端断电重启时,所述拷贝模块将所述待升级启动装载程序拷贝至所述第二存储分区,并使所述待升级启动装载程序覆盖所述第二存储分区当前存储的所述当前启动装载程序之前,检测所述第一存储分区对应的状态标志位是否为所述第一状态或预先设置的第二状态,所述第二状态用于指示在设备端断电重启时触发所述运行模块在运行所述启动引导文件后跳转至所述第二存储分区的起始地址;若检测出所述第一存储分区对应的状态标志位为第一状态时,触发所述拷贝模块执行将所述待升级启动装载程序拷贝至所述第二存储分区的步骤。
12.根据权利要求8所述的升级装置,其中所述存储器还包括特定存储分区;所述升级装置还包括拷贝模块;
所述写入模块还用于在所述接收模块接收待升级文件之后,将所述待升级启动装载程序写入至所述特定存储分区;
所述拷贝模块用于若所述写入模块未完全将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区,所述设备端即断电重启时,将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作;当所述设备端基于所述当前***镜像文件工作时,将所述特定存储分区中的所述待升级启动装载程序拷贝至所述第二存储分区,所述待升级启动装载程序的启动跳转地址为所述第二存储分区的起始地址;
所述写入模块还用于在所述拷贝模块将所述特定存储分区中的所述待升级启动装载程序拷贝至所述第二存储分区之后,继续将所述待升级***镜像文件写入至所述第二存储分区。
13.根据权利要求12所述的升级装置,其中还包括状态修改模块,所述状态修改模块用于在所述写入模块将所述待升级启动装载程序和所述待升级***镜像文件写入至所述第二存储分区之后,将所述第一存储分区对应的状态标志位修改为第二状态,所述第二状态用于指示在所述设备端断电重启时触发所述运行模块在运行所述启动引导文件后跳转至所述第二存储分区的起始地址。
14.根据权利要求13所述的升级装置,其中还包括检测模块,所述检测模块用于在所述设备端断电重启时,所述运行模块运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序之前,检测所述第一存储分区对应的状态标志位是否为所述第二状态或第一状态,所述第一状态用于指示在所述设备端断电重启时触发所述拷贝模块执行将所述当前启动装载程序拷贝至所述第二存储分区的步骤;
所述检测模块若检测出所述第一存储分区对应的状态标志位为所述第二状态时,触发所述运行模块执行所述在运行所述启动引导文件后,跳转至所述第二存储分区的起始地址以运行所述待升级启动装载程序的步骤;
所述检测模块若检测出所述第一存储分区对应的状态标志位为第一状态时,触发所述拷贝模块执行所述将所述当前启动装载程序拷贝至所述第二存储分区,所述当前启动装载程序的启动跳转地址为所述第二存储分区的起始地址,以使所述设备端重启后能够基于所述当前***镜像文件工作的步骤。
15.一种设备端,包括权利要求8至14任一项所述的升级装置。
16.一种服务器,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的升级方法。
17.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如权利要求1-7中任一项所述的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910786357.XA CN112416411B (zh) | 2019-08-23 | 2019-08-23 | 升级方法及装置、设备端、服务器、计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910786357.XA CN112416411B (zh) | 2019-08-23 | 2019-08-23 | 升级方法及装置、设备端、服务器、计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416411A CN112416411A (zh) | 2021-02-26 |
CN112416411B true CN112416411B (zh) | 2023-08-18 |
Family
ID=74779852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910786357.XA Active CN112416411B (zh) | 2019-08-23 | 2019-08-23 | 升级方法及装置、设备端、服务器、计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416411B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594639A (zh) * | 2021-06-15 | 2023-08-15 | 荣耀终端有限公司 | ***安装包的管理方法、设备、存储介质及程序产品 |
CN113946360B (zh) * | 2021-12-21 | 2022-04-19 | 万帮数字能源股份有限公司 | 功率转换控制器的引导程序的升级方法和装置 |
CN117389578A (zh) * | 2022-07-05 | 2024-01-12 | 中兴通讯股份有限公司 | 云终端***升级方法、装置、云终端和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572229A (zh) * | 2015-02-12 | 2015-04-29 | 西安诺瓦电子科技有限公司 | 嵌入式***的固件升级方法以及固件升级装置 |
CN107577563A (zh) * | 2017-09-26 | 2018-01-12 | 晶晨半导体(上海)股份有限公司 | 一种***升级异常断电的保护方法及终端设备 |
CN109960523A (zh) * | 2017-12-22 | 2019-07-02 | 浙江宇视科技有限公司 | 一种嵌入式设备的固件升级方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430223B2 (en) * | 2014-09-25 | 2016-08-30 | International Business Machines Corporation | Live operating system update mechanisms |
-
2019
- 2019-08-23 CN CN201910786357.XA patent/CN112416411B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572229A (zh) * | 2015-02-12 | 2015-04-29 | 西安诺瓦电子科技有限公司 | 嵌入式***的固件升级方法以及固件升级装置 |
CN107577563A (zh) * | 2017-09-26 | 2018-01-12 | 晶晨半导体(上海)股份有限公司 | 一种***升级异常断电的保护方法及终端设备 |
CN109960523A (zh) * | 2017-12-22 | 2019-07-02 | 浙江宇视科技有限公司 | 一种嵌入式设备的固件升级方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种IPTV机顶盒的软件在线升级方案设计与实现;杨崇江;孙世新;;成都信息工程学院学报(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112416411A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8539471B2 (en) | Updating firmware of an electronic device | |
US10162625B2 (en) | Vehicle control storage methods and systems | |
CN102830984B (zh) | 固件更新的方法、芯片以及通信终端 | |
CN110659046B (zh) | 固件升级方法、终端、充电盒、耳机及存储介质 | |
CN112416411B (zh) | 升级方法及装置、设备端、服务器、计算机可读介质 | |
CN110825563B (zh) | ***恢复方法、装置以及电子设备 | |
JP2003029997A (ja) | ネットワーク環境におけるソフトウェアアップグレード方法及びそれによるネットワークデバイス | |
KR20040008007A (ko) | 무선단말기 펌웨어 업그레이드 방법 | |
JPWO2009078285A1 (ja) | 無線端末、無線端末の不揮発性メモリ、および診断情報のフェイルセーフ保存方法 | |
CN112612524A (zh) | Linux***启动的方法、装置、设备及存储介质 | |
WO2024078218A1 (zh) | ***启动方法及电子设备 | |
CN108121560A (zh) | 差分包升级方法、装置、终端及计算机可读存储介质 | |
CN110580167A (zh) | 一种***升级方法、智能设备及服务器 | |
CN112433739B (zh) | 一种固件升级方法 | |
CN113032183A (zh) | ***管理方法、装置、计算机设备和存储介质 | |
CN113626059A (zh) | ***升级方法、摄像机及计算机可读存储介质 | |
CN106933604B (zh) | 一种***升级方法及装置 | |
CN112181467A (zh) | 终端的存储器固件升级方法、装置、终端和存储介质 | |
CN115357295B (zh) | ***回退方法、设备及存储介质 | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
CN114995852A (zh) | 一种设备升级方法、设备及计算机可读存储介质 | |
CN114780122A (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN111953803A (zh) | Bmc启动方法、设备、***及存储介质 | |
KR100588199B1 (ko) | 휴대 단말기에서 프로그램 다운로드 실패시 이의 복구방법 및 이를 적용한 휴대 단말기 | |
CN117270914B (zh) | 一种终端设备的***升级方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210513 Address after: 100085 Baidu Building, 10 Shangdi Tenth Street, Haidian District, Beijing Applicant after: BAIDU ONLINE NETWORK TECHNOLOGY (BEIJING) Co.,Ltd. Applicant after: Shanghai Xiaodu Technology Co.,Ltd. Address before: 100085 Baidu Building, 10 Shangdi Tenth Street, Haidian District, Beijing Applicant before: BAIDU ONLINE NETWORK TECHNOLOGY (BEIJING) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |