CN110716723A - 一种固件升级方法及系统 - Google Patents
一种固件升级方法及系统 Download PDFInfo
- Publication number
- CN110716723A CN110716723A CN201910911836.XA CN201910911836A CN110716723A CN 110716723 A CN110716723 A CN 110716723A CN 201910911836 A CN201910911836 A CN 201910911836A CN 110716723 A CN110716723 A CN 110716723A
- Authority
- CN
- China
- Prior art keywords
- file
- area
- firmware
- backup
- firmware upgrading
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000005192 partition Methods 0.000 claims abstract description 40
- 238000012795 verification Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种固件升级方法及系统,其中方法包括如下步骤:1)下载固件升级文件,并确定固件升级文件的类型、大小和数量N;2)根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;3)将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则返回步骤1;4)重启系统;5)根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区中;如系统断电或中断,则返回重启系统。本发明固件升级方法可以实现对各个分区的单独备份和单独升级,不仅节约存储器空间而且安全性高,同时加快固件下载时间,提高升级速度,即使在系统断电或升级中断时,都不会影响系统的正常运行。
Description
技术领域
本发明属于固件升级技术领域,尤其是涉及一种固件升级方法及系统。
背景技术
固件即写入电子设备存储器中的程序,在电子设备使用的过程中,由于使用要求等情况的变化,需要对系统进行固件升级,通过固件升级可完善电子设备的功能、增强电子设备的稳定性以及修补电子设备的漏洞。
目前固件升级方法通常采用的全拷贝法存在着浪费存储器空间的问题,而采用的最小分区镜像法虽然节约空间,但又存在着不安全的问题,在固件升级过程中因为系统掉电或中断会导致系统无法正常使用的问题。
发明内容
有鉴于此,本发明旨在提出一种固件升级方法及系统,可以实现对各个分区的单独备份和单独升级,不仅节约存储器空间而且安全性高。
为达到上述目的,本发明的技术方案是这样实现的:
本发明一方面提供了一种固件升级方法,包括如下步骤:
1)下载固件升级文件,并确定固件升级文件的类型、大小和数量N;
2)根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;
3)将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则返回步骤1;
4)重启系统;
5)根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区;如系统断电或中断,则返回步骤4重启系统。
可选的,所述正常启动镜像区的分区包括引导区(Uboot区)、内核区(kernel区)、文件系统区(rootfs区)、驱动区(drv区)和应用区(APP区)中的至少一项。
可选的,所述备份区包括内核备份区、文件系统备份区、驱动备份区和应用备份区中的至少一项。
进一步的,所述固件升级文件中还包括升级配置文件,所述升级配置文件用于指定存储器的分区规则;步骤2中,还将存储器分为至少一个环境变量区;步骤3中,将所述升级配置文件写入至环境变量区。
进一步的,所述升级配置文件还用于校验固件升级文件是否正确、执行拷贝和/或删除命令;在步骤3之前,还包括步骤31,对固件升级文件进行校验,当校验拷贝完的固件升级文件与下载的固件升级文件一致时,则执行步骤3将固件升级文件写入至对应的备份区,并根据固件升级文件的类型确定正常启动镜像区需要升级的分区;否则,则删除拷贝完的固件升级文件。
进一步的,所述备份区还包括迭代关系备份区,用于备份与固件升级文件有迭代关系的文件。
相对于现有技术,本发明所述的方法具有以下优势:
本发明固件升级方法可以实现对各个分区的单独备份和单独升级,不仅节约存储器空间而且安全性高,同时加快固件下载时间,提高升级速度,即使在系统断电或升级中断时,都不会影响系统的正常运行,可实现固件的安全升级。
本发明另一方面提供了一种固件升级系统,包括:
下载模块,用于下载固件升级文件,并确定固件升级文件的类型、大小和数量N;
分区模块,用于根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;
备份模块,用于将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则启动下载模块;
重启模块,用于重启系统;
写入模块,根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区;如系统断电或中断,则返回重启系统。
可选的,所述正常启动镜像区的分区包括引导区(Uboot区)、内核区(kernel区)、文件系统区(rootfs区)、驱动区(drv区)和应用区(APP区)中的至少一项。
可选的,所述备份区包括内核备份区、文件系统备份区、驱动备份区和应用备份区中的至少一项。
进一步的,所述固件升级文件中还包括升级配置文件,所述升级配置文件用于指定存储器的分区规则;所述分区模块还将存储器分为至少一个环境变量区;所述备份模块还将所述升级配置文件写入至环境变量区。
进一步的,所述升级配置文件还用于校验固件升级文件是否正确、执行拷贝和/或删除命令;固件升级系统还包括校验模块,用于对固件升级文件进行校验,当校验拷贝完的固件升级文件与下载的固件升级文件一致时,则备份模块将固件升级文件写入至对应的备份区,并根据固件升级文件的类型确定正常启动镜像区需要升级的分区;否则,则删除拷贝完的固件升级文件。
进一步的,所述备份区还包括迭代关系备份区,用于备份与固件升级文件有迭代关系的文件。
所述固件升级系统与上述固件升级方法相对于现有技术所具有的优势相同,在此不再赘述。
附图说明
构成本发明创造的一部分的附图用来提供对本发明创造的进一步理解,本发明创造的示意性实施例及其说明用于解释本发明创造,并不构成对本发明创造的不当限定。在附图中:
图1为本发明创造实施例固件升级方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
本发明一种固件升级方法及系统,可以实现对各个分区的单独备份和单独升级,不仅节约存储器空间而且安全性高,同时加快固件下载时间,提高升级速度,即使在系统断电或升级中断时,都不会影响系统的正常运行,可实现固件的安全升级。
具体的,本发明一个实施例提供一种固件升级方法,如图1所示,包括如下步骤:
S1)下载固件升级文件,并确定固件升级文件的类型、大小和数量N;
S2)根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;
S3)将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则返回步骤S1;
S4)重启系统;
S5)根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区;如系统断电或中断,则返回步骤S4重启系统。
其中,N为≥1的整数,所述单个备份区的最大容量=正常启动镜像区中分区中最大容量分区的容量。所述N个备份区的容量总和≤需要写入正常启动镜像区的对应分区的容量总和。
可选的,本实施例所述正常启动镜像区的分区包括引导区(Uboot区)、内核区(kernel区)、文件系统区(rootfs区)、驱动区(drv区)和应用区(APP区)中的至少一项。
可选的,所述备份区包括内核备份区、文件系统备份区、驱动备份区和应用备份区中的至少一项。
所述固件升级文件中还包括升级配置文件,所述升级配置文件用于指定存储器的分区规则;步骤S2中,还将存储器分为至少一个环境变量区;步骤S3中,将所述升级配置文件写入至环境变量区。
本实施例所述升级配置文件还用于校验固件升级文件是否正确、执行拷贝和/或删除命令;在步骤S3之前,还包括步骤S31,对固件升级文件进行校验,当校验拷贝完的固件升级文件与下载的固件升级文件一致时,则执行步骤S3将固件升级文件写入至对应的备份区,并根据固件升级文件的类型确定正常启动镜像区需要升级的分区;否则,则删除拷贝完的固件升级文件。
本实施例的所述备份区还包括迭代关系备份区,用于备份与固件升级文件有迭代关系的文件。
本发明另一个实施例提供一种固件升级系统,包括:
下载模块,用于下载固件升级文件,并确定固件升级文件的类型、大小和数量N;
分区模块,用于根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;
备份模块,用于将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则启动下载模块;
重启模块,用于重启系统;
写入模块,根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区;如系统断电或中断,则返回重启系统。
可选的,本实施例所述正常启动镜像区的分区包括引导区(Uboot区)、内核区(kernel区)、文件系统区(rootfs区)、驱动区(drv区)和应用区(APP区)中的至少一项。
可选的,所述备份区包括内核备份区、文件系统备份区、驱动备份区和应用备份区中的至少一项。
所述固件升级文件中还包括升级配置文件,所述升级配置文件用于指定存储器的分区规则;所述分区模块还将存储器分为至少一个环境变量区;所述备份模块还将所述升级配置文件写入至环境变量区。
所述升级配置文件还用于校验固件升级文件是否正确、执行拷贝和/或删除命令;固件升级系统还包括校验模块,用于对固件升级文件进行校验,当校验拷贝完的固件升级文件与下载的固件升级文件一致时,则备份模块将固件升级文件写入至对应的备份区,并根据固件升级文件的类型确定正常启动镜像区需要升级的分区;否则,则删除拷贝完的固件升级文件。
本实施例的所述备份区还包括迭代关系备份区,用于备份与固件升级文件有迭代关系的文件。
本发明一具体实施例,固件升级文件为一个系统文件,当确定固件升级文件的类型和数量为一个系统文件,则将存储器分为正常启动镜像区、环境变量区和备份区,备份区用于备份系统文件的固件升级文件,重启系统后,将备份区的固件升级文件写入正常启动镜像区中的系统文件区。
本发明另一具体实施例,固件升级文件包括一个系统文件和一个应用文件,当确定固件升级文件包括一个系统文件和一个应用文件共2个文件时;则将存储器分为正常启动镜像区、环境变量区、第一备份区和第二备份区,第一备份区用于备份系统文件的固件升级文件,第二备份区用于备份应用文件的固件升级文件,重启系统后,将第一备份区的固件升级文件写入正常启动镜像区中的系统文件区,将第二备份区的固件升级文件写入正常启动镜像区中的应用文件区。
本发明提供的固件升级方法及系统,可以实现对各个分区的单独备份和单独升级,不仅节约存储器空间而且安全性高,同时加快固件下载时间,提高升级速度,即使在系统断电或升级中断时,都不会影响系统的正常运行,可实现固件的安全升级。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种固件升级方法,其特征在于包括如下步骤:
1)下载固件升级文件,并确定固件升级文件的类型、大小和数量N;
2)根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;
3)将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则返回步骤1;
4)重启系统;
5)根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区;如系统断电或中断,则返回步骤4重启系统。
2.根据权利要求1所述的方法,其特征在于:所述正常启动镜像区的分区包括引导区、内核区、文件系统区、驱动区和应用区中的至少一项;所述备份区包括内核备份区、文件系统备份区、驱动备份区和应用备份区中的至少一项。
3.根据权利要求1所述的方法,其特征在于:所述固件升级文件中还包括升级配置文件,所述升级配置文件用于指定存储器的分区规则;步骤2中,还将存储器分为至少一个环境变量区;步骤3中,将所述升级配置文件写入至环境变量区。
4.根据权利要求3所述的方法,其特征在于:所述升级配置文件还用于校验固件升级文件是否正确、执行拷贝和/或删除命令;
在步骤3之前,还包括步骤31,对固件升级文件进行校验,当校验拷贝完的固件升级文件与下载的固件升级文件一致时,则执行步骤3将固件升级文件写入至对应的备份区,并根据固件升级文件的类型确定正常启动镜像区需要升级的分区;否则,则删除拷贝完的固件升级文件。
5.根据权利要求1所述的方法,其特征在于:所述备份区还包括迭代关系备份区,用于备份与固件升级文件有迭代关系的文件。
6.一种固件升级系统,其特征在于包括:
下载模块,用于下载固件升级文件,并确定固件升级文件的类型、大小和数量N;
分区模块,用于根据固件升级文件的大小和数量N,将存储器分为正常启动镜像区和至少N个备份区;
备份模块,用于将N个固件升级文件写入至对应的N个备份区,如系统断电或中断,则启动下载模块;
重启模块,用于重启系统;
写入模块,根据固件升级文件的类型,将备份区的固件升级文件写入正常启动镜像区的对应的分区;如系统断电或中断,则返回重启系统。
7.根据权利要求6所述的固件升级系统,其特征在于:所述正常启动镜像区的分区包括引导区、内核区、文件系统区、驱动区和应用区中的至少一项;所述备份区包括内核备份区、文件系统备份区、驱动备份区和应用备份区中的至少一项。
8.根据权利要求6所述的固件升级系统,其特征在于:所述固件升级文件中还包括升级配置文件,所述升级配置文件用于指定存储器的分区规则;所述分区模块还将存储器分为至少一个环境变量区;所述备份模块还将所述升级配置文件写入至环境变量区。
9.根据权利要求8所述的固件升级系统,其特征在于:所述升级配置文件还用于校验固件升级文件是否正确、执行拷贝和/或删除命令;固件升级系统还包括校验模块,用于对固件升级文件进行校验,当校验拷贝完的固件升级文件与下载的固件升级文件一致时,则备份模块将固件升级文件写入至对应的备份区,并根据固件升级文件的类型确定正常启动镜像区需要升级的分区;否则,则删除拷贝完的固件升级文件。
10.根据权利要求6所述的固件升级系统,其特征在于:所述备份区还包括迭代关系备份区,用于备份与固件升级文件有迭代关系的文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910911836.XA CN110716723A (zh) | 2019-09-25 | 2019-09-25 | 一种固件升级方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910911836.XA CN110716723A (zh) | 2019-09-25 | 2019-09-25 | 一种固件升级方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110716723A true CN110716723A (zh) | 2020-01-21 |
Family
ID=69210866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910911836.XA Pending CN110716723A (zh) | 2019-09-25 | 2019-09-25 | 一种固件升级方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716723A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414169A (zh) * | 2020-02-21 | 2020-07-14 | 苏州浪潮智能科技有限公司 | Bmc镜像升级方法及相关组件 |
CN112148337A (zh) * | 2020-09-09 | 2020-12-29 | 杭州涂鸦信息技术有限公司 | 一种固件升级方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461654A (zh) * | 2014-12-27 | 2015-03-25 | 西安大唐电信有限公司 | 一种obd设备功能单元及固件分类可选升级方法 |
KR20170037017A (ko) * | 2015-09-25 | 2017-04-04 | 한화테크윈 주식회사 | 메모리 업그레이드 시스템 및 방법 |
CN107247603A (zh) * | 2017-04-18 | 2017-10-13 | 深圳市广和通无线股份有限公司 | 支持固件自动恢复功能的远程升级方法与系统 |
KR101822485B1 (ko) * | 2017-09-07 | 2018-01-26 | 업데이트씽(주) | 차량용 소프트웨어 원격 업데이트시 전원 차단 후 복구 방법 |
CN109002317A (zh) * | 2018-06-27 | 2018-12-14 | 上海有个机器人有限公司 | 一种pcba固件升级方法及系统、pcba |
-
2019
- 2019-09-25 CN CN201910911836.XA patent/CN110716723A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461654A (zh) * | 2014-12-27 | 2015-03-25 | 西安大唐电信有限公司 | 一种obd设备功能单元及固件分类可选升级方法 |
KR20170037017A (ko) * | 2015-09-25 | 2017-04-04 | 한화테크윈 주식회사 | 메모리 업그레이드 시스템 및 방법 |
CN107247603A (zh) * | 2017-04-18 | 2017-10-13 | 深圳市广和通无线股份有限公司 | 支持固件自动恢复功能的远程升级方法与系统 |
KR101822485B1 (ko) * | 2017-09-07 | 2018-01-26 | 업데이트씽(주) | 차량용 소프트웨어 원격 업데이트시 전원 차단 후 복구 방법 |
CN109002317A (zh) * | 2018-06-27 | 2018-12-14 | 上海有个机器人有限公司 | 一种pcba固件升级方法及系统、pcba |
Non-Patent Citations (1)
Title |
---|
方彬浩: "基于IAP的ARM处理器固件升级设计", 《现代信息科技》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414169A (zh) * | 2020-02-21 | 2020-07-14 | 苏州浪潮智能科技有限公司 | Bmc镜像升级方法及相关组件 |
CN112148337A (zh) * | 2020-09-09 | 2020-12-29 | 杭州涂鸦信息技术有限公司 | 一种固件升级方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103455354B (zh) | 一种防止固件升级失败的方法和设备 | |
JP5909264B2 (ja) | セキュア・リカバリ装置及び方法 | |
WO2022007656A1 (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
US10437580B2 (en) | Software updating methods and systems | |
US8136108B2 (en) | Updating firmware with multiple processors | |
KR102226558B1 (ko) | 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법 | |
CN110874237A (zh) | 软件升级方法、装置、终端以及可读存储介质 | |
CN111562934B (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
KR20170040734A (ko) | 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법 | |
CN105893090A (zh) | 一种嵌入式系统bootrom和应用程序升级方法 | |
CN106033362A (zh) | 一种闪存分区的处理方法和装置 | |
CN113821235A (zh) | 操作系统数据更新方法、设备、存储介质及程序产品 | |
WO2017000567A1 (zh) | 一种实现bootrom升级的方法及装置 | |
CN110716723A (zh) | 一种固件升级方法及系统 | |
CN105677409A (zh) | 一种系统升级方法及装置 | |
CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
CN114265603A (zh) | 基于不对称分区的系统升级方法、装置和电子设备 | |
CN111142922A (zh) | 应用程序更新方法、装置、终端及服务器 | |
CN102298531B (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 | |
KR100860402B1 (ko) | 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법 | |
CN115617488A (zh) | 操作系统迁移方法、装置、计算设备及存储介质 | |
CN113377425B (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
KR102423056B1 (ko) | 부팅 디스크 변경 방법 및 시스템 | |
CN115686554A (zh) | 一种BootLoader程序升级方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 8 / F, Huaqiao Chuangye building, No. 10, Jinping Road, Ya'an Road, Nankai District, Tianjin 300119 (Science Park) Applicant after: Tianjin Hualai Technology Co.,Ltd. Address before: 9 / F, huaqiaochuangye building, No.10, Jinping Road, Ya'an Road, Nankai District, Tianjin 300119 (Science and Technology Park) Applicant before: TIANJIN HUALAI TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200121 |
|
RJ01 | Rejection of invention patent application after publication |