OTA升级方法、装置、设备及存储介质与流程
本技术涉及ota升级,尤其涉及一种ota升级方法、装置、设备及存储介质。
背景技术:
1、在嵌入式ota升级领域,将预先编译链接好的完整固件镜像存储于非易失性存储器的应用分区中,并通过a/b分区(即当前应用分区以及备用应用分区)切换实现升级失败回滚,是保障设备可靠性的主流技术方案。完整的固件镜像包含业务逻辑代码和公共功能库(如通信协议栈、加密算法库、文件系统等),为应用运行提供完整的代码环境。
2、现有的一般采用a/b双分区独立存储完整固件镜像的方案,即当前应用分区和备用应用分区各自持有一份完整的固件镜像,升级时将新版本固件写入备用分区,通过分区切换完成升级。然而,该方案中每个应用分区均需独立存储一份完整的公共功能库副本,由于公共功能库在版本迭代中通常保持稳定或仅有少量更新,a/b双分区中各存一份副本导致公共功能库被重复存储,使得存储资源的利用效率较低。
技术实现思路
1、本技术的主要目的在于提供一种ota升级方法,旨在解决如何提高存储资源的利用效率的技术问题。
2、为实现上述目的,本技术提出一种ota升级方法,所述方法应用于电子设备,所述电子设备设有非易失性存储器,所述非易失性存储器中预先划分有相互独立的共享静态库分区、当前应用分区以及备用应用分区;其中,所述当前应用分区和所述备用应用分区共用所述共享静态库分区中的公共功能库,所述方法包括:
3、在接收到ota升级镜像的情况下,通过统一擦写接口将所述ota升级镜像写入所述备用应用分区,并更新启动标识,所述启动标识用于指示下一启动时所启动的应用分区;
4、在检测到重启操作后,基于所述启动标识启动所述备用应用分区,并将所述备用应用分区作为新的当前应用分区,将所述当前应用分区作为新的备用应用分区。
5、在一实施例中,所述公共功能库以静态库形式分别与所述当前应用分区的应用层程序以及所述备用应用分区的应用层程序进行链接,通过链接脚本将所述公共功能库的代码段和数据段映射至所述共享静态库分区的物理地址,以使所述当前应用分区的应用层程序以及所述备用应用分区的应用层程序调用所述公共功能库时跳转至相同的目标地址。
6、在一实施例中,所述在接收到ota升级镜像的情况下,通过统一擦写接口将所述ota升级镜像写入所述备用应用分区的步骤之前,还包括:
7、获取所述ota升级镜像所声明的依赖库版本信息;
8、获取所述共享静态库分区中存储的库版本信息;
9、判断所述依赖库版本信息与所述库版本信息是否匹配;
10、若匹配,则允许将所述ota升级镜像写入所述备用应用分区。
11、在一实施例中,所述非易失性存储器还包括有下载区,所述在接收到ota升级镜像的情况下,通过统一擦写接口将所述ota升级镜像写入所述备用应用分区的步骤,包括:
12、通过所述统一擦写接口将所述ota升级镜像写入所述下载区;
13、在所述ota升级镜像写入完成后,通过统一擦写接口将所述ota升级镜像从所述下载区拷贝至所述备用应用分区。
14、在一实施例中,所述基于所述启动标识启动所述备用应用分区的步骤,包括:
15、对所述共享静态库分区执行完整性校验;
16、若所述完整性校验通过,则基于所述启动标识启动所述备用应用分区;
17、若所述完整性校验未通过,则获取所述电子设备中存储的库恢复标志;
18、若所述库恢复标志为第一值,则从预置的出厂备份区恢复所述共享静态库分区的内容;
19、若所述库恢复标志为第二值,则加载所述当前应用分区或所述备用应用分区中预先内嵌的库兼容垫片,利用所述库兼容垫片替代所述共享静态库分区中被损坏的公共功能库;
20、若所述库恢复标志为第三值,则启动所述电子设备的恢复模式,所述恢复模式为响应外部恢复指令,拒绝跳转至任一应用分区的模式。
21、在一实施例中,所述基于所述启动标识启动所述备用应用分区的步骤,还包括:
22、获取所述备用应用分区所声明的依赖库版本信息;
23、获取所述共享静态库分区中存储的库版本信息;
24、判断所述依赖库版本信息与所述库版本信息是否匹配;
25、若匹配,则跳转至所述备用应用分区执行;
26、若不匹配,则尝试启动所述当前应用分区。
27、在一实施例中,所述跳转至所述备用应用分区执行之后,还包括:
28、若所述备用应用分区启动失败,则累计启动失败次数;
29、若所述启动失败次数达到预定阈值,则切换至所述当前应用分区启动,并标记所述备用应用分区为不可用状态。
30、此外,为实现上述目的,本技术还提出一种ota升级装置,所述装置包括:
31、升级写入模块,用于在接收到ota升级镜像的情况下,通过统一擦写接口将所述ota升级镜像写入备用应用分区,并更新启动标识,所述启动标识用于指示下一次启动时所启动的应用分区;
32、启动切换模块,用于在检测到重启操作后,基于所述启动标识启动所述备用应用分区,并将所述备用应用分区作为新的当前应用分区,将当前应用分区作为新的备用应用分区。
33、此外,为实现上述目的,本技术还提出一种电子设备,所述设备设有存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置被所述处理器执行时实现如上文所述的ota升级方法的步骤。
34、此外,为实现上述目的,本技术还提出一种存储介质,该存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的ota升级方法的步骤。
35、本技术提出了一种ota升级方法、装置、设备及存储介质,所述方法应用于电子设备,所述电子设备设有非易失性存储器,所述非易失性存储器中预先划分有相互独立的共享静态库分区、当前应用分区以及备用应用分区;其中,所述当前应用分区和所述备用应用分区共用所述共享静态库分区中的公共功能库,所述方法包括:在接收到ota升级镜像的情况下,通过统一擦写接口将所述ota升级镜像写入所述备用应用分区,并更新启动标识,所述启动标识用于指示下一启动时所启动的应用分区;在检测到重启操作后,基于所述启动标识启动所述备用应用分区,并将所述备用应用分区作为新的当前应用分区,将所述当前应用分区作为新的备用应用分区。
36、本技术ota升级方法设置有共享静态库分区的存储优化架构,当前应用分区和备用应用分区共用共享静态库分区中的公共功能库。进而在实际升级过程中,两个应用分区无需各自存储一份相同的公共功能库代码,而是通过地址映射或符号链接方式统一访问共享静态库分区中的公共功能库。相比于现有方案为每个应用分区独立存储完整的固件镜像,导致公共功能库被重复存储、非易失性存储器空间利用率低,本技术通过引入共享静态库分区,能够有效减少系统固件在存储器中的冗余占用,进而电子设备在有限的存储资源下执行ota升级时,可在支持双分区冗余升级的同时保留更多的用户数据存储空间,提升了存储资源的利用效率与升级方案的实用性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com