CN117539518A - 应用程序升级方法和电子设备 - Google Patents
应用程序升级方法和电子设备 Download PDFInfo
- Publication number
- CN117539518A CN117539518A CN202410008449.6A CN202410008449A CN117539518A CN 117539518 A CN117539518 A CN 117539518A CN 202410008449 A CN202410008449 A CN 202410008449A CN 117539518 A CN117539518 A CN 117539518A
- Authority
- CN
- China
- Prior art keywords
- partition
- file
- control unit
- backup
- micro control
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000005192 partition Methods 0.000 claims abstract description 657
- 230000004913 activation Effects 0.000 claims abstract description 22
- 230000009191 jumping Effects 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 8
- 239000000523 sample Substances 0.000 claims 2
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 1
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及软件升级技术领域,公开了一种应用程序升级方法和电子设备,方法包括:PC端构建升级文件,一个升级文件至少同时包括第一分区执行文件和第二分区执行文件;PC端将升级文件发送至待升级设备的微控单元,其中,微控单元包括存储器,存储器包括第一分区和第二分区;微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区;微控单元将升级文件中与备份分区对应的执行文件下载至备份分区;备份分区基于升级文件中与其对应的执行文件进行升级;微控单元判断备份分区是否升级成功;备份分区升级成功后,微控单元将备份分区和激活分区相互切换。本发明有效减少操作流程,提升升级效率。
Description
技术领域
本发明涉及软件升级技术领域,更具体地,涉及一种应用程序升级方法和电子设备。
背景技术
车载FOTA(Firmware Over-The-Air)是通过云端对车载终端具有连网功能的设备进行远程升级的一种技术。通过这种远程的方式升级固件,不仅方便了制造商的固件升级难度,也节约了升级成本。当前,FOTA进行升级时,难免会出现升级文件出错,导致升级失败,造成车载设备不能正常使用。
因此,FOTA进行升级时,可采用微控单元(Microcontroller Unit,MCU) AB区升级。微控单元 AB区升级是指在微控单元中存在两个程序存储区域,分别为A区和B区,在微控单元运行时,只有一个区域是激活的,另一个是空闲区域,当需要升级程序时,将升级软件先下载到空闲区域,然后切换到新的程序区。从而实现程序升级。
但是,现有的微控单元 AB区升级时,操作流程复杂,升级效率低。
发明内容
有鉴于此,本发明提供了一种应用程序升级方法和电子设备,有效减少操作流程,提升升级效率。
本发明提供一种应用程序升级方法,包括:PC端构建升级文件,一个升级文件至少同时包括第一分区执行文件和第二分区执行文件;PC端将升级文件发送至待升级设备的微控单元,其中,微控单元包括存储器,存储器包括第一分区和第二分区,其中,第一分区能够基于升级文件中第一分区执行文件进行升级,第二分区能够基于升级文件中第二分区执行文件进行升级;微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区;微控单元将升级文件中与备份分区对应的执行文件下载至备份分区;备份分区基于升级文件中与其对应的执行文件进行升级;微控单元判断备份分区是否升级成功;备份分区升级成功后,微控单元将备份分区和激活分区相互切换。
基于同一思想,本发明还提供一种电子设备,包括:PC端和待升级设备,待升级设备包括微控单元,微控单元包括存储器,存储器包括第一分区和第二分区;PC端用于构建升级文件,一个升级文件至少同时包括第一分区执行文件和第二分区执行文件,其中,第一分区能够基于升级文件中第一分区执行文件进行升级,第二分区能够基于升级文件中第二分区执行文件进行升级;PC端还用于将升级文件发送至待升级设备的微控单元;微控单元用于判断第一分区和第二分区中一者为激活分区、另一者为备份分区;微控单元还用于将升级文件中与备份分区对应的执行文件下载至备份分区;备份分区用于基于升级文件中与其对应的执行文件进行升级;微控单元还用于将判断备份分区是否升级成功;备份分区升级成功后,微控单元还用于将备份分区和激活分区相互切换。
与现有技术相比,本发明提供的应用程序升级方法和电子设备,至少实现了如下的有益效果:
本发明提供的应用程序升级方法中,PC端在构建升级文件时,将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,然后将升级文件传输至待升级设备中微控单元即可,PC端无需分别构建基于第一分区执行文件的升级文件和基于第二分区执行文件的升级文件,有效减小PC端构建升级文件的步骤,提高PC端构建升级文件的效率。同时,PC端无需了解待升级设备中第一分区和第二分区中哪个为激活分区,哪个为备份分区,然后再针对性的传输相应的升级文件。PC端仅需将同时包括第一分区执行文件和第二分区执行文件的升级文件传输至待升级设备中微控单元即可,在微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元将升级文件中与备份分区对应的执行文件下载至备份分区,备份分区可基于升级文件中与其对应的执行文件进行升级即可,相应的,有效简化PC端与待升级设备之间的通信协议,有效减少操作流程,提升升级效率。
当然,实施本发明的任一产品不必特定需要同时达到以上所述的所有技术效果。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本发明提供的一种应用程序升级方法的流程图;
图2是本发明提供的一种电子设置的结构示意图;
图3是本发明提供的应用程序升级方法中步骤S1的一种流程图;
图4是本发明提供的应用程序升级方法中步骤S1的另一种流程图;
图5是本发明提供的应用程序升级方法中步骤S4的一种流程图;
图6是本发明提供的应用程序升级方法中步骤S41的一种流程图;
图7是本发明提供的应用程序升级方法中步骤S5的一种流程图;
图8是本发明提供的应用程序升级方法中步骤S6的一种流程图;
图9是本发明提供的应用程序升级方法中步骤S7的一种流程图;
图10是本发明提供的另一种电子设置的结构示意图;
图11是本发明提供的另一种应用程序升级方法的局部流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是本发明提供的一种应用程序升级方法的流程图,参考图1,本实施例提供一种应用程序升级方法,该方法可以由电子设备来执行。该方法包括:
步骤S1,PC端构建升级文件,一个升级文件至少同时包括第一分区执行文件和第二分区执行文件。
其中,PC端执行编辑命令,从而可自动构建升级文件。PC端在构建升级文件时,将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,从而一个升级文件至少同时包括第一分区执行文件和第二分区执行文件。
步骤S2,PC端将升级文件发送至待升级设备的微控单元,其中,微控单元包括存储器,存储器包括第一分区和第二分区,其中,第一分区能够基于升级文件中第一分区执行文件进行升级,第二分区能够基于升级文件中第二分区执行文件进行升级。
其中,PC端根据与待升级设备的微控单元之间的升级协议将升级文件发送至待升级设备的微控单元。微控单元包括存储器,存储器包括第一分区和第二分区,第一分区和第二分区为存储器中两个存储应用程序的分区,第一分区和第二分区需要依据基于不同链接地址形成的执行文件进行升级,其中,第一分区能够基于升级文件中第一分区执行文件进行升级,第二分区能够基于升级文件中第二分区执行文件进行升级。
步骤S3,微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区。
其中,第一分区和第二分区为存储器中两个存储应用程序的分区。在待升级设备运行时,第一分区和第二分区中一者为激活分区,另一者为备份分区。激活分区指用于存放当前应用程序版本,并作为工作区运行当前应用程序的分区。备份分区是指用于存储用于应用程序,且不运行该应用程序的分区。在应用程序升级前,激活分区存储的应用程序版本与备份分区存储的应用程序版本可以是相同的,也可以是不同的。微控单元可直接判断第一分区和第二分区中一者为激活分区、另一者为备份分区。
示例性的,当第一分区为激活分区时,第二分区为备份分区;当第二分区为激活分区时,第一分区为备份分区。
步骤S4,微控单元将升级文件中与备份分区对应的执行文件下载至备份分区。
其中,微控单元可直接判断第一分区和第二分区中一者为激活分区、另一者为备份分区,在微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元将升级文件中与备份分区对应的执行文件下载至备份分区。
示例性的,当第一分区为激活分区时,第二分区为备份分区时,微控单元将升级文件中第二分区执行文件下载至第二分区。
步骤S5,备份分区基于升级文件中与其对应的执行文件进行升级。
其中,备份分区基于升级文件中与其对应的执行文件进行升级,即可对备份分区中应用程序进行升级,备份分区作为非运行分区,不会影响待升级设备的正常运行。
步骤S6,微控单元判断备份分区是否升级成功。
步骤S7,备份分区升级成功后,微控单元将备份分区和激活分区相互切换。
其中,备份分区基于升级文件中与其对应的执行文件进行升级成功后,微控单元将备份分区和激活分区相互切换,即将升级成功后的备份分区切换成激活分区,从而可实现运行更新后的应用程序版本。
示例性的,当第一分区为激活分区时,第二分区为备份分区时,微控单元将升级文件中第二分区执行文件下载至第二分区后,第二分区基于升级文件中第二分区执行文件进行升级,在第二分区升级成功后,微控单元将第二分区切换成激活分区,将第一分区切换成备份分区。
具体的,图2是本发明提供的一种电子设置的结构示意图,该电子设备包括PC端10和待升级设备20,待升级设备20包括微控单元MCU,微控单元MCU包括存储器flash,其中,存储器flash包括第一分区A区和第二分区B区。
参考图1和图2,本发明实施例提供的应用程序升级方法中,待升级设备20中微控单元MCU可直接判断第一分区A区和第二分区B区中一者为激活分区、另一者为备份分区,从而PC端10在构建升级文件时,可将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,即一个升级文件至少同时包括第一分区执行文件和第二分区执行文件,然后PC端10直接将升级文件传输至待升级设备20中微控单元MCU,在微控单元MCU判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元MCU将升级文件中与备份分区对应的执行文件下载至备份分区,备份分区可基于升级文件中与其对应的执行文件进行升级。即PC端10在构建升级文件时,将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,然后将升级文件传输至待升级设备20中微控单元MCU即可,PC端10无需分别手动构建基于第一分区执行文件的升级文件和基于第二分区执行文件的升级文件,有效减小PC端10构建升级文件的步骤,提高PC端10构建升级文件的效率。
同时,PC端10无需了解待升级设备20中第一分区A区和第二分区B区中哪个为激活分区,哪个为备份分区,然后再针对性的传输相应的升级文件。PC端10仅需将同时包括第一分区执行文件和第二分区执行文件的升级文件传输至待升级设备20中微控单元MCU即可,在微控单元MCU判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元MCU将升级文件中与备份分区对应的执行文件下载至备份分区,备份分区可基于升级文件中与其对应的执行文件进行升级即可,相应的,有效简化PC端10与待升级设备20之间的通信协议,有效减少操作流程,提升升级效率。
在一些可选实施例中,在备份分区升级成功,微控单元将备份分区和激活分区相互切换后,微控单元再次将当前备份分区和当前激活分区相互切换。
具体的,在备份分区升级成功后,且微控单元将备份分区和激活分区相互切换后,当前激活分区中应用程序为升级后的应用程序版本,当前备份分区中应用程序为升级前的应用程序版本。若当前激活分区中升级后的应用程序在使用中存在问题,或用户对升级后的应用程序使用效果不满意时,微控单元可再次将备份分区和激活分区相互切换,重新使用升级前的应用程序版本,从而实现回滚功能。
示例性的,在备份分区升级成功前,第一分区为激活分区,第二分区为备份分区时,微控单元将升级文件中第二分区执行文件下载至第二分区后,第二分区基于升级文件中第二分区执行文件进行升级,在第二分区升级成功后,微控单元将第二分区切换成激活分区,将第一分区切换成备份分区,此时,第二分区中应用程序为升级后的应用程序版本,第一分区中应用程序为升级前的应用程序版本。在用户需要时,微控单元可再次将第一分区和第二分区进行备份分区和激活分区的相互切换,即再次将第一分区切换成激活分区,将第二分区切换成备份分区。
图3是本发明提供的应用程序升级方法中步骤S1的一种流程图,参考图1和图3,在一些可选实施例中,步骤S1中PC端构建升级文件包括:
步骤S11,执行编译命令,生成临时文件;
步骤S12,基于临时文件,根据第一分区和第二分区的链接文件分别生成第一分区临时文件和第二分区临时文件;
步骤S13,在第一分区临时文件中加入第一有效信息生成第一分区执行文件,在第二分区临时文件中加入第二有效信息生成第二分区执行文件,其中,第一有效信息包括第一分区临时文件的标记位、大小和/或校验值,第二有效信息包括第二分区临时文件的标记位、大小和/或校验值;
步骤S14,将第一分区执行文件和第二分区执行文件合并生成一个升级文件。
具体的,PC端在构建升级文件时,先执行编译命令,生成临时文件temp.elf。然后,根据第一分区的链接文件a.icf将临时文件temp.elf生成第一分区临时文件a. temp.bin,同时,根据第二分区的链接文件b.icf将临时文件temp.elf生成第二分区临时文件b.temp.bin。接着,在第一分区临时文件a. temp.bin中加入第一有效信息生成第一分区执行文件a..bin,在第二分区临时文件b. temp.bin中加入第二有效信息生成第二分区执行文件b.bin。再接着,将第一分区执行文件a..bin和第二分区执行文件b.bin合并生成一个升级文件ab.image.bin。从而实现一个升级文件ab.image.bin中同时包括第一分区执行文件a..bin和第二分区执行文件b.bin。
需要说明的是,第一有效信息包括第一分区临时文件的标记位、大小和/或校验值,第二有效信息包括第二分区临时文件的标记位、大小和/或校验值,在本发明其他实施例中,第一有效信息和第二有效信息还可以根据编译需要设置为其他信息,本发明在此不再一一赘述。
在一些可选实施例中,PC端构建升级文件还包括:
在升级文件的头部加入头部文件,头部文件至少包括第一分区执行文件的信息和第二分区执行文件的信息。
图4是本发明提供的应用程序升级方法中步骤S1的另一种流程图,参考图1和图4,步骤S1中PC端构建升级文件包括:
步骤S14’,将第一分区执行文件和第二分区执行文件合并,在升级文件的头部加入头部文件,生成一个升级文件。其中,头部文件至少包括第一分区执行文件的信息和第二分区执行文件的信息。
具体的,升级文件还包括头部文件,其中,头部文件位于升级文件的头部,第一分区执行文件和第二分区执行文件位于升级文件中头部文件的后面,从而微控单元可根据头部文件自动识别升级文件的升级数据域,即微控单元可根据头部文件自动识别升级文件中第一分区执行文件的区域和第二分区执行文件的区域,并能够下载所需要的区域。从而在微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元可识别升级文件中与备份分区对应的执行文件所在区域,并将升级文件中与备份分区对应的执行文件下载至备份分区。
可选的,第一分区执行文件的信息包括第一分区执行文件的长度,第二分区执行文件的信息包括第二分区执行文件的长度。当然,第一分区执行文件的信息还可以包括其他信息,第二分区执行文件的信息也可以包括其他信息。当然,头部文件除了第一分区执行文件的信息和第二分区执行文件的信息以外,还可以包括魔术字、版本号、头部信息长度、文件分区个数、文件数据长度、保留用于后续拓展和头部信息校验值中的一个或多个,也可以包括其他信息,本发明在此不再进行赘述。
图5是本发明提供的应用程序升级方法中步骤S4的一种流程图,参考图1、图4和图5,在一些可选实施例中,步骤S4中微控单元将升级文件中与备份分区对应的执行文件下载至备份分区包括:
步骤S41,微控单元接收头部信息,并判断头部文件是否完整;
步骤S42,微控单元接收完整的头部文件后,根据头部文件获取升级文件中与备份分区相对应的执行文件;
步骤S43,微控单元将与备份分区对应的执行文件下载至备份分区。
具体的,升级文件还包括头部文件,其中,头部文件位于升级文件的头部,第一分区执行文件和第二分区执行文件位于升级文件中头部文件的后面。微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元可先接收升级文件中的头部信息。在微控单元接收完升级文件中的完整的头部信息后,微控单元可识别升级文件中与备份分区对应的执行文件所在区域,获取升级文件中与备份分区相对应的执行文件,并将升级文件中与备份分区对应的执行文件下载至备份分区。
图6是本发明提供的应用程序升级方法中步骤S41的一种流程图,参考图1、图4-图6,在一些可选实施例中,头部文件还包括头部信息长度和头部信息校验值。
步骤S41中微控单元接收头部信息,并判断头部文件是否完整包括:
步骤S411,微控单元接收头部信息,并记录接收数据长度,基于头部信息长度判断头部信息是否接收完成;
步骤S412,待微控单元完成接收头部信息后,微控单元计算头部文件的数据校验值,并判断头部文件的数据校验值与头部信息校验值是否一致,若一致,则判断头部文件完整。
具体的,微控单元在接收头部信息时记录接收数据长度,头部文件还包括头部信息长度,微控单元可基于头部信息长度判断头部信息是否接收完成。头部文件还包括头部信息校验值,在微控单元完成接收头部信息后,微控单元先计算头部文件的数据校验值,然后将计算的头部文件的数据校验值与头部信息校验值相比较,若计算的头部文件的数据校验值与头部信息校验值相一致,则说明微控单元完整、正确的接收了升级文件中的头部信息。
图7是本发明提供的应用程序升级方法中步骤S5的一种流程图,参考图1和图7,在一些可选实施例中,步骤S5中备份分区基于升级文件中与其对应的执行文件进行升级包括:
步骤S51,微控单元擦除备份分区的数据内容;
步骤S52,备份分区接收升级文件中与其对应的执行文件,并进行升级。
具体的,备份分区在接收升级文件中与其对应的执行文件之前,微控单元先对备份分区的数据内容进行擦除,即微控单元先把备份分区的应用程序进行擦除,然后备份分区再接收微控单元所发送的升级文件中与其对应的执行文件,并在备份分区中进行升级,从而实现备份分区基于升级文件中与其对应的执行文件进行升级。
可选的,备份分区接收升级文件中与其对应的执行文件时,每接收到预设数量的字节数据就写入到微控单元的存储器中对应的地址。可选的,预设数量可以为32字节。当然,在本发明其他实施例中,根据微控单元及升级协议的不同设置条件,预设数量还可以为其他数量,本发明在此不再进行赘述。
图8是本发明提供的应用程序升级方法中步骤S6的一种流程图,参考图1和图8,在一些可选实施例中,步骤S6中微控单元判断备份分区是否升级成功包括:
步骤S61,微控单元计算备份分区中与其对应的执行文件的数据校验值;
步骤S62,微控单元判断备份分区中与其对应的执行文件的数据校验值和与其对应的有效信息中的校验值是否一致,若一致,则判断备份分区升级成功。
具体的,备份分区基于升级文件中与其对应的执行文件进行升级后,微控单元先计算备份分区中与其对应的执行文件的数据校验值,然后将计算的备份分区中与其对应的执行文件的数据校验值和与其对应的有效信息中的校验值相比较,若两者相一致,则说明备份分区升级成功。
示例性的,当第一分区为激活分区,第二分区为备份分区时,第二分区基于升级文件中第二分区执行文件进行升级。当第二分区基于升级文件中第二分区执行文件进行升级后,微控单元先计算第二分区中第二分区执行文件的数据校验值,然后将计算的第二分区执行文件的数据校验值和第二分区执行文件中第二有效信息中的校验值相比较,若两者相一致,则说明第二分区升级成功。
图9是本发明提供的应用程序升级方法中步骤S7的一种流程图,参考图1和图9,在一些可选实施例中,步骤S7中备份分区升级成功后,微控单元将备份分区和激活分区相互切换包括:
步骤S71,备份分区升级成功后,微控单元清除备份分区的升级标记,并置位备份分区的完成标记;
步骤S72,微控单元将备份分区和激活分区相互切换,擦除原先的激活分区的激活标记,并置位原先的备份分区的激活标记;
步骤S73,重启待升级设备。
具体的,微控单元擦除备份分区的数据内容,并置位备份分区的升级标记update,表示正在升级中,此时,备份分区接收升级文件中与其对应的执行文件,并进行升级。备份分区基于升级文件中与其对应的执行文件进行升级成功后,微控单元清除备份分区的升级标记update,并置位备份分区的完成标记succ,表示备份分区已经升级完成,该分区可用。微控单元将备份分区和激活分区相互切换,擦除原先的激活分区的激活标记active,并置位原先的备份分区的激活标记active。重启待升级设备,微控单元可根据激活标记active,确定当前激活分区,从而运行升级后的应用程序。
图10是本发明提供的另一种电子设置的结构示意图,参考图10,在一些可选实施例中,存储器flash还包括引导区和分区表。
参考图1,步骤S3中微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区包括:
微控单元启动引导区,根据分区表中分区表信息,判断第一分区和第二分区中一者为激活分区、另一者为备份分区,其中,分区表信息至少包括第一分区标记属性和第二分区标记属性。
具体的,存储器flash还包括引导区和分区表,分区表中存储有分区表信息,分区表信息至少包括第一分区标记属性和第二分区标记属性。微控单元启动引导区,根据分区表中分区表信息中第一分区标记属性和第二分区标记属性,判断第一分区和第二分区中一者为激活分区、另一者为备份分区。
示例性的,当第一分区标记属性为:激活标记active为1、升级标记update为0、且完成标记succ为1,微控单元可判断第一分区为激活分区。
继续参考图10,在一些可选实施例中,存储器flash还包括引导区和分区表。
图11是本发明提供的另一种应用程序升级方法的局部流程图,参考图11,本发明实施例提供的应用程序升级方法还包括:
步骤S8,微控单元启动引导区,根据分区表中分区表信息,获取当前激活分区,其中,分区表信息包括第一分区信息和第二分区信息;
步骤S9,根据分区表信息,加载当前激活分区的应用软件,跳转到当前激活分区运行。
具体的,存储器flash还包括引导区和分区表,分区表中存储有分区表信息,分区表信息包括第一分区信息和第二分区信息。可选的,第一分区信息包括第一分区标记属性、第一分区起始地址和第一分区分配的最大长度,第二分区信息包括第二分区标记属性、第二分区起始地址和第二分区分配的最大长度。微控单元启动引导区,根据分区表中分区表信息,获取当前激活分区。在确定当前激活分区后,微控单元可根据分区表信息,加载当前激活分区的应用软件,跳转到当前激活分区运行。
需要说明的是,分区表信息还可以包括魔术字、第一分区保留、第二分区保留和分区表校验值中的一种或多种,当然,分区表信息还可以包括其他信息,本发明在此不再一一赘述。
继续参考图10,在一些可选实施例中,存储器flash还包括备份分区表,备份分区表中分区表信息与分区表中分区表信息一致。
本发明实施例提供的应用程序升级方法还包括:
在分区表损坏时,微控单元根据备用分区表信息,加载当前激活分区的应用软件,跳转到当前激活分区执行。
具体的,微控单元可对分区表进行校验,判断分区表是否损坏。可选的,微控单元可基于分区表中分区表信息中分区表校验值进行校验,若分区表校验值不正确,则判断分区表损坏。在分区表损坏时,微控单元根据备份分区表中分区表信息,加载当前激活分区的应用软件,跳转到当前激活分区执行。
继续参考图10,在一些可选实施例中,分区表和备份分区表存储于不同存储结构中。
具体的,存储器flash包括多个存储结构,分区表和备份分区表存储于不同存储结构中,从而减小分区表和备份分区表同时损坏的可能性,提升系统损坏恢复能力。
可选的,微控单元还可以对备份分区表进行校验,判断备份分区表是否损坏。可选的,微控单元可基于备份分区表中分区表信息中分区表校验值进行校验,若分区表校验值不正确,则判断备份分区表损坏。在备份分区表损坏时,微控单元先从第一分区默认起始地址开始,在指定长度读取第一分区有效信息,如果数据有效,再根据第一分区这个信息,计算第一分区数据校验值与存储值相比较,一致则说明第一分区软件功能完整,重新激活第一分区,并跳转至第一分区执行。同理,如果第一分区无效,则获取第二分区信息,如果第二分区数据完整,则重新激活第二分区,并跳转至第二分区执行。如果第一分区和第二分区都不完整,则停留在引导区处,等待重新升级。
参考图1和图2,本实施例提供一种电子设备,电子设置包括PC端10和待升级设备20,待升级设备20包括微控单元MCU,微控单元MCU包括存储器flash,其中,存储器flash包括第一分区A区和第二分区B区。
其中,PC端10用于构建升级文件,一个升级文件至少同时包括第一分区执行文件和第二分区执行文件,其中,第一分区A区能够基于升级文件中第一分区执行文件进行升级,第二分区B区能够基于升级文件中第二分区执行文件进行升级;
PC端10还用于将升级文件发送至待升级设备20的微控单元MCU;
微控单元MCU用于判断第一分区A区和第二分区B区中一者为激活分区、另一者为备份分区;
微控单元MCU还用于将升级文件中与备份分区对应的执行文件下载至备份分区;
备份分区用于基于升级文件中与其对应的执行文件进行升级;
微控单元MCU还用于判断备份分区是否升级成功;
备份分区升级成功后,微控单元MCU还用于将备份分区和激活分区相互切换。
具体的,本发明实施例提供的电子设备中,待升级设备20中微控单元MCU可直接判断第一分区A区和第二分区B区中一者为激活分区、另一者为备份分区,从而PC端10在构建升级文件时,可将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,即一个升级文件至少同时包括第一分区执行文件和第二分区执行文件,然后PC端10直接将升级文件传输至待升级设备20中微控单元MCU,在微控单元MCU判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元MCU将升级文件中与备份分区对应的执行文件下载至备份分区,备份分区可基于升级文件中与其对应的执行文件进行升级。即PC端10在构建升级文件时,将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,然后将升级文件传输至待升级设备20中微控单元MCU即可,PC端10无需分别构建基于第一分区执行文件的升级文件和基于第二分区执行文件的升级文件,有效减小PC端10构建升级文件的步骤,提高PC端10构建升级文件的效率。
同时,PC端10无需了解待升级设备20中第一分区A区和第二分区B区中哪个为激活分区,哪个为备份分区,然后再针对性的传输相应的升级文件。PC端10仅需将同时包括第一分区执行文件和第二分区执行文件的升级文件传输至待升级设备20中微控单元MCU即可,在微控单元MCU判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元MCU将升级文件中与备份分区对应的执行文件下载至备份分区,备份分区可基于升级文件中与其对应的执行文件进行升级即可,相应的,有效简化PC端10与待升级设备20之间的通信协议,有效减少操作流程,提升升级效率。
通过上述实施例可知,本发明提供的应用程序升级方法和电子设备,至少实现了如下的有益效果:
本发明提供的应用程序升级方法中,PC端在构建升级文件时,将第一分区执行文件和第二分区执行文件同时写入同一个升级文件,然后将升级文件传输至待升级设备中微控单元即可,PC端无需分别构建基于第一分区执行文件的升级文件和基于第二分区执行文件的升级文件,有效减小PC端构建升级文件的步骤,提高PC端构建升级文件的效率。同时,PC端无需了解待升级设备中第一分区和第二分区中哪个为激活分区,哪个为备份分区,然后再针对性的传输相应的升级文件。PC端仅需将同时包括第一分区执行文件和第二分区执行文件的升级文件传输至待升级设备中微控单元即可,在微控单元判断第一分区和第二分区中一者为激活分区、另一者为备份分区后,微控单元将升级文件中与备份分区对应的执行文件下载至备份分区,备份分区可基于升级文件中与其对应的执行文件进行升级即可,相应的,有效简化PC端与待升级设备之间的通信协议,有效减少操作流程,提升升级效率。
虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
Claims (14)
1.一种应用程序升级方法,其特征在于,包括:
PC端构建升级文件,一个所述升级文件至少同时包括第一分区执行文件和第二分区执行文件;
所述PC端将所述升级文件发送至待升级设备的微控单元,其中,所述微控单元包括存储器,所述存储器包括第一分区和第二分区,其中,所述第一分区能够基于所述升级文件中所述第一分区执行文件进行升级,所述第二分区能够基于所述升级文件中所述第二分区执行文件进行升级;
所述微控单元判断所述第一分区和所述第二分区中一者为激活分区、另一者为备份分区;
所述微控单元将所述升级文件中与所述备份分区对应的执行文件下载至所述备份分区;
所述备份分区基于所述升级文件中与其对应的执行文件进行升级;
所述微控单元判断所述备份分区是否升级成功;
所述备份分区升级成功后,所述微控单元将所述备份分区和所述激活分区相互切换。
2.根据权利要求1所述的方法,其特征在于,
所述PC端构建升级文件包括:
执行编译命令,生成临时文件;
基于所述临时文件,根据第一分区和第二分区的链接文件分别生成第一分区临时文件和第二分区临时文件;
在所述第一分区临时文件中加入第一有效信息生成所述第一分区执行文件,在所述第二分区临时文件中加入第二有效信息生成所述第二分区执行文件,其中,所述第一有效信息包括所述第一分区临时文件的标记位、大小和/或校验值,所述第二有效信息包括所述第二分区临时文件的标记位、大小和/或校验值;
将所述第一分区执行文件和所述第二分区执行文件合并生成一个所述升级文件。
3.根据权利要求2所述的方法,其特征在于,
所述PC端构建升级文件还包括:
在所述升级文件的头部加入头部文件,所述头部文件至少包括所述第一分区执行文件的信息和所述第二分区执行文件的信息。
4.根据权利要求3所述的方法,其特征在于,
所述微控单元将所述升级文件中与所述备份分区对应的执行文件下载至所述备份分区包括:
所述微控单元接收所述头部信息,并判断所述头部文件是否完整;
所述微控单元接收完整的所述头部文件后,根据所述头部文件获取所述升级文件中与所述备份分区相对应的执行文件;
所述微控单元将与所述备份分区对应的执行文件下载至所述备份分区。
5.根据权利要求4所述的方法,其特征在于,
所述头部文件还包括头部信息长度和头部信息校验值;
所述微控单元接收所述头部信息,并判断所述头部文件是否完整包括:
所述微控单元接收所述头部信息,并记录接收数据长度,基于所述头部信息长度判断所述头部信息是否接收完成;
待所述微控单元完成接收所述头部信息后,所述微控单元计算所述头部文件的数据校验值,并判断所述头部文件的数据校验值与所述头部信息校验值是否一致,若一致,则判断所述头部文件完整。
6.根据权利要求1所述的方法,其特征在于,
所述备份分区基于所述升级文件中与其对应的执行文件进行升级包括:
所述微控单元擦除所述备份分区的数据内容;
所述备份分区接收所述升级文件中与其对应的执行文件,并进行升级。
7.根据权利要求1所述的方法,其特征在于,
所述微控单元判断所述备份分区是否升级成功包括:
所述微控单元计算所述备份分区中与其对应的执行文件的数据校验值;
所述微控单元判断所述备份分区中与其对应的执行文件的数据校验值和与其对应的有效信息中的校验值是否一致,若一致,则判断所述备份分区升级成功。
8.根据权利要求1所述的方法,其特征在于,
所述备份分区升级成功后,所述微控单元将所述备份分区和所述激活分区相互切换包括:
所述备份分区升级成功后,所述微控单元清除所述备份分区的升级标记,并置位所述备份分区的完成标记;
所述微控单元将所述备份分区和所述激活分区相互切换,擦除原先的所述激活分区的激活标记,并置位原先的所述备份分区的激活标记;
重启所述待升级设备。
9.根据权利要求1所述的方法,其特征在于,
所述存储器还包括引导区和分区表;
所述微控单元判断所述第一分区和所述第二分区中一者为激活分区、另一者为备份分区包括:
所述微控单元启动所述引导区,根据所述分区表中分区表信息,判断所述第一分区和所述第二分区中一者为激活分区、另一者为备份分区,其中,所述分区表信息至少包括第一分区标记属性和第二分区标记属性。
10.根据权利要求1所述的方法,其特征在于,
在所述备份分区升级成功,所述微控单元将所述备份分区和所述激活分区相互切换后,所述微控单元再次将当前所述备份分区和当前所述激活分区相互切换。
11.根据权利要求1所述的方法,其特征在于,
所述存储器还包括引导区和分区表;
所述方法还包括:
所述微控单元启动引导区,根据所述分区表中分区表信息,获取当前激活分区,其中,所述分区表信息包括第一分区信息和第二分区信息;
根据所述分区表信息,加载所述当前激活分区的应用软件,跳转到所述当前激活分区运行。
12.根据权利要求11所述的方法,其特征在于,
所述存储器还包括备份分区表,所述备份分区表中分区表信息与所述分区表中分区表信息一致;
所述方法还包括:
在所述分区表损坏时,所述微控单元根据所述备用分区表信息,加载所述当前激活分区的应用软件,跳转到所述当前激活分区运行。
13.根据权利要求12所述的方法,其特征在于,
所述分区表和所述备份分区表存储于不同存储结构中。
14.一种电子设备,其特征在于,包括:PC端和待升级设备,所述待升级设备包括微控单元,所述微控单元包括存储器,所述存储器包括第一分区和第二分区;
所述PC端用于构建升级文件,一个所述升级文件至少同时包括第一分区执行文件和第二分区执行文件,其中,所述第一分区能够基于所述升级文件中所述第一分区执行文件进行升级,所述第二分区能够基于所述升级文件中所述第二分区执行文件进行升级;
所述PC端还用于将所述升级文件发送至待升级设备的微控单元;
所述微控单元用于判断所述第一分区和所述第二分区中一者为激活分区、另一者为备份分区;
所述微控单元还用于将所述升级文件中与所述备份分区对应的执行文件下载至所述备份分区;
所述备份分区用于基于所述升级文件中与其对应的执行文件进行升级;
所述微控单元还用于判断所述备份分区是否升级成功;
所述备份分区升级成功后,所述微控单元还用于将所述备份分区和所述激活分区相互切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008449.6A CN117539518B (zh) | 2024-01-02 | 2024-01-02 | 应用程序升级方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008449.6A CN117539518B (zh) | 2024-01-02 | 2024-01-02 | 应用程序升级方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117539518A true CN117539518A (zh) | 2024-02-09 |
CN117539518B CN117539518B (zh) | 2024-06-07 |
Family
ID=89790320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410008449.6A Active CN117539518B (zh) | 2024-01-02 | 2024-01-02 | 应用程序升级方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539518B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017067448A1 (zh) * | 2015-10-22 | 2017-04-27 | 深圳市中兴微电子技术有限公司 | 一种无线固件升级方法、系统及计算机存储介质 |
CN107247603A (zh) * | 2017-04-18 | 2017-10-13 | 深圳市广和通无线股份有限公司 | 支持固件自动恢复功能的远程升级方法与系统 |
CN110231952A (zh) * | 2019-06-17 | 2019-09-13 | 合肥巨一动力系统有限公司 | 一种ecu程序备份及循环升级控制方法及装置 |
CN113064604A (zh) * | 2021-03-18 | 2021-07-02 | 瑞芯微电子股份有限公司 | 一种固件升级方法和装置 |
CN115309435A (zh) * | 2022-08-04 | 2022-11-08 | 杭州联吉技术有限公司 | 设备固件升级方法、装置及电子设备 |
CN116360831A (zh) * | 2023-05-31 | 2023-06-30 | 中国第一汽车股份有限公司 | 一种应用程序升级方法、装置、电子设备及存储介质 |
-
2024
- 2024-01-02 CN CN202410008449.6A patent/CN117539518B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017067448A1 (zh) * | 2015-10-22 | 2017-04-27 | 深圳市中兴微电子技术有限公司 | 一种无线固件升级方法、系统及计算机存储介质 |
CN107247603A (zh) * | 2017-04-18 | 2017-10-13 | 深圳市广和通无线股份有限公司 | 支持固件自动恢复功能的远程升级方法与系统 |
CN110231952A (zh) * | 2019-06-17 | 2019-09-13 | 合肥巨一动力系统有限公司 | 一种ecu程序备份及循环升级控制方法及装置 |
CN113064604A (zh) * | 2021-03-18 | 2021-07-02 | 瑞芯微电子股份有限公司 | 一种固件升级方法和装置 |
CN115309435A (zh) * | 2022-08-04 | 2022-11-08 | 杭州联吉技术有限公司 | 设备固件升级方法、装置及电子设备 |
CN116360831A (zh) * | 2023-05-31 | 2023-06-30 | 中国第一汽车股份有限公司 | 一种应用程序升级方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117539518B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107179909B (zh) | 软件升级方法、装置及计算机可读存储介质 | |
CN110096294B (zh) | 一种可任意断点无线升级mcu应用程序的方法 | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN106325929B (zh) | 一种固件升级方法、固件升级装置、冰箱和服务端 | |
CN101778376A (zh) | 一种实现固件无线更新的方法及装置 | |
CN110730104A (zh) | 一种mesh网络设备的多设备批量固件升级的方法 | |
CN111796848A (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
CN112667265B (zh) | 一种引导程序更新方法及装置 | |
CN111309354A (zh) | 联网设备的ota升级方法及装置 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
CN112416411B (zh) | 升级方法及装置、设备端、服务器、计算机可读介质 | |
CN114531431A (zh) | 一种基于蓝牙的多设备ota升级方法、电子设备、存储介质和程序产品 | |
WO2024131374A1 (zh) | 机顶盒跨系统升级方法、装置、机顶盒及存储介质 | |
CN117539518B (zh) | 应用程序升级方法和电子设备 | |
CN115437674B (zh) | 一种固件升级方法、装置、介质及电子设备 | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
CN114995845A (zh) | Ota升级方法和设备 | |
CN100484038C (zh) | 网元版本切换方法及装置 | |
CN114780122A (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN110309018B (zh) | 充电设备系统切换方法、充电设备及可读存储介质 | |
CN113721959A (zh) | 一种信息处理方法、装置及电子设备 | |
CN114296764A (zh) | 系统升级方法、装置、存储介质和电子设备 | |
CN113190244A (zh) | 无线模组升级的方法、装置、计算机设备和存储介质 | |
CN109947454B (zh) | 一种数据处理方法及系统 | |
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 | ||
GR01 | Patent grant |