[发明专利]固件升级方法及装置有效
申请号: | 202110183512.6 | 申请日: | 2021-02-08 |
公开(公告)号: | CN112860291B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 单家明 | 申请(专利权)人: | 杭州涂鸦信息技术有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/61 |
代理公司: | 广东君龙律师事务所 44470 | 代理人: | 丁建春 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 升级 方法 装置 | ||
本申请公开了一种固件升级方法及装置。其中,该固件升级方法包括:从升级包中获取新分区表信息;基于新分区表信息确认目标分区的新结束地址在目标分区的原结束地址之后;将目标分区的原起始地址到新结束地址之间的原固件存储在备份分区中;将升级包中目标分区的新固件写入到目标分区的新起始地址和新结束地址之间。本申请可以防止升级失败或升级过程中突然断电导致设备“变砖”。
技术领域
本申请涉及固件升级技术领域,特别是涉及一种固件升级方法及装置。
背景技术
嵌入式设备在推向市场后,通过大量客户的使用和反馈,往往需要对一些产品bug进行修复,对硬件上的bug,往往只能通过产品召回的方式进行修复。对软件上的bug,通常是通过在线OTA的方式来进行升级修复。嵌入式linux系统,因其自身的特点系统都是以分区的方式存储在flash里,各个分区各自承担不同的任务,升级的时候也是以分区的形式对固件进行局部更新,如果设备升级失败,或者在升级过程中突然断电,就会导致设备彻底变砖。
发明内容
本申请提供一种固件升级方法及装置,可以防止升级失败或升级过程中突然断电导致设备“变砖”。
为解决上述问题,本申请提供一种固件升级方法,该方法包括:
从升级包中获取新分区表信息;
基于新分区表信息确认目标分区的新结束地址在目标分区的原结束地址之后;
将目标分区的原起始地址到新结束地址之间的原固件存储在备份分区中;
将升级包中目标分区的新固件写入到目标分区的新起始地址和新结束地址之间。
其中,基于新分区表信息确认目标分区的新结束地址在目标分区的原结束地址之后,包括:
基于新分区表信息确认新起始地址在原起始地址和原结束地址之间;
将新起始地址和新结束地址之间的原固件存储在备份分区中,并和备份分区中目标分区的原起始位置和新起始位置之间的原固件组成完整备份文件。
其中,将新起始地址和新结束地址之间的原固件存储在备份分区中,并和备份分区中原起始位置和新起始位置之间的原固件组成完整备份文件,包括:
将备份分区中目标分区的原起始位置和新起始位置之间的原固件移到备份分区的起始位置;
将目标分区中新起始地址之后的原固件存储在目标分区的原起始位置和新起始位置之间的原固件后,以组成目标分区的完整备份文件。
其中,将目标分区的原起始地址到新结束地址之间的原固件存储在备份分区中,之后包括:
设置升级分区开始标志;
将升级包中目标分区的新固件写入到目标分区的新起始地址和新结束地址之间,之后包括:
若写入成功,替换目标分区的分区信息,写结束分区标志位。
其中,将升级包中目标分区的新固件写入到目标分区的新起始地址和新结束地址之间,之后包括:
若写入失败,基于升级状态标识确认写入失败的分区,将备份分区内原起始地址到新结束地址之间的原固件作为系统启动子固件启动系统。
其中,升级包包含每一分区的升级信息,从升级包中获取新分区表信息,之后包括:
基于升级信息确认目标分区的位置是否发生改变;
若发生改变,基于目标分区位置改变情况,采用相应的方法将原固件存储在备份分区中。
其中,从升级包中获取新分区表信息,之前包括:
下载升级包,并校验升级包的完整性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州涂鸦信息技术有限公司,未经杭州涂鸦信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110183512.6/2.html,转载请声明来源钻瓜专利网。