引导加载程序自升级的方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-08-22 14:58:28
本技术实施例涉及软件升级,尤其涉及一种引导加载程序自升级的方法、装置、电子设备及存储介质。
背景技术:
1、在现代汽车电子系统中,车载mcu(micro controller unit,微控制器单元)扮演着至关重要的角色,负责控制和管理车辆的各种功能。为了确保汽车电子系统的灵活性和可维护性,车载mcu通常会集成一个bootloader(bootstrap loader,引导加载程序),用于确保车载mcu正常运行以及对车辆上的应用程序软件进行升级。
2、目前,引导加载程序在生产过程中被烧录到车载mcu中,并且通常被设计为不可更改的状态。当需要更新应用程序软件时,通过引导加载程序去升级应用程序软件。
3、然而,若引导加载程序自身出现故障,就必须将车载mcu从车辆上拆卸下来,使用专门的烧录工具(如烧录器、仿真器等)通过物理接口来刷新引导加载程序和应用程序软件,不仅耗费时间和成本,还可能导致大规模的车辆召回。并且,出于对车辆信息安全的考虑,一些汽车厂商会取消烧录口,一旦引导加载程序自身出现故障,无法对引导加载程序进行修复,从而会导致车辆无法正常工作。
技术实现思路
1、本技术实施例提供一种引导加载程序自升级的方法、装置、电子设备及存储介质,以解决相关技术中因无法对引导加载程序进行修复所导致的车辆无法正常工作的问题。
2、第一方面,本技术实施例提供了一种引导加载程序自升级的方法,应用于车载微控制器单元,所述车载微控制器单元的存储器中包括引导加载程序区域、至少两个引导加载程序升级程序区域,所述方法包括:
3、在所述车载微控制器单元上电的情况下,控制加载并运行所述引导加载程序区域中的引导加载程序;
4、在所述引导加载程序运行期间,获取升级标志位数值;
5、根据所述升级标志位数值在至少两个所述引导加载程序升级程序区域中确定目标程序区域,其中,所述目标程序区域中的升级程序用于对所述目标程序区域之外的至少一个所述引导加载程序升级程序区域中的待升级程序进行升级。
6、可选地,所述对所述目标程序区域之外的至少一个引导加载程序升级程序区域中的待升级程序进行升级包括:
7、在所述目标程序区域中的升级程序运行期间,控制擦除至少一个所述引导加载程序升级程序区域中的待升级程序;
8、在所述待升级程序完成擦除的情况下,接收至少一个所述引导加载程序升级程序区域中所述待升级程序对应的第一升级数据,其中,所述第一升级数据包含多个第一升级数据帧;
9、对当前所述第一升级数据帧进行校验;
10、在当前所述第一升级数据帧校验成功的情况下,将当前所述第一升级数据帧写入至少一个所述引导加载程序升级程序区域;
11、若将所有的所述第一升级数据帧写入至少一个所述引导加载程序升级程序区域中,则确定至少一个所述引导加载程序升级程序区域升级完成,控制清除所述升级标志位数值。
12、可选地,在所述对当前所述第一升级数据帧进行校验的步骤之后,所述方法包括:
13、在当前所述第一升级数据帧校验失败的情况下,重新接收当前所述第一升级数据帧,并记录重新接收当前所述第一升级数据帧的次数;
14、在所述次数大于等于预设数值的情况下,保持所述升级标志位数值,重启所述车载微控制器单元,并重新执行所述目标程序区域中的升级程序。
15、可选地,至少两个所述引导加载程序升级程序区域包括第一引导加载程序升级程序区域和第二引导加载程序升级程序区域,所述根据所述升级标志位数值在至少两个所述引导加载程序升级程序区域中确定目标程序区域,其中,所述目标程序区域中的升级程序用于对所述目标程序区域之外的至少一个所述引导加载程序升级程序区域中的待升级程序进行升级包括:
16、在所述升级标志位数值为第一预设数值的情况下,跳转至所述第一引导加载程序升级程序区域,并运行所述第一引导加载程序升级程序区域中的第一升级程序,其中,所述第一升级程序用于升级所述第二引导加载程序升级程序区域中的待升级程序。
17、可选地,所述车载微控制器单元的存储器中还包括应用程序区域,所述方法包括:
18、在所述升级标志位数值为第二预设数值或者第三预设数值的情况下,跳转至所述第二引导加载程序升级程序区域;
19、根据所述第二预设数值或者所述第三预设数值,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述应用程序区域中的待升级程序或者通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述第一引导加载程序升级程序区域中的待升级程序。
20、可选地,所述根据所述第二预设数值或者所述第三预设数值,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述应用程序区域中的待升级程序或者通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述第一引导加载程序升级程序区域中的待升级程序包括:
21、在所述升级标志位数值为所述第二预设数值的情况下,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述应用程序区域中的待升级程序;
22、在所述升级标志位数值为所述第三预设数值的情况下,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述第一引导加载程序升级程序区域中的待升级程序。
23、可选地,所述通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述应用程序区域中的待升级程序包括:
24、在所述第二引导加载程序升级程序区域中的第二升级程序运行期间,控制擦除所述应用程序区域中的待升级程序;
25、在所述待升级程序完成擦除的情况下,接收所述应用程序区域中所述待升级程序对应的第二升级数据,其中,所述第二升级数据包含多个第二升级数据帧;
26、对当前所述第二升级数据帧进行校验;
27、在当前所述第二升级数据帧校验成功的情况下,将当前所述第二升级数据帧写入所述应用程序区域;
28、若将所有的所述第二升级数据帧写入所述应用程序区域中,则确定所述应用程序区域升级完成,控制清除所述升级标志位数值。
29、第二方面,本技术实施例提供一种引导加载程序自升级的装置,所述装置包括:
30、引导加载程序区域运行模块,用于在所述车载微控制器单元上电的情况下,控制加载并运行所述引导加载程序区域中的引导加载程序;
31、升级标志位数值获取模块,用于在所述引导加载程序运行期间,获取升级标志位数值;
32、引导加载程序自升级模块,用于根据所述升级标志位数值在至少两个所述引导加载程序升级程序区域中确定目标程序区域,其中,所述目标程序区域中的升级程序用于对所述目标程序区域之外的至少一个所述引导加载程序升级程序区域中的待升级程序进行升级。
33、可选地,所述引导加载程序自升级模块包括:
34、第一程序擦除子模块,用于在所述目标程序区域中的升级程序运行期间,控制擦除至少一个所述引导加载程序升级程序区域中的待升级程序;
35、第一升级数据接收子模块,用于在所述待升级程序完成擦除的情况下,接收至少一个所述引导加载程序升级程序区域中所述待升级程序对应的第一升级数据,其中,所述第一升级数据包含多个第一升级数据帧;
36、第一升级数据帧校验子模块,用于对当前所述第一升级数据帧进行校验;
37、第一升级数据帧写入子模块,用于在当前所述第一升级数据帧校验成功的情况下,将当前所述第一升级数据帧写入至少一个所述引导加载程序升级程序区域;
38、第一引导加载程序自升级子模块,用于若将所有的所述第一升级数据帧写入至少一个所述引导加载程序升级程序区域中,则确定至少一个所述引导加载程序升级程序区域升级完成,控制清除所述升级标志位数值。
39、可选地,所述引导加载程序自升级模块包括:
40、第一升级数据帧重新接收子模块,用于在当前所述第一升级数据帧校验失败的情况下,重新接收当前所述第一升级数据帧,并记录重新接收当前所述第一升级数据帧的次数;
41、车载微控制器单元重启子模块,用于在所述次数大于等于预设数值的情况下,保持所述升级标志位数值,重启所述车载微控制器单元,并重新执行所述目标程序区域中的升级程序。
42、可选地,至少两个所述引导加载程序升级程序区域包括第一引导加载程序升级程序区域和第二引导加载程序升级程序区域,所述引导加载程序自升级模块包括:
43、第二引导加载程序自升级子模块,用于在所述升级标志位数值为第一预设数值的情况下,跳转至所述第一引导加载程序升级程序区域,并运行所述第一引导加载程序升级程序区域中的第一升级程序,其中,所述第一升级程序用于升级所述第二引导加载程序升级程序区域中的待升级程序。
44、可选地,所述车载微控制器单元的存储器中还包括应用程序区域,所述装置包括:
45、程序区域跳转模块,用于在所述升级标志位数值为第二预设数值或者第三预设数值的情况下,跳转至所述第二引导加载程序升级程序区域;
46、第三引导加载程序自升级模块,用于根据所述第二预设数值或者所述第三预设数值,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述应用程序区域中的待升级程序或者通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述第一引导加载程序升级程序区域中的待升级程序。
47、可选地,所述第三引导加载程序自升级模块包括:
48、第三引导加载程序自升级子模块,用于在所述升级标志位数值为所述第二预设数值的情况下,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述应用程序区域中的待升级程序;
49、第四引导加载程序自升级子模块,用于在所述升级标志位数值为所述第三预设数值的情况下,执行通过所述第二引导加载程序升级程序区域中的第二升级程序升级所述第一引导加载程序升级程序区域中的待升级程序。
50、可选地,所述第三引导加载程序自升级子模块包括:
51、第二程序擦除子模块,用于在所述第二引导加载程序升级程序区域中的第二升级程序运行期间,控制擦除所述应用程序区域中的待升级程序;
52、第二升级数据接收子模块,用于在所述待升级程序完成擦除的情况下,接收所述应用程序区域中所述待升级程序对应的第二升级数据,其中,所述第二升级数据包含多个第二升级数据帧;
53、第二升级数据帧校验子模块,用于对当前所述第二升级数据帧进行校验;
54、第二升级数据帧写入子模块,用于在当前所述第二升级数据帧校验成功的情况下,将当前所述第二升级数据帧写入所述应用程序区域;
55、应用程序区域升级子模块,用于若将所有的所述第二升级数据帧写入所述应用程序区域中,则确定所述应用程序区域升级完成,控制清除所述升级标志位数值。
56、第三方面,本技术实施例还提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器,其中,所述处理器被配置为执行所述指令,以实现如上任一所述的引导加载程序自升级的方法。
57、第四方面,本技术实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上任一所述的引导加载程序自升级的方法。
58、在本技术实施例中,在车载微控制器单元上电的情况下,控制加载并运行引导加载程序区域中的引导加载程序;在引导加载程序运行期间,获取升级标志位数值;根据升级标志位数值在至少两个引导加载程序升级程序区域中确定目标程序区域,其中,目标程序区域中的升级程序用于对目标程序区域之外的至少一个引导加载程序升级程序区域中的待升级程序进行升级。本技术通过在车载微控制单元的存储器中新增引导加载程序区域和引导加载程序升级程序区域,引导加载程序区域根据升级标志位数值执行程序区域的跳转,跳转至目标程序区域,通过目标程序区域中的程序对出现故障或者有升级需求的引导加载程序进行升级,不仅解决了因无法对引导加载程序进行修复所导致的车辆无法正常工作的问题,而且还提高了引导加载程序的可靠性和可维护性。另外,本技术通过根据升级标志位数值执行程序区域的跳转,跳转至目标程序区域,通过目标区域中的程序对其他引导加载程序升级程序区域中的程序进行升级,不仅可以快速定位引导加载程序升级程序区域,提高引导加载程序的升级效率,而且还提高了引导加载程序升级的灵活性。
59、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
本文地址:https://www.jishuxx.com/zhuanli/20240822/280642.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。