CN108804118B - 固件升级方法、设备及存储介质 - Google Patents
固件升级方法、设备及存储介质 Download PDFInfo
- Publication number
- CN108804118B CN108804118B CN201810379308.XA CN201810379308A CN108804118B CN 108804118 B CN108804118 B CN 108804118B CN 201810379308 A CN201810379308 A CN 201810379308A CN 108804118 B CN108804118 B CN 108804118B
- Authority
- CN
- China
- Prior art keywords
- upgrade
- data
- area
- upgrading
- firmware
- 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
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/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种固件升级方法、设备和存储介质,该方法包括以下步骤:使设备进入启动区,读取升级信息区的升级信息;根据所述升级信息判断有无下载完成的升级数据包,若无,跳转至代码区运行原有固件程序,并开启设备的无线数据收发端口,接收并保存升级数据包至升级数据区;根据所述接收的升级数据包,更新升级信息区的升级信息;判断所述升级数据包是否接收完成,若是,使设备进入启动区,读取所述更新后的升级信息区的升级信息;擦除所述代码区原有固件程序,将所述升级数据区的升级数据包复制至代码区,运行升级后的固件程序。通过本发明能够实现设备的无线升级,设备复位后,并可同时运行下载升级数据包和原固件程序。
Description
技术领域
本发明涉及电子信息技术领域。
背景技术
随着计算机信息技术的不断发展,嵌入式系统在社会的各个领域都有广泛应用。由于用户的要求越来越高,嵌入式设备的功能也变得越来越强大,软件越来越复杂,固件版本也在不断的更新。
而固件升级一般的方法的程序运行区域分为代码区和Boot区。设备复位后通过启动选择项进入Boot区。Boot区负责擦除代码区的原固件,接收新固件数据并写到代码区。固件更新完成后重新启动设备,然后通过启动选项进入代码区,运行新版本固件。
目前的技术主要存在如下问题:
1.上述方法造成设备在更新程序时,无法运行设备功能程序。
2.Boot区代码固定,只能使用既定的方式下载升级包,无法进行空中升级。
3.固件更新必须是一次性完成,中途出现接收或者写入失败,只能重新更新一次。
4.在更新时,原固件已擦除,若更新未成功,设备无法运行。
发明内容
为了解决上述问题,本发明提供了一种固件升级方法、设备和存储介质,在设备复位后,直接进入启动区进行升级确认,再自动进入代码区运行固件程序,在下载升级包的同时运行原固件程序。
本发明涉及的设备的固件升级方法,包括以下步骤:使设备进入启动区,读取升级信息区的升级信息;根据所述升级信息判断有无下载完成的升级数据包,若无,跳转至代码区运行原有固件程序,并开启设备的无线数据收发端口,接收并保存升级数据包至升级数据区;根据所述接收的升级数据包,更新升级信息区的升级信息;判断所述升级数据包是否接收完成,若是,使设备进入启动区,读取所述更新后的升级信息区的升级信息;擦除所述代码区原有固件程序,将所述升级数据区的升级数据包复制至代码区,运行升级后的固件程序;其中,所述启动区用于程序引导,所述代码区用于存储固件程序,所述升级数据区用于存储升级数据包,所述升级信息区用于保存升级数据包的升级信息。
优选地,接收升级数据包至升级数据区,包括接收由所述升级数据包分割成的若干个长度相同的数据块。
优选地,升级信息包括升级控制数据和数据块下载表。
优选地,升级控制数据包括升级版本号、数据块总数量、数据块序号和控制标识。
优选地,每个数据块对应一个数据块序号,并映射到所述数据块下载表中。
优选地,根据数据块序号在升级数据区的相应位置保存数据块,并在数据块下载表中的映射位置记录下该序号数据块已下载。
优选地,控制标识包括下载未完成、下载已完成和程序已更新。
优选地,根据升级信息判断有无下载完成的升级数据包,包括根据升级信息判断控制标识是否为下载未完成,若是,则读取固件升级数据包的升级版本号、数据块总数量和数据块序号。
优选地,本发明的固件升级方法还包括判断读取的升级版本是否为新版本且从未下载,若是,则初始化升级控制数据和数据块下载表,并根据数据块序号在升级数据区的相应位置保存数据块。
优选地,当根据所述升级信息判断出所述控制标识为下载已完成的升级数据包时,擦除所述代码区原有固件程序,将所述升级数据包复制至代码区。
优选地,当根据所述升级信息判断出所述控制标识为程序已更新时,直接进入代码区运行固件程序。
本发明还提供一种设备,该设备包括:无线数据收发端口;处理器;固件和程序存储器;当所述无线数据收发端口接收到一个无线升级数据包时,处理器执行所述程序存储器上的固件,实现如上所述方法的步骤。
本发明还提供一种用于具有无线数据收发端口的设备的存储介质,其上存储有固件程序,当所述无线数据收发端口接收到一个无线升级数据包时,执行所述存储介质上的固件程序,实现如上所述方法的步骤。
本发明的固件升级方法、设备和存储介质,能够实现设备的无线升级,设备复位后,直接进入启动区进行升级确认,再自动进入代码区运行固件程序,不需要启动选项来选择进入启动区或者代码区,并可同时运行下载升级包和原固件程序。采用分包和建表的方式,可以让本次升级包下载接着上次升级包下载中断的地方继续下载。由于每个升级包可单独下载,因此可以不用按照序号的前后顺序下载升级包,实现下载包‘随机保存’的功能。
附图说明
下面参考附图描述本发明的优选实施例,附图为了说明本发明的优选实施例而不是为了限制本发明的目的。附图中:
图1为本发明实施例的固件程序存储器结构示意图;
图2为本发明一个实施例的固件升级流程图。
具体实施方式
本发明的具体实施方式用来具体说明本发明,但并不局限于该具体实施方式。
图1为本发明实施例的固件程序存储器结构示意图。
如图1所示,固件的程序存储器分为启动区、代码区、升级数据区和升级信息区。启动区是引导程序区,用于程序引导,并可以读取升级信息区是否有升级信息。代码区是应用程序区,其存储并运行固件程序。升级数据区用于接收并存储升级数据包。升级信息区存储升级数据包的各种升级信息。
由于设备使用无线通信,其具有无线数据收发端口,而无线通信数据包有长度限制,因此升级数据区接收的固件升级数据包被分为若干个长度相同的数据块。
升级信息区中的升级信息包括升级控制数据和数据块下载表。升级控制数据包括升级版本号、数据块总数量、数据块序号和控制标识。控制标识包括:下载未完成、下载已完成和程序已更新。
升级数据区的每个数据块有唯一的序列号,并映射在数据块下载表中,数据块下载表中的每个单元对应一个数据块。
图2为本发明一个具体实施例的固件升级流程图。
如图2所示,设备的固件升级方法包括以下步骤:
步骤S1,设备复位后,进入启动区。
步骤S2,启动区内的进程读取升级信息区的内容,检测升级信息。
步骤S3,当升级数据包接收未完成时,跳转至代码区运行固件程序。
当检测到升级信息区内的控制标识不为“下载已完成”,即控制标识为“下载未完成”或“程序已更新”时,此时,表面升级数据包接收未完成,或者程序已更新完毕,固件不需要更新升级,则直接跳转到代码区运行固件功能程序。
步骤S4,接收并保存升级数据包至升级数据区。
设备首先开启无线数据收发端口,然后进入无线数据接收模式。当设备接收到一个无线数据包时,首先解析数据包。接收到的数据包存放在升级数据区,再读取数据包的关键字段,根据字段的定义处理该数据包。如果数据包为一般的功能性数据包,则进入功能性数据包处理流程。如果数据包为固件升级数据包时,则读取升级信息区中对应的升级版本号、数据块总数量和数据块序号。如果读取的升级版本号为新版本,且该版本从未下载更新过,则初始化升级信息区的升级控制数据集数据块下载表,将该升级数据包分为若干个数据块。然后根据数据块序号在升级数据区的相应位置保存数据块。
步骤S5,更新升级信息区。
将数据块保存在升级数据区的相应位置后,更新升级信息区,在数据块下载表中的映射位置记录下该序号数据块已下载。
步骤S6,检测数据升级包下载是否完成。
当数据块下载表中所有的位置都已记录时,表示升级数据包的所有数据块都已下载完成,此时,更新升级信息区,改写升级控制数据,将控制标识改写为“下载已完成”。如果下载未完成,则返回至步骤S4继续接收和保存升级数据包。
步骤S7,当升级数据包下载完成后,重新启动设备。
重启设备后,重新开始步骤S1,设备复位,进入启动区。然后进入步骤S2,启动区内的进程读取升级信息区的内容,检测升级信息。此时升级数据包已下载完成,进入步骤S8。
步骤S8,复制升级数据区的升级数据包至代码区。
升级数据包下载完成后,固件需要更新时,擦除整个代码区的数据,再把升级数据区的升级数据复制到代码区。
步骤S9,更新升级信息区。
升级数据复制至代码区后,改写控制标识为“程序已更新”,最后跳转至代码区,运行新版本程序。
本实施例中,当根据所述升级信息判断出有所述控制标识为下载未完成的升级数据包时,读取固件升级数据包的升级版本号、数据块总数量和数据块序号,当读取的升级版本从未下载,初始化升级控制数据和数据块下载表,根据数据块序号在升级数据区的相应位置保存数据块。
当根据所述升级信息判断出有所述控制标识为下载已完成的升级数据包时,擦除所述代码区原有固件程序,将所述升级数据包复制至代码区。
当根据所述升级信息判断出有所述控制标识为程序已更新时,直接进入代码区运行固件程序。
本发明还提供一种设备,包括:无线数据收发端口、处理器、固件和程序存储器,当所述无线数据收发端口接收到一个无线升级数据包时,处理器执行所述程序存储器上的固件,能够实现上述方法的步骤。
本发明提供的设备,主要针对无线广播通信的设备。分包处理和无序处理大文件升级数据,可以解决使用无线通信进行升级时的数据传输不稳定的问题。
本发明涉及的设备的一个具体实施例为快递物流行业的快件分拣设备。
本发明并不仅限于此,对于其他需要固件升级的具有无线数据收发端口的设备均适用于本发明。
本发明还涉及一种可用于具无线数据收发端口的设备的存储介质,其上存储有固件程序,当所述无线数据收发端口接收到一个无线升级数据包时,执行所述存储介质上的固件程序,实现上述方法的步骤。
以上实施例能够实现设备的空中无线升级,并可同时运行下载升级数据包和固件一般性功能流程。
采用分包和建表的方式,可以让本次升级包下载接着上次升级包下载中断的地方继续下载。由于每个升级包可单独下载,因此可以不用按照序号的前后顺序下载升级包,实现下载包‘随机保存’的功能。
以上实施例为本发明的优选实施例,并不用以限定本发明的目的,凡在本发明的精神和原则之内进行的修改和替换,均在本发明的保护之内。
Claims (12)
1.一种固件升级方法,其特征在于,包括以下步骤:
使设备进入启动区,读取升级信息区的升级信息,所述升级信息包括升级控制数据和数据块下载表,所述升级控制数据包括用于表示升级数据包是否下载完成的控制标识;
根据所述控制标识判断有无下载完成的升级数据包,若无,跳转至代码区运行原有固件程序,并开启设备的无线数据收发端口,接收并保存升级数据包至升级数据区;
根据所述接收的升级数据包,更新升级信息区的升级信息,改写所述升级控制数据的控制标识为下载已完成;
判断所述升级数据包是否接收完成,若是,使设备进入启动区,读取所述更新后的升级信息区的升级信息;
擦除所述代码区原有固件程序,将所述升级数据区的升级数据包复制至代码区,运行升级后的固件程序;
其中,所述启动区用于程序引导,所述代码区用于存储固件程序,所述升级数据区用于存储升级数据包,所述升级信息区用于保存升级数据包的升级信息。
2.根据权利要求1所述的固件升级方法,其特征在于,接收升级数据包至升级数据区,包括
接收由所述升级数据包分割成的若干个长度相同的数据块。
3.根据权利要求2所述的固件升级方法,其特征在于,所述升级控制数据包括升级版本号、数据块总数量、数据块序号和控制标识。
4.根据权利要求3所述的固件升级方法,其特征在于,每个数据块对应一个数据块序号,并映射到所述数据块下载表中。
5.根据权利要求4所述的固件升级方法,其特征在于,根据数据块序号在升级数据区的相应位置保存数据块,并在数据块下载表中的映射位置记录下该数据块序号对应的数据块已下载。
6.根据权利要求5所述的固件升级方法,其特征在于,所述控制标识包括下载未完成、下载已完成和程序已更新。
7.根据权利要求6所述的固件升级方法,其特征在于,根据所述升级信息判断有无下载完成的升级数据包,包括
根据所述升级信息判断所述控制标识是否为下载未完成,若是,则读取固件升级数据包的升级版本号、数据块总数量和数据块序号。
8.根据权利要求7所述的固件升级方法,其特征在于,还包括
判断读取的升级版本是否为新版本且从未下载,若是,则初始化升级控制数据和数据块下载表,并根据数据块序号在升级数据区的相应位置保存数据块。
9.根据权利要求6所述的固件升级方法,其特征在于,当根据所述升级信息判断出所述控制标识为下载已完成的升级数据包时,擦除所述代码区原有固件程序,将所述升级数据包复制至代码区。
10.根据权利要求6所述的固件升级方法,其特征在于,当根据所述升级信息判断出所述控制标识为程序已更新时,直接进入代码区运行固件程序。
11.一种无线广播通信设备,其特征在于,所述设备包括:
无线数据收发端口;
处理器;
固件和程序存储器;
当所述无线数据收发端口接收到一个无线升级数据包时,处理器执行所述程序存储器上的固件,实现如权利要求1-10任一项所述方法的步骤。
12.一种用于具有无线数据收发端口的设备的存储介质,其上存储有固件程序,其特征在于,
当所述无线数据收发端口接收到一个无线升级数据包时,执行所述存储介质上的固件程序,实现如权利要求1-10任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810379308.XA CN108804118B (zh) | 2018-04-25 | 2018-04-25 | 固件升级方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810379308.XA CN108804118B (zh) | 2018-04-25 | 2018-04-25 | 固件升级方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804118A CN108804118A (zh) | 2018-11-13 |
CN108804118B true CN108804118B (zh) | 2023-06-09 |
Family
ID=64093941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810379308.XA Active CN108804118B (zh) | 2018-04-25 | 2018-04-25 | 固件升级方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804118B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367541A (zh) * | 2018-12-25 | 2020-07-03 | 北京兆易创新科技股份有限公司 | 一种eMMC和一种eMMC升级方法 |
CN111309359A (zh) * | 2020-03-16 | 2020-06-19 | 深圳益邦物联科技有限公司 | 固件远程控制自动升级方法、电子设备及存储介质 |
WO2022094855A1 (zh) * | 2020-11-05 | 2022-05-12 | 深圳市大疆创新科技有限公司 | 固件升级方法及电子设备 |
CN112312374B (zh) * | 2020-11-06 | 2022-09-06 | 国网江苏省电力有限公司电力科学研究院 | 基于nfc升级单片机固件的装置及方法 |
CN112910948B (zh) * | 2021-01-12 | 2023-05-09 | 拉扎斯网络科技(上海)有限公司 | 协议升级方法、装置、电子设备、存储介质及程序产品 |
CN113282316A (zh) * | 2021-05-19 | 2021-08-20 | 武汉天喻信息产业股份有限公司 | 一种物联网设备远程升级方法及装置 |
CN113568648A (zh) * | 2021-07-19 | 2021-10-29 | 上海智能网联汽车技术中心有限公司 | 一种嵌入式微处理器的程序在线升级方法、装置及介质 |
CN114322244B (zh) * | 2021-09-09 | 2023-02-28 | 青岛海尔空调电子有限公司 | 程序升级方法、装置及多联机空调系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110000A (zh) * | 2009-12-25 | 2011-06-29 | 康佳集团股份有限公司 | 一种软件自动升级控制方法、装置及设备 |
CN106909352A (zh) * | 2015-12-22 | 2017-06-30 | 北京谊安医疗系统股份有限公司 | 一种嵌入式设备的固件升级方法 |
CN105930184A (zh) * | 2016-04-19 | 2016-09-07 | 青岛海信移动通信技术股份有限公司 | 系统升级方法及装置 |
CN106293621B (zh) * | 2016-08-01 | 2019-02-15 | 飞天诚信科技股份有限公司 | 一种固件升级方法及装置 |
-
2018
- 2018-04-25 CN CN201810379308.XA patent/CN108804118B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108804118A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804118B (zh) | 固件升级方法、设备及存储介质 | |
CN102830984B (zh) | 固件更新的方法、芯片以及通信终端 | |
KR100584338B1 (ko) | 소프트웨어 업데이트 방법 및 시스템 | |
US20060212691A1 (en) | Electronic device having an alterable configuration and methods of manufacturing and configuring the same | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN105579953A (zh) | 灵活引导程序代码架构 | |
US8601464B2 (en) | Memory online update system and method | |
CN101211265A (zh) | 一种终端嵌入式系统的软件更新方法和装置 | |
CN110825563A (zh) | 系统恢复方法、装置以及电子设备 | |
CN106155734B (zh) | 一种软件版本的下载方法及装置 | |
CN102004657B (zh) | 一种电子设备及其升级方法 | |
CN103744712A (zh) | 一种应用程序的更新方法及装置 | |
CN110597542A (zh) | 软件自动ota升级方法及装置、电子设备 | |
KR100700578B1 (ko) | 휴대폰의 펌웨어 업그레이드 방법 | |
CN105786549A (zh) | 智能设备及其升级方法 | |
CN112667265B (zh) | 一种引导程序更新方法及装置 | |
CN110750280A (zh) | 一种基于Android平台的应用升级方法及系统、存储介质 | |
CN112015447A (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN104978204A (zh) | 基于移动终端的应用安装更新方法及装置 | |
CN105677409A (zh) | 一种系统升级方法及装置 | |
CN108153548A (zh) | 一种emmc固件升级方法和装置 | |
CN106502750A (zh) | Ota升级方法及蓝牙芯片 | |
US20070156976A1 (en) | Resource efficient content management and delivery without using a file system | |
CN113360161A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |