CN111611000A - 一种高可靠的固件空中升级方法及系统 - Google Patents

一种高可靠的固件空中升级方法及系统 Download PDF

Info

Publication number
CN111611000A
CN111611000A CN202010266306.7A CN202010266306A CN111611000A CN 111611000 A CN111611000 A CN 111611000A CN 202010266306 A CN202010266306 A CN 202010266306A CN 111611000 A CN111611000 A CN 111611000A
Authority
CN
China
Prior art keywords
minimum system
new
firmware
upgrade file
old
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.)
Granted
Application number
CN202010266306.7A
Other languages
English (en)
Other versions
CN111611000B (zh
Inventor
石怀文
黄永佳
周进
雷扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aojie Technology Shanghai Co ltd
Original Assignee
Aojie Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aojie Technology Shanghai Co ltd filed Critical Aojie Technology Shanghai Co ltd
Priority to CN202010266306.7A priority Critical patent/CN111611000B/zh
Publication of CN111611000A publication Critical patent/CN111611000A/zh
Application granted granted Critical
Publication of CN111611000B publication Critical patent/CN111611000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种固件空中升级方法。步骤S10:生成固件升级文件。步骤S20:电子设备运行旧的最小系统,下载最小系统差分升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中。步骤S30:电子设备运行旧的最小系统,利用旧的最小系统和最小系统差分升级文件得到新的最小系统并保存到非易失性存储器中。步骤S40:电子设备运行新的最小系统,下载非最小系统升级文件并直接保存到非易失性存储器中但不能覆盖新的最小系统。本申请实现了固件空中升级的掉电保护,并且节省了非易失性存储资源并对其高效利用。

Description

一种高可靠的固件空中升级方法及系统
技术领域
本申请涉及一种电子设备的固件空中升级(FOTA,firmware over the air)方法。
背景技术
电子设备中一般包括易失性存储器(volatile memory)和非易失性存储器(Non-Volatile Memory,NVM);前者在掉电后不保存数据,典型代表为DDR SDRAM(Double DataRate Synchronous Dynamic Random Access Memory,双倍数据率同步动态随机存取存储器);后者在掉电后保存数据,典型代表为闪存(flash memory,快闪存储器)。
电子设备的固件空中升级一般都是下载固件升级文件到本地的非易失性存储器中,然后对旧固件进行更新。但是对于非易失性存储资源有限的设备,没有足够的非易失性存储器用来存储固件升级文件,只能把下载的固件升级文件保存在易失性存储器中,然后对旧固件进行升级。在一些由电池供电的设备中,通常检测电池电量足够的情况下才进行升级,这样是为了避免固件升级中途掉电的一种保护措施。但是这并不能完全保证固件升级过程中不掉电,比如人为偶然地拔出电池等情况,此时固件升级就会失败。电子设备重新上电后,固件升级文件丢失,因而系统不能继续升级;旧固件被破坏,因而系统不可启动;电子设备就不能再使用。对于另外一些非电池供电的设备,固件升级就更不能得到掉电保护,设备随时可能掉电,重新上电后系统将不可继续升级或启动,电子设备变砖。
因此将固件升级文件保存在易失性存储器中的固件升级方法是有缺陷的。如果在固件升级过程中电子设备异常断电,那么保存在易失性存储器中的固件升级文件会丢失。此时固件升级文件丢失,旧固件也已经被破坏,整个系统就不可再恢复,电子设备不能再启动,出现变砖的问题。
发明内容
本申请所要解决的技术问题是提供一种电子设备的固件空中升级方法,让升级安全可靠。在掉电的情况下,电子设备重新上电后可以继续升级固件。
为解决上述技术问题,本申请提供了一种高可靠的固件空中升级方法,包括如下步骤。步骤S10:将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;将新的最小系统和旧的最小系统进行差分处理得到最小系统差分升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域。步骤S20:电子设备运行旧的最小系统,下载最小系统差分升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中。步骤S30:电子设备运行旧的最小系统,利用旧的最小系统和最小系统差分升级文件得到新的最小系统并保存到非易失性存储器中。步骤S40:电子设备运行新的最小系统,下载非最小系统升级文件并直接保存到非易失性存储器中但不能覆盖新的最小系统,将新的最小系统和新的非最小系统合并为完整的新固件。这是本申请的实施例一,电子设备进行固件升级时从空中下载最小系统差分升级文件和新的非最小系统。
可替换地,所述步骤S10至S30改为如下步骤S12至步骤S32。步骤S12:将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;将新的最小系统作为最小系统升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域,将非易失性存储器中保存旧的最小系统的存储空间称为第二存储区域。步骤S22:电子设备运行旧的最小系统,下载最小系统升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中。步骤S32:电子设备运行旧的最小系统,将最小系统升级文件保存到非易失性存储器中。这是本申请的实施例二,电子设备进行固件升级时从空中下载新的最小系统和新的非最小系统。
进一步地,所述步骤S20或步骤S22中,最小系统差分升级文件或最小系统升级文件优先保存在非易失性存储器的空闲区域;如果空闲区域不够,则继续占用第一存储区域来保存。可以发现第一存储区域不是最小系统所需要的,因此在运行最小系统进行最小系统升级时可被擦写以提供掉电保护。
进一步地,所述步骤S10或步骤S12中,将非易失性存储器中保存旧的最小系统的存储空间称为第二存储区域;所述步骤S30或步骤S32中,新的最小系统优先保存到非易失性存储器的第二存储区域中;如果第二存储区域不够,则继续占用第一存储区域和/或非易失性存储器的空闲区域来保存。第二存储区域先后存放旧的最小系统、新的最小系统是为了节约电子设备的非易失性存储资源。
进一步地,所述第一存储区域和第二存储区域或者连续存放,顺序不限;或者任何一个或两个非连续存放。这两种存放方式均适用于本申请的整体技术方案的实施。
进一步地,所述步骤S10中,所述最小系统差分升级文件的数据部分在前,头部在后。这样在特殊情况下,即使最小系统差分升级文件的前面部分被覆盖,后半部分仍保留了头部信息可用于继续执行最小系统升级。
进一步地,所述步骤S20或步骤S22中,当最小系统差分升级文件或最小系统升级文件的校验通过时才进入下一步;校验不通过时则继续运行旧的最小系统,重复下载最小系统差分升级文件或最小系统升级文件,直到下载的文件通过校验。所述步骤S40中,当下载完成后电子设备对非最小系统升级文件进行校验,校验正确后再将新的最小系统和新的非最小系统合并为完整的新固件,否则重复步骤S40直到文件校验通过。进行文件校验是为了确保下载的文件准确无误。
进一步地,所述步骤S30中,当新的最小系统的体积和旧的最小系统的体积相同时,新的最小系统仅占用第二存储区域;当新的最小系统的体积小于旧的最小系统的体积时,新的最小系统仅占用了第二存储区域的部分空间,第二存储区域的剩余空间释放作为非易失性存储器的空闲区域;当新的最小系统的体积大于旧的最小系统的体积时,新的最小系统不仅完全占用了第二存储区域,还额外占用了非易失性存储器中的第一存储区域和/或空闲区域的部分或全部空间。这是新的最小系统和第二存储区域的对应关系的三种不同情况。
进一步地,所述步骤S30或步骤S32中,在最小系统升级过程中记录升级状态;当出现电子设备掉电或其他异常时,等电子设备再次上电后根据记录的状态继续执行未完成的最小系统升级,直至最小系统升级成功。这是为了提供高可靠性的掉电保护。
进一步地,所述步骤S40中,如果存放非最小系统升级文件后,第一存储区域还有剩余空间,则释放作为非易失性存储器的空闲区域;残余的最小系统差分升级文件或最小系统升级文件也释放作为非易失性存储器的空闲区域。这里说明了第一存储区域的最终安排。
本申请还提供了一种高可靠的固件空中升级系统,包括固件升级文件生成单元一、最小系统下载验证单元一、最小系统升级单元一和非最小系统下载验证单元。所述固件升级文件生成单元一用来将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;将新的最小系统和旧的最小系统进行差分处理得到最小系统差分升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域。所述最小系统下载验证单元一用来下载最小系统差分升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中。所述最小系统升级单元一用来利用旧的最小系统和最小系统差分升级文件得到新的最小系统并保存到非易失性存储器的第二存储区域中。所述非最小系统下载验证单元用来下载非最小系统升级文件并直接保存到非易失性存储器中但不能覆盖新的最小系统,将新的最小系统和新的非最小系统合并为完整的新固件。这是本申请的实施例一。
进一步地,所述固件升级文件生成单元一、最小系统下载验证单元一、最小系统升级单元一分别改为固件升级文件生成单元二、最小系统下载验证单元二、最小系统升级单元二。所述固件升级文件生成单元二用来将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分。将新的最小系统作为最小系统升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域。所述最小系统下载验证单元二用来下载最小系统升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中。所述最小系统升级单元二用来将存储的新的最小系统保存到非易失性存储器中。这是本申请的实施例二。
本申请取得的技术效果是基于可联网的电子设备,在非易失性存储资源已经被占用或不足的情况下,利用可联网的最小系统先对最小系统升级,该过程中储存非最小系统的非易失性存储区域(即第一存储区域)可以被擦除,用来存储最小系统的固件升级文件。在升级最小系统时,因为升级文件存储在非易失性存储器中,所以可以实现掉电继续升级。当最小系统升级完成后,升级后的可联网的新的最小系统可以下载非最小系统的升级文件,直接写入旧的非最小系统的非易失性存储区域(即第二存储区域)。即使升级过程中掉电,那么新的最小系统没有破坏,可以继续下载非最小系统文件进行升级。最后非最小系统升级完成,将新的最小系统和新的非最小系统合并为完整的新固件,退出新的最小系统,启动运行新的完整的固件系统。本申请利用最小系统为具有联网功能的电子设备进行固件系统的修复和优化,实现了掉电依然可以继续完成固件升级,解决整个系统升级过程中掉电变砖的问题;并且节省了非易失性存储资源并对其高效利用。
附图说明
图1是本申请提供的高可靠的固件空中升级方法的实施例一的流程图。
图2是最小系统差分升级文件和非最小系统升级文件的示意图。
图3是本申请提供的高可靠的固件空中升级方法的实施例二的流程图。
图4是最小系统升级文件和非最小系统升级文件的示意图。
图5是最小系统和非最小系统在非易失性存储器中连续存放的示意图。
图6是最小系统和非最小系统在非易失性存储器中非连续存放的示意图。
图7是最小系统差分升级文件的数据结构示意图。
图8是最小系统差分升级文件或最小系统升级文件的存储区域示意图。
图9是最小系统升级的示意图。
图10是非最小系统升级的示意图。
图11是本申请提供的高可靠的固件空中升级系统的实施例一的结构示意图。
图12是本申请提供的高可靠的固件空中升级系统的实施例二的结构示意图。
图中附图标记说明:10为固件升级文件生成单元一;12为固件升级文件生成单元二;20为最小系统下载验证单元一;22为最小系统下载验证单元二;30为最小系统升级单元一;32为最小系统升级单元二;40为非最小系统下载验证单元。
具体实施方式
请参阅图1,本申请提供的高可靠的固件空中升级方法的实施例一包括如下步骤。
步骤S10:生成固件升级文件。请参阅图2,将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分。将新的最小系统和旧的最小系统进行差分处理得到最小系统差分升级文件,将新的非最小系统作为非最小系统升级文件。这一步优选地在服务器端进行。所述最小系统是指只占用最少的硬件资源而能使电子设备开机和运行的最基本的固件环境,必须具有联网功能而使电子设备能够访问网络。所述非最小系统是指整个固件系统中除最小系统以外的部分。为了便于描述,将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域,将非易失性存储器中保存旧的最小系统的存储空间称为第二存储区域。
步骤S20:电子设备运行旧的最小系统,下载最小系统差分升级文件并将其保存到非易失性存储器中。最小系统差分升级文件优先保存在非易失性存储器的空闲区域;如果空闲区域不够,则继续占用第一存储区域来保存。请参阅图8,这是最小系统差分升级文件部分占用第一存储区域的一个示例。该示例中,第一存储区域原本用来保存旧的非最小系统,此时第一存储区域被部分或全部覆盖,改为部分或全部存储最小系统差分升级文件。在其他示例中,如果非易失性存储器的空闲区域足够,最小系统差分升级文件就不占用第一存储区域。随后电子设备校验最小系统差分升级文件是否正确。正确就进入步骤S30,否则重复步骤S20直至文件校验正确。
步骤S30:电子设备运行旧的最小系统,进行最小系统升级。这一步是利用储存的旧的最小系统和最小系统差分升级文件得到新的最小系统,例如采用差分还原算法,新的最小系统优先保存到非易失性存储器的第二存储区域中;如果第二存储区域不够,则继续占用第一存储区域和/或非易失性存储器的空闲区域来保存。此时第二存储区域被部分或全部覆盖,改为存储新的最小系统。这一步完成后新的最小系统可以运行且具有联网功能。
由于新的最小系统的体积和旧的最小系统的体积可能相同也可能不同,因此新的最小系统与第二存储区域的关系较为复杂。第一种情况是新的最小系统的体积和旧的最小系统的体积相同时,新的最小系统仅占用第二存储区域。第二种情况是新的最小系统的体积小于旧的最小系统的体积时,新的最小系统仅占用了第二存储区域的部分空间,第二存储区域的剩余空间释放作为非易失性存储器的空闲区域。第三种情况是新的最小系统的体积大于旧的最小系统的体积时,新的最小系统不仅完全占用了第二存储区域,还额外占用了非易失性存储器的其他区域。请参阅图9,这是第三种情况的一种示例,新的最小系统还占用了第一存储区域的部分空间。在其他示例中,新的最小系统也可能占用非易失性存储器的空闲区域,或者同时占用非易失性存储器的第一存储区域和空闲区域的部分或全部空间。
步骤S40:电子设备运行新的最小系统,下载非最小系统升级文件,将下载的非最小系统升级文件直接保存到非易失性存储器的第一存储区域或空闲区域中,但不能覆盖新的最小系统。例如,非最小系统升级文件优先保存在第一存储区域中;如果第一存储区域不够,再继续保存到非易失性存储器的空闲区域中。请参阅图10,这是非最小系统升级文件直接保存到第一存储区域的一个示例。该示例延续图9的示例,新的最小系统还占用了第一存储区域的部分空间,那么非最小系统升级文件不能覆盖第一存储区域中的新的最小系统。如果存放非最小系统升级文件后,第一存储区域还有剩余空间,则释放作为非易失性存储器的空闲区域。残余的最小系统差分升级文件也释放作为非易失性存储器的空闲区域。下载完成后电子设备对非最小系统升级文件进行校验,校验正确后将新的最小系统和新的非最小系统合并为完整的新固件,重启电子设备后即可加载完整的新固件,否则重复步骤S40直到文件校验通过。
上述实施例一如果观察非易失性存储器的第一存储区域,可以发现在步骤S10中该第一存储区域存放的是旧的非最小系统,如图2所示;在步骤S20至步骤S30中该第一存储区域有可能不变也有可能被部分或全部占用而改为存放最小系统差分升级文件,如图8所示;在步骤S40中该第一存储区域存放的是新的非最小系统,也可能部分被新的最小系统占用,也可能部分释放作为空闲区域,如图9、图10所示。如果观察非易失性存储器的第二存储区域,可以发现在步骤S10至步骤S20中该第二存储区域存放的是旧的最小系统,如图2、图8所示;在步骤S30至步骤S40中该第二存储区域存放的是新的最小系统,也可能部分释放作为空闲区域,如图9、图10所示。
请参阅图3,本申请提供的高可靠的固件空中升级方法的实施例二包括如下步骤。
步骤S12:生成固件升级文件。请参阅图4,将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分。将新的最小系统作为最小系统升级文件,将新的非最小系统作为非最小系统升级文件。这一步优选地在服务器端进行。
步骤S22:电子设备运行旧的最小系统,下载最小系统升级文件并将其保存到非易失性存储器中。最小系统升级文件优先保存在非易失性存储器的空闲区域;如果空闲区域不够,则继续占用第一存储区域来保存。请参阅图8,这是最小系统升级文件部分占用第一存储区域的一个示例。该示例中,第一存储区域原本用来保存旧的非最小系统,此时第一存储区域被部分或全部覆盖,改为部分或全部存储最小系统升级文件。在其他示例中,如果非易失性存储器的空闲区域足够,最小系统升级文件就不占用第一存储区域。随后电子设备校验最小系统升级文件是否正确。正确就进入步骤S32,否则重复步骤S22直至文件校验正确。
步骤S32:电子设备运行旧的最小系统,进行最小系统升级。这一步是将最小系统升级文件即新的最小系统优先保存到非易失性存储器的第二存储区域中;如果第二存储区域不够,则继续占用第一存储区域和/或非易失性存储器的空闲区域来保存。此时第二存储区域被部分或全部覆盖,改为存储新的最小系统。这一步完成后新的最小系统可以运行且具有联网功能。
由于新的最小系统的体积和旧的最小系统的体积可能相同也可能不同,因此新的最小系统与第二存储区域的关系较为复杂。这部分与实施例一相同,不再赘述。
步骤S40:电子设备运行新的最小系统,下载非最小系统升级文件,将下载的非最小系统升级文件直接保存到非易失性存储器的第一存储区域或空闲区域中,但不能覆盖新的最小系统。例如,非最小系统升级文件优先保存在第一存储区域中;如果第一存储区域不够,再继续保存到非易失性存储器的空闲区域中。请参阅图10,这是非最小系统升级文件直接保存到第一存储区域的一个示例。该示例延续图9的示例,新的最小系统还占用了第一存储区域的部分空间,那么非最小系统升级文件不能覆盖第一存储区域中的新的最小系统。如果存放非最小系统升级文件后,第一存储区域还有剩余空间,则释放作为非易失性存储器的空闲区域。残余的最小系统升级文件也释放作为非易失性存储器的空闲区域。下载完成后电子设备对非最小系统升级文件进行校验,校验正确后将新的最小系统和新的非最小系统合并为完整的新固件,重启电子设备后即可加载完整的新固件,否则重复步骤S40直到文件校验通过。
上述实施例二如果观察非易失性存储器的第一存储区域,可以发现在步骤S10中该第一存储区域存放的是旧的非最小系统,如图2所示;在步骤S20至步骤S30中该第一存储区域有可能不变也有可能被部分或全部占用而改为存放最小系统升级文件,如图8所示;在步骤S40中该第一存储区域存放的是新的非最小系统,也可能部分被新的最小系统占用,也可能部分释放作为空闲区域,如图9图10所示。如果观察非易失性存储器的第二存储区域,可以发现在步骤S10至步骤S20中该第二存储区域存放的是旧的最小系统,如图2、图8所示;在步骤S30至步骤S40中该第二存储区域存放的是新的最小系统,也可能部分释放作为空闲区域,如图9、图10所示。
上述两个实施例的区别主要在于生成是最小系统差分升级文件还是最小系统升级文件、相应地下载的是最小系统差分升级文件还是最小系统升级文件。通常而言,最小系统差分升级文件比新的最小系统的体积更小,因此对于非易失性存储资源有限的电子设备而言,实施例一更适合。但是如果新的最小系统比最小系统差分升级文件的体积更小,那么实施例二更适合。因此电子设备优选地下载最小系统差分升级文件和新的最小系统两者中体积较小的那一个,并采用相对应的实施例;如果两者体积相同,则下载任何一个都可以,并采用相对应的实施例。
本申请中,将非易失性存储器中的第一存储区域用来在固件升级过程中当非易失性存储器的空闲区域不足时临时存放最小系统差分升级文件或最小系统升级文件,因此非最小系统升级不能采用差分方式,只能采用完整升级方式。
进一步地,所述步骤S10中,电子设备对固件系统的存放有两种方式。第一种方式如图5所示,最小系统所在的第二存储区域和非最小系统所在的第一存储区域在非易失性存储器中连续存放,顺序不限。第二种方式如图6所示,最小系统所在的第二存储区域和非最小系统所在的第一存储区域在非易失性存储器中非连续存放。这两种存放方式对本申请的实现没有任何影响,将多个部分的第一存储区域仍视作一个整体处理,将多个部分的第二存储区域仍视作一个整体处理。
进一步地,所述步骤S20或步骤S22中,当最小系统差分升级文件或最小系统升级文件的校验不通过时,电子设备继续运行旧的最小系统,重复下载最小系统差分升级文件或最小系统升级文件,直到下载的文件通过校验。这是由于之前下载的最小系统差分升级文件或最小系统升级文件可能储存到旧的非最小系统存放的第一存储区域,旧的非最小系统可能已经破坏,所以只能继续运行旧的最小系统来下载最小系统差分升级文件或最小系统升级文件。
进一步地,所述步骤S10中,所述最小系统差分升级文件的数据部分在前,头部在后,如图7所示。文件的头部通常保存有一些重要信息,将文件的头部放在文件的末尾是为了保护文件的头部。例如,请参阅图9,当新的最小系统的体积大于旧的最小系统的体积时,新的最小系统会占用例如第一存储区域的部分或全部空间。如果在此过程中设备掉电,那么最小系统差分升级文件的前面一部分有可能已被擦除而写入新的最小系统文件,而最小系统差分升级文件的后面的剩余部分未被擦除。这样在断电重启后,依然可以通过最小系统差分升级文件末尾的头部获得最小系统差分升级文件的重要信息,完成剩下的最小系统升级。
优选地,所述步骤S30或步骤S32中,在最小系统升级过程中记录升级状态。这样当出现电子设备掉电或其他异常时,由于最小系统差分升级文件或最小系统升级文件存储在非易失性存储器中不会丢失,等电子设备再次上电后根据记录的状态可以继续执行未完成的最小系统升级,直至最小系统升级成功。
请参阅图11,本申请提供的高可靠的固件空中升级系统的实施例一包括固件升级文件生成单元一10、最小系统下载验证单元一20、最小系统升级单元一30和非最小系统下载验证单元40,与图1相对应。
所述固件升级文件生成单元一10用来生成固件升级文件。具体而言是将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分。将新的最小系统和旧的最小系统进行差分处理得到最小系统差分升级文件,将新的非最小系统作为非最小系统升级文件。
所述最小系统下载验证单元一20用来下载最小系统差分升级文件并将其保存到非易失性存储器中,优先保存在空闲区域,如果空闲区域不够则继续占用第一存储区域来保存;随后校验最小系统差分升级文件是否正确。所述最小系统下载验证单元一20例如由旧的最小系统实现。
所述最小系统升级单元一30用来进行最小系统升级。具体而言是利用存储的旧的最小系统和最小系统差分升级文件得到新的最小系统,新的最小系统优先保存到非易失性存储器的第二存储区域中,如果第二存储区域不够则继续占用第一存储区域和/或非易失性存储器的空闲区域来保存。所述最小系统升级单元一30例如由旧的最小系统实现。
所述非最小系统下载验证单元40用来下载非最小系统升级文件,将下载的非最小系统升级文件直接保存到非易失性存储器的第一区域和/或空闲区域中,但不能覆盖新的最小系统。下载完成后对非最小系统升级文件进行校验,校验通过后将新的最小系统和新的非最小系统合并为完整的新固件。所述非最小系统下载验证单元40例如由新的最小系统实现。
请参阅图12,本申请提供的高可靠的固件空中升级系统的实施例二包括固件升级文件生成单元二12、最小系统下载验证单元二22、最小系统升级单元二32和非最小系统下载验证单元40,与图3相对应。
所述固件升级文件生成单元二12用来生成固件升级文件。具体而言是将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分。将新的最小系统作为最小系统升级文件,将新的非最小系统作为非最小系统升级文件。
所述最小系统下载验证单元二22用来下载最小系统升级文件并将其保存到非易失性存储器中,优先保存在空闲区域,如果空闲区域不够则继续占用第一存储区域来保存;随后校验最小系统升级文件是否正确。所述最小系统下载验证单元二22例如由旧的最小系统实现。
所述最小系统升级单元二32用来进行最小系统升级。具体而言是将存储的新的最小系统保存到非易失性存储器的第二存储区域中,如果第二存储区域不够则继续占用第一存储区域和/或非易失性存储器的空闲区域来保存。所述最小系统升级单元二32例如由旧的最小系统实现。
所述非最小系统下载验证单元40用来下载非最小系统升级文件,将下载的非最小系统升级文件直接保存到非易失性存储器的第一区域和/或空闲区域中。下载完成后对非最小系统升级文件进行校验,校验通过后将新的最小系统和新的非最小系统合并为完整的新固件。所述非最小系统下载验证单元40例如由新的最小系统实现。
本申请利用可连网的最小系统进行电子设备的固件空中升级,最小系统运行时不需要用到的非最小系统在非易失性存储器中的存储空间(即第一存储区域)用来临时保存最小系统差分升级文件或最小系统升级文件,实现高可靠低成本的固件空中升级。其具有如下有益的技术效果。
第一,适用于各类电子设备,尤其适用于非易失性存储资源有限的电子设备。通过将整个固件系统分为最小系统和非最小系统,由可连网的最小系统执行固件升级,为整个升级过程提供了掉电保护。
第二,最小系统占用最少的非易失性存储资源,将非最小系统在非易失性存储器中的存储空间(即第一存储区域)用来干其他事,比如临时保存最小系统差分升级文件或最小系统升级文件,非最小系统的存储资源的利用实现了高可靠性的断电保护。
第三,在整个固件升级过程中,非最小系统在非易失性存储器中的存储空间(即第一存储区域)被反复利用,先是被用来存放最小系统差分升级文件或最小系统升级文件,到最后存放新的非最小系统,该第一存储区域得到了充分的利用,改变以往固件系统升级时不能破坏非易失性储存空间的固有思维惯性,为系统升级提供了一种新思路。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种高可靠的固件空中升级方法,其特征是,包括如下步骤;
步骤S10:将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;将新的最小系统和旧的最小系统进行差分处理得到最小系统差分升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域;
步骤S20:电子设备运行旧的最小系统,下载最小系统差分升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中;
步骤S30:电子设备运行旧的最小系统,利用旧的最小系统和最小系统差分升级文件得到新的最小系统并保存到非易失性存储器中;
步骤S40:电子设备运行新的最小系统,下载非最小系统升级文件并直接保存到非易失性存储器中但不能覆盖新的最小系统,将新的最小系统和新的非最小系统合并为完整的新固件。
2.根据权利要求1所述的高可靠的固件空中升级方法,其特征是,所述步骤S10至S30改为如下步骤S12至步骤S32;
步骤S12:将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;将新的最小系统作为最小系统升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域;
步骤S22:电子设备运行旧的最小系统,下载最小系统升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中;
步骤S32:电子设备运行旧的最小系统,将最小系统升级文件保存到非易失性存储器中。
3.根据权利要求1或2所述的高可靠的固件空中升级方法,其特征是,所述步骤S20或步骤S22中,最小系统差分升级文件或最小系统升级文件优先保存在非易失性存储器的空闲区域;如果空闲区域不够,则继续占用第一存储区域来保存。
4.根据权利要求1或2所述的高可靠的固件空中升级方法,其特征是,所述步骤S10或步骤S12中,将非易失性存储器中保存旧的最小系统的存储空间称为第二存储区域;所述步骤S30或步骤S32中,新的最小系统优先保存到非易失性存储器的第二存储区域中;如果第二存储区域不够,则继续占用第一存储区域和/或非易失性存储器的空闲区域来保存。
5.根据权利要求4所述的高可靠的固件空中升级方法,其特征是,所述第一存储区域和第二存储区域或者连续存放,顺序不限;或者任何一个或两个非连续存放。
6.根据权利要求1所述的高可靠的固件空中升级方法,其特征是,所述步骤S10中,所述最小系统差分升级文件的数据部分在前,头部在后。
7.根据权利要求1或2所述的高可靠的固件空中升级方法,其特征是,所述步骤S20或步骤S22中,当最小系统差分升级文件或最小系统升级文件的校验通过时才进入下一步;校验不通过时则继续运行旧的最小系统,重复下载最小系统差分升级文件或最小系统升级文件,直到下载的文件通过校验;
所述步骤S40中,当下载完成后电子设备对非最小系统升级文件进行校验,校验正确后再将新的最小系统和新的非最小系统合并为完整的新固件,否则重复步骤S40直到文件校验通过。
8.根据权利要求4所述的高可靠的固件空中升级方法,其特征是,所述步骤S30中,当新的最小系统的体积和旧的最小系统的体积相同时,新的最小系统仅占用第二存储区域;当新的最小系统的体积小于旧的最小系统的体积时,新的最小系统仅占用了第二存储区域的部分空间,第二存储区域的剩余空间释放作为非易失性存储器的空闲区域;当新的最小系统的体积大于旧的最小系统的体积时,新的最小系统不仅完全占用了第二存储区域,还额外占用了非易失性存储器中的第一存储区域和/或空闲区域的部分或全部空间。
9.根据权利要求1或2所述的高可靠的固件空中升级方法,其特征是,所述步骤S30或步骤S32中,在最小系统升级过程中记录升级状态;当出现电子设备掉电或其他异常时,等电子设备再次上电后根据记录的状态继续执行未完成的最小系统升级,直至最小系统升级成功。
10.根据权利要求1或2所述的高可靠的固件空中升级方法,其特征是,所述步骤S40中,如果存放非最小系统升级文件后,第一存储区域还有剩余空间,则释放作为非易失性存储器的空闲区域;残余的最小系统差分升级文件或最小系统升级文件也释放作为非易失性存储器的空闲区域。
11.一种高可靠的固件空中升级系统,其特征是,包括固件升级文件生成单元一、最小系统下载验证单元一、最小系统升级单元一和非最小系统下载验证单元;
所述固件升级文件生成单元一用来将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;将新的最小系统和旧的最小系统进行差分处理得到最小系统差分升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域;
所述最小系统下载验证单元一用来下载最小系统差分升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中;
所述最小系统升级单元一用来利用旧的最小系统和最小系统差分升级文件得到新的最小系统并保存到非易失性存储器中;
所述非最小系统下载验证单元用来下载非最小系统升级文件并直接保存到非易失性存储器中但不能覆盖新的最小系统,将新的最小系统和新的非最小系统合并为完整的新固件。
12.根据权利要求11所述的高可靠的固件空中升级系统,其特征是,所述固件升级文件生成单元一、最小系统下载验证单元一、最小系统升级单元一分别改为固件升级文件生成单元二、最小系统下载验证单元二、最小系统升级单元二;
所述固件升级文件生成单元二用来将电子设备现有的固件系统分为旧的最小系统和旧的非最小系统两部分,将电子设备的新的固件系统分为新的最小系统和新的非最小系统两部分;
将新的最小系统作为最小系统升级文件,将新的非最小系统作为非最小系统升级文件;将非易失性存储器中保存旧的非最小系统的存储空间称为第一存储区域;
所述最小系统下载验证单元二用来下载最小系统升级文件并将其保存到非易失性存储器的空闲区域和/或第一存储区域中;
所述最小系统升级单元二用来将新的最小系统保存到非易失性存储器中。
CN202010266306.7A 2020-04-07 2020-04-07 一种高可靠的固件空中升级方法及系统 Active CN111611000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010266306.7A CN111611000B (zh) 2020-04-07 2020-04-07 一种高可靠的固件空中升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010266306.7A CN111611000B (zh) 2020-04-07 2020-04-07 一种高可靠的固件空中升级方法及系统

Publications (2)

Publication Number Publication Date
CN111611000A true CN111611000A (zh) 2020-09-01
CN111611000B CN111611000B (zh) 2023-05-30

Family

ID=72199338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010266306.7A Active CN111611000B (zh) 2020-04-07 2020-04-07 一种高可靠的固件空中升级方法及系统

Country Status (1)

Country Link
CN (1) CN111611000B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778739A (zh) * 2021-11-08 2021-12-10 广州朗国电子科技股份有限公司 一种一体机的系统修复方法、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109798A1 (en) * 2006-11-07 2008-05-08 Lee Merrill Gavens Methods for performing resilient firmware upgrades to a functioning memory
CN106775874A (zh) * 2016-12-20 2017-05-31 珠海全志科技股份有限公司 终端设备的系统升级方法
CN108279922A (zh) * 2018-01-03 2018-07-13 深圳市泰比特科技有限公司 差分文件生成方法、基于该差分文件的升级方法及系统
CN110874239A (zh) * 2020-01-20 2020-03-10 翱捷科技(上海)有限公司 一种电子设备的空中固件差分升级方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109798A1 (en) * 2006-11-07 2008-05-08 Lee Merrill Gavens Methods for performing resilient firmware upgrades to a functioning memory
CN106775874A (zh) * 2016-12-20 2017-05-31 珠海全志科技股份有限公司 终端设备的系统升级方法
CN108279922A (zh) * 2018-01-03 2018-07-13 深圳市泰比特科技有限公司 差分文件生成方法、基于该差分文件的升级方法及系统
CN110874239A (zh) * 2020-01-20 2020-03-10 翱捷科技(上海)有限公司 一种电子设备的空中固件差分升级方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李静波;: "嵌入式系统固件升级的设计" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778739A (zh) * 2021-11-08 2021-12-10 广州朗国电子科技股份有限公司 一种一体机的系统修复方法、系统、设备及存储介质
CN113778739B (zh) * 2021-11-08 2022-03-04 广州朗国电子科技股份有限公司 一种一体机的系统修复方法、系统、设备及存储介质
WO2023077826A1 (zh) * 2021-11-08 2023-05-11 广州朗国电子科技股份有限公司 一种一体机的系统修复方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN111611000B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
US8196130B2 (en) Tri-phase boot process in electronic devices
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
US20100169709A1 (en) System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware
US7313682B2 (en) Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
CN112416406B (zh) 终端设备升级方法、装置、终端设备和介质
CN110389778A (zh) 一种异构加速平台的mcu固件升级方法及相关装置
CN107783776B (zh) 固件升级包的处理方法及装置、电子设备
CN109062598A (zh) 一种安全的ota升级方法及系统
CN111158599B (zh) 一种写数据的方法、装置、设备及存储介质
CN104636171A (zh) 升级的方法、装置及移动终端
CN109086078B (zh) 安卓系统升级方法、装置、服务器及移动终端
CN111309354A (zh) 联网设备的ota升级方法及装置
CN103677902A (zh) 分布式olt系统中保障线卡软件升级安全性与成功性的方法
WO2011088701A1 (zh) 一种跨平台版本在线升级的方法及装置
CN112416411B (zh) 升级方法及装置、设备端、服务器、计算机可读介质
CN111611000B (zh) 一种高可靠的固件空中升级方法及系统
CN113032183A (zh) 系统管理方法、装置、计算机设备和存储介质
CN117407020A (zh) Ota升级刷写方法、装置、电子设备及存储介质
CN116795408A (zh) Ecu的软件升级方法、系统及车辆
CN115220796A (zh) 安全引导设备
CN114780122A (zh) 嵌入式设备固件更新方法以及嵌入式设备
CN111124763B (zh) 一种通讯设备启动配置数据备份同步方法
US20230418591A1 (en) Firmware update method of a flash bootloader in a micro controller unit for a vehicle
CN112905218B (zh) 一种固件升级方法、装置及设备
CN116578307A (zh) 数据预置方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 201203 No. 399, Keyuan Road, Zhangjiang High-tech Park, Pudong New Area, Shanghai

Applicant after: Aojie Technology Co.,Ltd.

Address before: 201203 No. 399, Keyuan Road, Zhangjiang High-tech Park, Pudong New Area, Shanghai

Applicant before: Aojie Technology (Shanghai) Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 201203 Floor 9, building 10, No. 399, Keyuan Road, China (Shanghai) free trade pilot zone, Pudong New Area, Shanghai

Applicant after: Aojie Technology Co.,Ltd.

Address before: 201203 No. 399, Keyuan Road, Zhangjiang High-tech Park, Pudong New Area, Shanghai

Applicant before: Aojie Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant