【技术实现步骤摘要】
一种固件升级方法和存储设备
[0001]本专利技术涉及固件升级
,特别涉及一种固件升级方法和存储设备。
技术介绍
[0002]FOTA(Firmware Over
‑
the
‑
Air)固件空中下载技术,即固件在线升级技术,是通过FOTA固件升级引擎以固件升级包作为输入完成固件的升级。
[0003]现有的FOTA固件升级方案,主要可以分为以下几类:
[0004]1、不支持对设备物理分区表进行FOTA升级;
[0005]2、在支持对设备物理分区表进行FOTA升级的技术方案中,又存在如下两类:
[0006]a、第一类方案支持部分分区表变更或支持某些特定方式的变更,比如与引导程序相关联的实际物理分区不能变更,或者只能调整已有分区的大小。这类方案绝大多数需要借助外部存储介质(SD/TF卡或U盘),一部分不需要借助外部存储介质的方案只支持特定方式的分区调整,即不会变更固件升级包所在的分区。
[0007]b、第二类基本上支持任意分区表的变更。这类方案通常由于 ...
【技术保护点】
【技术特征摘要】
1.一种固件升级方法,其特征在于,包括步骤:获取用于第一次升级的固件升级包;执行第一次升级,在当前设备的预设位置增加新分区,所述新分区包括:预留包分区,所述预留包分区用于:存放第二次升级的固件升级包;执行第二次升级,读取所述第二次升级的固件升级包并存储至设备Memory,基于所述设备Memory中的第二次升级的固件升级包进行升级操作。2.根据权利要求1所述的一种固件升级方法,其特征在于,所述“获取用于第一次升级的固件升级包”前,还包括步骤:制作第一次升级的固件升级包,所述第一次升级的固件升级包的内容包括:新的升级模式完整镜像文件和分区表配置文件;所述新的升级模式完整镜像文件包括新增指令:在退出升级模式前,检查预留位置是否存在分区表变更标记文件,若存在则重新格式化分区表最后的用户数据分区并重新建立文件系统,同时检查设备分区节点是否有所述预留包分区节点,若有,则对所述预留包分区进行格式化建立可读写的文件系统;所述分区表配置文件包括:分区表信息和虚拟分区标记,当所述虚拟分区标记配置为空时,在当前旧固件的分区表中增加预留包分区,所述预留包分区位于当前分区表的所有固件分区之后、最后一个用户数据分区之前,且所述预留包分区的大小大于第二次升级的固件升级包的大小;或当所述虚拟分区标记不为空时,所述虚拟分区标记包括:第一参数、第二参数和第三参数,所述第一参数表示虚拟分区模式,所述虚拟分区模式包括但不限于:模式1、模式2,所述第二参数表示第二次升级的固件升级包的大小,所述第三参数表示待升级的新平台固件分区表中最后一个用户数据区之前所有分区所占据的存储空间大小。3.根据权利要求2所述的一种固件升级方法,其特征在于,当所述虚拟分区标记配置为空时,所述旧分区表设置有预留位置,所述预留位置为非加密可读写用户数据区,所述预留位置的大小不小于所述差异包的大小;所述旧分区表中设置有引导通信分区,所述引导通信分区用于不同阶段固件间的通信;所述旧分区表的最后一个分区为用户数据分区;若所述第一次升级的固件升级包为完整包,则所述第一次升级的固件升级包包括:设备的完整固件,若所述第一次升级的固件升级包为差异包,则所述第一次升级的固件升级包包括:本次固件升级相对设备中已有固件的差异文件,所述本次固件升级相对设备中已有固件的差异文件的内容包括:进入系统后挂载所述预留包分区的指令。4.根据权利要求1至3任一所述的一种固件升级方法,其特征在于,所述“执行第一次升级”前,具体还包括步骤:判断所述第一次升级的固件升级包的大小是否大于设备预留位置的可用大小,若大于,则退出升级流程,若不大于,则根据需要备份当前设备分区表最后一个分区中的用户数据区内容到网络服务器,将所述第一次升级的固件升级包存入当前设备中的预留位置,下发第一次升级指令,将所述第一次升级指令和所述第一次升级的固件升级包路径写入引导通信分区的位置1,进入升级模式。
5.根据权利要求4所述的一种固件升级方法,其特征在于,所述“执行第一次升级,在当前设备的预设位置增加新分区,所述新分区包括:预留包分区”,具体还包括步骤:步骤S1:升级所述第一次升级的固件升级包的新的升级模式完整镜像文件;步骤S2:读取引导通信分区的位置2的内容,判断是否存在成功标记,存在,则跳转至步骤S3,若不存在,则根据所述第一次升级的固件升级包中的分区表配置文件升级设备的新分区表,所述升级设备的新分区表的升级过程如下:步骤S201:解析分区表配置文件,查看是否存在虚拟分区标记,如果不存在虚拟分区标记或者虚拟分区标记为空,则根据分区表配置文件中的新分区表更新设备中的旧分区表;步骤S202:如果虚拟分区标记不为空,进一步解析出虚拟分区标记中的3个参数,查看第一参数取值是否为模式1或者模式2,若不为模式1也不为模式2,则根据分区表配置文件中的新分区表更新设备中的旧分区表;当第一参数为模式1时,检查分区表配置文件中的新分区表是否存在特定的预留包分区,如果存在,直接根据分区表配置文件中的新分区表更新设备中的旧分区表,如果不存在预留包分区,则首先读取当前设备中的旧分区表,获取该旧分区表的最后一个分区的起始地址和长度,如果该最后一个分区的起始地址与第二参数的大小和大于设备可用的flash空间大小,则退出升级,若该最后一个分区的起始地址与第二参数的大小和不大于设备可用的flash空间大小,则在待升级的分区表的最后一个分区之前插入一个预留包分区,所述预留包分区的起始地址为前面获取到的旧...
【专利技术属性】
技术研发人员:纪大峣,
申请(专利权)人:瑞芯微电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。