引导加载程序的升级方法和装置与流程
- 国知局
- 2024-08-08 16:48:29
本技术涉及软件升级,尤其涉及一种引导加载程序的升级方法和装置。
背景技术:
1、电子控制单元(electronic control unit,ecu)一般至少包含引导加载程序(例如为bootloader)和应用程序两个部分。
2、而除了需要对应用程序进行升级,不可避免的也会出现对引导加载程序进行升级的需求。目前,为了实现ecu中的引导加载程序的升级,通常要求在ecu包括的存储区中预先设置一块存储备区用来存储新的引导加载程序,以完成引导加载程序的升级。
3、但是,上述方法对于ecu的存储区的空间有比较高的要求,对于一些小内存的ecu基本无法使用上述方案。
技术实现思路
1、本技术提供一种引导加载程序的升级方法和装置。其中,该引导加载程序的升级方法,可以在不需要预先划分额外的存储空间的情况下也能完成对引导加载程序的升级。
2、第一方面,本技术提供一种引导加载程序的升级方法,应用于电子控制单元ecu,所述ecu中包括第一地址空间和第二地址空间,所述方法包括:基于第一地址空间中的第一引导加载程序接收升级软件包,所述升级软件包中包括第二引导加载程序和第一应用程序;基于第一引导加载程序执行对第二地址空间的擦除操作;在第二地址空间中写入第一应用程序;执行第一重新启动操作;基于第一应用程序执行对第一地址空间的擦除操作;在第一地址空间中写入第二引导加载程序。
3、本实施例中,ecu中的第一地址空间中存储有第一引导加载程序。
4、示例性地,该第一地址空间中存储的第一引导加载程序包含第一bootloader。
5、本实施例中,第二地址空间为用于存储应用程序的地址空间。
6、本实施例中,对第二地址空间的具体形态不做限制。例如,第二地址空间中可以存储有应用程序,也可以没有存储应用程序。
7、本实施例中,ecu可以基于第一地址空间中的第一引导加载程序接收升级软件包,该升级软件包中除了包括第一引导加载程序对应的升级版本的引导加载程序(本技术中也称为第二引导加载程序),还包括第一应用程序。
8、具体地,本实施例中,ecu在基于第一地址空间中的第一引导加载程序接收升级软件包后,会基于第一引导加载程序执行对第二地址空间的擦除操作,以及基于第一引导加载程序在第二地址空间中写入第一应用程序;然后ecu执行第一重新启动,以启动第一应用程序。
9、具体地,本实施例中,当该第一应用程序启动后,可以基于第一应用程序执行对第一地址空间的擦除操作以及在第一地址空间中写入第二引导加载程序,以实现将第一引导加载程序升级为第二引导加载程序。
10、可以看出,本实施例提供的引导加载程序的升级方法中,ecu在将第一引导加载程序升级为第二引导加载程序时,不需要为第二引导加载程序预先划分额外的存储空间,因此,对于一些存储空间较小的ecu,也能够完成引导加载程序的升级。
11、结合第一方面,在一种可能的实现方式中,ecu中包括第一引导区;其中,基于第一应用程序执行对第一地址空间的擦除操作以及在第一地址空间中写入第二引导加载程序,包括:基于第一引导区的引导地址执行第一引导加载程序,第一引导区的引导地址为第一引导加载程序的入口地址;基于第一引导加载程序启动第一应用程序以基于第一应用程序执行对第一地址空间的擦除操作以及在第一地址空间中写入第二引导加载程序。
12、本实施例中,由于第一引导区中存储的引导地址为第一引导加载程序的入口地址,因此,当ecu执行重新启动之后,该ecu便会从第一引导加载程序的入口地址开始执行,即开始执行第一引导加载程序,而在执行第一引导加载程序的过程中,会基于第一引导加载程序的引导启动第一应用程序,以实现基于第一应用程序对第一地址空间的擦除操作以及在第一地址空间中写入所述第二引导加载程序。
13、结合第一方面,在一种可能的实现方式中,ecu中包括第二引导区;在基于第一应用程序执行对第一地址空间的擦除操作之前,所述方法还包括:基于第一应用程序将第二引导区的引导地址配置为第一应用程序的入口地址并执行对第一引导区的擦除操作。
14、本实施例中,在基于第一应用程序执行对第一地址空间的擦除操作之前,ecu会先基于第一应用程序将第二引导区的引导地址配置为第一应用程序的入口地址,并执行对第一引导区的擦除操作(即擦除了第一引导区中存储的第一引导加载程序的入口地址)。这样,当ecu基于第一应用程序执行对第一地址空间的擦除操作或者在第一地址空间中写入第二引导加载程序时,若在该过程中出现通信中断/异常掉电,因为第一引导区中的内容被擦除但第二引导区中的引导地址为第一应用程序的入口地址(可以认为第二引导区有效),所以在近端恢复通信后,该ecu便会从第一应用程序的入口地址开始执行,即执行第一应用程序,以基于第一应用程序执行对第一地址空间的擦除操作或者在第一地址空间中写入第二引导加载程序,从而防止了基于第一应用程序执行对第一地址空间的擦除操作或者在第一地址空间中写入第二引导加载程序的过程中因出现通信中断/异常掉电导致的变砖现象。
15、结合第一方面,在一种可能的实现方式中,在第一地址空间中写入第二引导加载程序之后,所述方法还包括:基于第一应用程序将第一引导区的引导地址配置为第二引导加载程序的入口地址。
16、本实施例中,当基于第一应用程序在第一地址空间中写入第二引导加载程序之后,ecu会基于第一应用程序将第一引导区的引导地址配置为第二引导加载程序的入口地址。这样,当ecu在基于第二引导加载程序执行对第二地址空间的擦除操作或者在第二地址空间中写入第二应用程序时,若在该过程中出现通信中断/异常掉电,因为第一引导区中的内容为第二引导加载程序的入口地址的入口地址),所以在近端恢复通信后,该ecu便会从第二引导加载程序的入口地址开始执行,即继续执行第二引导加载程序,以基于第二引导加载程序执行对第二地址空间的擦除操作或者在第二地址空间中写入第二应用程序,从而防止了在基于第二引导加载程序执行对第二地址空间的擦除操作或者在第二地址空间中写入第二应用程序的过程中因出现通信中断/异常掉电导致的变砖现象。
17、结合第一方面,在一种可能的实现方式中,升级软件包中还包括第二应用程序,在基于第一应用程序将第一引导区的引导地址配置为第二引导加载程序的入口地址之后,所述方法还包括:执行第二重新启动操作;基于第一引导区的引导地址执行第二引导加载程序;基于第二引导加载程序执行对第二地址空间的擦除操作;在第二地址空间中写入第二应用程序。
18、应理解,ecu在基于第一应用程序将第一引导区的引导地址配置为第二引导加载程序的入口地址之后,当ecu执行重新启动(本技术中也称为第二重新启动)的过程中,由于第一引导区的引导地址已经被配置为了第二引导加载程序的入口地址(即可以认为第一引导区有效),因此ecu会从第二引导加载程序的入口地址开始执行,即开始执行第二引导加载程序。
19、具体地,本实施例中,当ecu执行第二引导加载程序时,可以基于该第二引导加载程序可以执行对第二地址空间的擦除操作以及在第二地址空间中写入第二应用程序,以实现将第二地址空间中的内容更新为第二应用程序。
20、在此说明的是,本实施例对第二应用程序的具体形态不做限制。
21、示例性地,在一种可能的实现方式中,第二应用程序为基于第一引导加载程序执行对第二地址空间的擦除操作之前第二地址空间中存储的应用程序。
22、示例性地,在另一种可能的实现方式中,第二应用程序与基于第一引导加载程序执行对第二地址空间的擦除操作之前第二地址空间中存储的应用程序不同。
23、第二方面,本技术提供一种引导加载程序的升级装置,所述装置包括:获取模块,用于基于电子控制单元ecu的第一地址空间中的第一引导加载程序接收升级软件包,升级软件包中包括第二引导加载程序和第一应用程序;处理模块,用于基于第一引导加载程序执行对第二地址空间的擦除操作、以及在第二地址空间中写入第一应用程序;在ecu执行第一重新启动操作之后,处理模块还用于,基于第一应用程序执行对第一地址空间的擦除操作、以及在第一地址空间中写入第二引导加载程序。
24、结合第二方面,在一种可能的实现方式中,处理模块还用于:基于ecu的第一引导区的引导地址执行第一引导加载程序,第一引导区的引导地址为第一引导加载程序的入口地址;基于第一引导加载程序启动第一应用程序以基于所述第一应用程序执行对第一地址空间的擦除操作以及在第一地址空间中写入第二引导加载程序。
25、结合第二方面,在一种可能的实现方式中,在基于第一应用程序执行对第一地址空间的擦除操作之前,所述处理模块还用于:基于第一应用程序将ecu的第二引导区的引导地址配置为第一应用程序的入口地址并执行对第一引导区的擦除操作。
26、结合第二方面,在一种可能的实现方式中,在第一地址空间中写入第二引导加载程序之后,所述处理模块还用于:基于第一应用程序将第一引导区的引导地址配置为第二引导加载程序的入口地址。
27、结合第二方面,在一种可能的实现方式中,升级软件包中还包括第二应用程序,在基于第一应用程序将第一引导区的引导地址配置为第二引导加载程序的入口地址且ecu执行第二重新启动操作之后,所述处理模块还用于:基于第一引导区的引导地址执行第二引导加载程序;基于第二引导加载程序执行对第二地址空间的擦除操作;在第二地址空间中写入所述第二应用程序。
28、结合第二方面,在一种可能的实现方式中,第二应用程序为基于第一引导加载程序执行对第二地址空间的擦除操作之前第二地址空间中存储的应用程序。
29、结合第二方面,在一种可能的实现方式中,第二应用程序与基于第一引导加载程序执行对第二地址空间的擦除操作之前第二地址空间中存储的应用程序不同。
30、第三方面,本技术提供一种电子控制单元,包括用于执行第二方面或其中任意一种可能的实现方式中所述的装置。
31、第四方面,本技术提供一种车辆,包括第三方面所述的电子控制单元。
32、第五方面,本技术提供一种计算机可读介质,所述计算机可读介质存储用于计算机执行的程序代码,该程序代码包括用于执行如第一方面或其中任意一种可能的实现方式所述的方法的指令。
33、第六方面,本技术实施例提供一种芯片,包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以进行如第一方面所述的方法。
34、其中,第三方面至第八方面中任一种实现方式所带来的技术效果可参见上述第一方面以及其中任一种可能的实现方法所带来的技术效果,不予赘述。
本文地址:https://www.jishuxx.com/zhuanli/20240808/270489.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
上一篇
多输入装置支持的制作方法
下一篇
返回列表