双分区引导程序与应用程序同步升级及异常回滚方法、芯片及存储介质与流程
本发明涉及嵌入式系统,特别涉及双分区引导程序与应用程序同步升级及异常回滚方法、芯片及存储介质。
背景技术:
1、在汽车电子、车身控制、数字钥匙、nfc控制器及其他嵌入式产品中,常采用引导程序与应用程序分离的架构。引导程序负责上电初始化、升级接收、分区选择、完整性校验及跳转运行,应用程序负责业务逻辑、诊断通信和升级触发。传统升级方案通常只升级应用程序区,引导程序区在量产后保持不变。然而,当引导程序也需要因升级协议变化、闪存分区调整、启动校验策略优化或异常恢复逻辑完善而更新时,若采用单分区覆盖升级或分开升级的方式,一旦升级过程中掉电、复位或镜像不匹配,可能导致引导程序或应用程序损坏,设备无法正常启动。
2、现有技术中,缺少在非运行分区写入包含引导程序、应用程序头信息和应用程序代码的整分区镜像,并在校验通过后受控切换、在启动异常时自动回滚的机制。
3、因此,如何实现引导程序与应用程序作为整分区镜像写入非运行分区,经有效性校验通过后受控切换,并在启动异常时回滚到有效分区,是本领域亟需解决的问题。
4、因此,现有技术还有待改进和提高。
技术实现思路
1、本发明提供双分区引导程序与应用程序同步升级及异常回滚方法、芯片及存储介质,旨在解决现有技术中引导程序与应用程序同步升级过程中可靠性低、异常后难以恢复的技术问题。
2、本发明的第一方面,提供双分区引导程序与应用程序同步升级及异常回滚方法,应用于目标芯片,所述目标芯片包括闪存,所述闪存包括第一分区、第二分区以及独立于所述第一分区和第二分区的状态区;所述第一分区和所述第二分区均包括引导程序区、应用程序头区和应用程序代码区;所述状态区用于保存分区状态和切换控制信息;
3、当接收到目标升级包时,获取整分区镜像,所述整分区镜像包含引导程序、应用程序头信息和应用程序代码;所述方法包括:
4、将所述整分区镜像写入非运行分区,所述非运行分区为当前所述第一分区和所述第二分区中当前未运行的分区,当前运行分区保持可用,当前运行分区为所述第一分区和所述第二分区中当前正在运行的分区;
5、对写入所述非运行分区的整分区镜像进行有效性校验,仅当所述有效性校验通过后,才在所述状态区中写入切换允许标志;
6、在写入所述切换允许标志之后,当所述目标芯片复位时,在所述目标芯片的引导程序跳转至应用程序之前,根据所述切换允许标志执行分区切换,将所述非运行分区切换为运行分区。
7、本发明的第二方面,提供一种双分区引导程序与应用程序同步升级及异常回滚芯片,包括闪存和处理器;
8、所述闪存包括第一分区、第二分区以及独立于所述第一分区和第二分区的状态区;所述第一分区和所述第二分区均包括引导程序区、应用程序头区和应用程序代码区;所述状态区用于保存分区状态和切换控制信息;
9、所述处理器包括:
10、镜像获取模块,用于当接收到目标升级包时,获取整分区镜像,所述整分区镜像包含引导程序、应用程序头信息和应用程序代码;
11、镜像写入模块,用于将所述整分区镜像写入非运行分区,所述非运行分区为当前所述第一分区和所述第二分区中当前未运行的分区,当前运行分区保持可用,当前运行分区为所述第一分区和所述第二分区中当前正在运行的分区;
12、校验模块,用于对写入所述非运行分区的整分区镜像进行有效性校验,仅当所述有效性校验通过后,才在所述状态区中写入切换允许标志;
13、分区切换模块,用于在写入所述切换允许标志之后,当所述芯片复位时,在所述芯片的引导程序跳转至应用程序之前,根据所述切换允许标志执行分区切换,将所述非运行分区切换为运行分区。
14、本发明的第三方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的双分区引导程序与应用程序同步升级及异常回滚方法的步骤。
15、有益效果:与现有技术相比,本发明提供了双分区引导程序与应用程序同步升级及异常回滚方法、芯片及存储介质。本发明提供的双分区引导程序与应用程序同步升级及异常回滚方法,应用于目标芯片,所述目标芯片包括闪存,所述闪存包括第一分区、第二分区以及独立于所述第一分区和第二分区的状态区;所述第一分区和所述第二分区均包括引导程序区、应用程序头区和应用程序代码区;所述状态区用于保存分区状态和切换控制信息。所述方法中,当接收到目标升级包时,获取整分区镜像,所述整分区镜像包含引导程序、应用程序头信息和应用程序代码,然后,将所述整分区镜像写入非运行分区,所述非运行分区为当前所述第一分区和所述第二分区中当前未运行的分区,当前运行分区保持可用,当前运行分区为所述第一分区和所述第二分区中当前正在运行的分区,之后,对写入所述非运行分区的整分区镜像进行有效性校验,仅当所述有效性校验通过后,才在所述状态区中写入切换允许标志,在写入所述切换允许标志之后,当所述目标芯片复位时,在所述目标芯片的引导程序跳转至应用程序之前,根据所述切换允许标志执行分区切换,将所述非运行分区切换为运行分区。本发明为用户提供了一种双分区引导程序与应用程序同步升级及异常回滚方法,通过将包含引导程序、应用程序头信息和应用程序代码的整分区镜像写入非运行分区,并在有效性校验通过后写入切换允许标志、在复位后由引导程序执行分区切换,解决了引导程序与应用程序同步升级过程中因掉电、复位或镜像不匹配导致设备无法正常启动的问题,达到了提高升级可靠性、实现受控切换和异常自动回滚、保证设备可恢复的有益效果。
1.一种双分区引导程序与应用程序同步升级及异常回滚方法,应用于目标芯片,所述目标芯片包括闪存,其特征在于,所述方法由所述目标芯片执行,所述闪存包括第一分区、第二分区以及独立于所述第一分区和第二分区的状态区;所述第一分区和所述第二分区均包括引导程序区、应用程序头区和应用程序代码区;所述状态区用于保存分区状态和切换控制信息;所述方法包括:
2.根据权利要求1所述的双分区引导程序与应用程序同步升级及异常回滚方法,其特征在于,所述对写入所述非运行分区的整分区镜像进行有效性校验,包括:
3.根据权利要求1所述的双分区引导程序与应用程序同步升级及异常回滚方法,其特征在于,根据所述切换允许标志执行分区切换,包括:
4.根据权利要求1所述的双分区引导程序与应用程序同步升级及异常回滚方法,其特征在于,将所述非运行分区切换为运行分区,包括:
5.根据权利要求1所述的双分区引导程序与应用程序同步升级及异常回滚方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的双分区引导程序与应用程序同步升级及异常回滚方法,其特征在于,所述方法还包括:
7.一种芯片,其特征在于,所述芯片包括闪存和处理器;
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-6任一项所述的双分区引导程序与应用程序同步升级及异常回滚方法的步骤。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com