本公开涉及车辆控制,尤其涉及一种应用程序刷写方法、装置、设备及存储介质。
背景技术:
1、随着汽车电子技术的发展,汽车电子控制单元(electronic control unit,ecu)程序的升级需求变得越来越重要,对于刷写过程的稳定性和时效性需求也逐渐变得严苛,通过在单片机中设置引导加载程序(bootloader),能够实现需要软件刷写系统更新还是正常启动的功能。单片机软件由于更新bug或更新功能的需求,经常有刷新软件的需求,bootloader满足了软件的刷新需求。
2、目前,将bootloader划分为第一子引导加载程序(bta)和第二子引导加载程序(btm),并保存在下线检测程序中。其中,btm用来刷写bta,bta用来刷写ecu中的应用程序(application,app)。当面临多个用户时,由于每个客户的刷写流程不同,因此,需要按照用户不同的刷写流程开发多种bta,ecu管理多个控制器件号,并给每个用户分发对应的控制器件号,即每个用户对应一个控制器件号,每个控制器件号对应一个bta。在控制器下线时,ecu只能将当前的bta刷写为ecu分发的控制器件号对应的bta,并利用控制器件号对应的bta刷写ecu中的app,若ecu为当前用户分发的控制器件号错误,可能将bta刷写为其他用户的bta,并不是当前用户的bta,从而造成因利用其他用户的bta刷写ecu中的app造成一定的安全风险,因此,用户并不能按照自己的意愿选择bta来刷写ecu中的app,影响用户体验感。
技术实现思路
1、本公开提供一种应用程序刷写方法、装置、设备及存储介质,能够使用户灵活选择适应的引导加载程序来刷写控制器中的应用程序,提高用户体验感。
2、根据本公开实施例的第一方面,提供一种应用程序刷写方法,该方法包括:
3、响应于用户触发的扩展会话请求指令,使待刷写的目标控制器进入扩展会话模式;
4、响应于用户触发的第一刷写指令,基于所述第一刷写指令中的用户标识,确定所述用户标识对应的新版本的第一引导加载程序;
5、将所述目标控制器的下线检测程序中所述用户标识对应的旧版本的第二引导加载程序,刷写为所述第一引导加载程序,其中,所述下线检测程序包括多个不同用户标识对应的第二引导加载程序;
6、基于所述下线检测程序中所述第一引导加载程序,刷写所述目标控制器中的应用程序。
7、在本公开实施例中,响应于用户触发的扩展会话请求指令,使待刷写的目标控制器进入扩展会话模式,响应于用户触发的第一刷写指令,基于第一刷写指令中的用户标识,确定用户标识对应的新版本的第一引导加载程序,由于下线检测程序包括多个不同用户标识对应的第二引导加载程序,因此,将目标控制器的下线检测程序中用户标识对应的旧版本的第二引导加载程序,刷写为第一引导加载程序,基于下线检测程序中第一引导加载程序,刷写目标控制器中的应用程序,从而减少目标控制器对控制器件号的分发操作,降低了因控制器件号分发错误,造成的利用其他用户的bta刷写ecu中的app而带来的安全风险,并且能够使用户灵活选择适应的引导加载程序来刷写控制器中的应用程序,提高用户体验感。
8、在一种可能的实现方式中,所述响应于用户触发的扩展会话请求指令之前,还包括:
9、在检测到所述目标控制器下线后,利用所述下线检测程序确定所述目标控制器的性能正常。
10、在本公开实施例中,在检测到目标控制器下线后,通过利用下线检测程序对目标控制器进行检测,以保证目标控制器的性能正常。
11、在一种可能的实现方式中,所述方法还包括:
12、针对任意一个用户,基于所述任意一个用户的需求信息,生成所述任意一个用户的用户标识对应的第二引导加载程序;
13、将生成的所述第二引导加载程序保存到所述下线检测程序中。
14、在本公开实施例中,基于任意一个用户的需求信息,生成任意一个用户的用户标识对应的第二引导加载程序,并保存到下线检测程序中,从而使下线检测程序包括多个不同用户标识对应的第二引导加载程序。
15、在一种可能的实现方式中,所述将所述目标控制器的下线检测程序中所述用户标识对应的旧版本的第二引导加载程序,刷写为所述第一引导加载程序,包括:
16、基于所述第二引导加载程序的程序标识,确定所述第二引导加载程序在所述目标控制器的闪存flash存储区域中的目标位置区域;
17、使用所述目标控制器中闪存驱动flashdriver的擦除例程,将所述目标位置区域中的所述第二引导加载程序擦除;
18、使用所述目标控制器中flashdriver的写例程,将所述第一引导加载程序刷写到所述目标位置区域中。
19、在本公开实施例中,基于第二引导加载程序的程序标识,确定第二引导加载程序在目标控制器的flash存储区域中的目标位置区域,使用目标控制器中的flashdriver,将目标位置区域中的第二引导加载程序擦除,并将第一引导加载程序刷写到目标位置区域中,提高第二引导加载程序的刷写准确性和效率。
20、在一种可能的实现方式中,所述响应于用户触发的第一刷写指令之后,还包括:
21、响应于用户触发的刷写状态请求指令,确定所述第二引导加载程序的刷写状态;
22、基于所述第二引导加载程序的刷写状态,得到第一响应报文,并向所述用户发送所述第一响应报文。
23、在本公开实施例中,响应于用户触发的刷写状态请求指令,确定第二引导加载程序的刷写状态,并向用户发送包括第二引导程序的刷写状态的第一响应报文,以使用户准确地确定第二引导加载程序的刷写情况。
24、在一种可能的实现方式中,在所述向所述用户发送所述第一响应报文之后,还包括:
25、响应刷写结束指令,结束刷写流程,并向所述用户发送第二响应报文,其中,所述第二响应报文包括用于表征引导加载程序刷写流程已结束的信息。
26、在本公开实施例中,响应刷写结束指令,结束刷写流程,并向用户发送包括用于表征引导加载程序刷写流程已结束的信息的第二响应报文,以使用户确定引导加载程序刷写流程已结束。
27、在一种可能的实现方式中,所述基于所述下线检测程序中所述第一引导加载程序,刷写所述目标控制器中的应用程序,包括:
28、基于所述第一引导加载程序,从所述目标控制器的flash存储区域中的第一应用存储区域,获取新版本的应用程序;
29、将存储在所述目标控制器的flash存储区域中的第二应用存储区域的旧版本的应用程序,刷写为所述新版本的应用程序。
30、在本公开实施例中,基于下线检测程序中的第一引导加载程序,刷写目标控制器中的应用程序,提高应用程序的刷写准确性和效率。
31、根据本公开实施例的第二方面,提供一种应用程序刷写装置,该装置包括:
32、响应模块,用于响应于用户触发的扩展会话请求指令,使待刷写的目标控制器进入扩展会话模式;
33、确定模块,用于响应于用户触发的第一刷写指令,基于所述第一刷写指令中的用户标识,确定所述用户标识对应的新版本的第一引导加载程序;
34、第一刷写模块,用于将所述目标控制器的下线检测程序中所述用户标识对应的旧版本的第二引导加载程序,刷写为所述第一引导加载程序,其中,所述下线检测程序包括多个不同用户标识对应的第二引导加载程序;
35、第二刷写模块,用于基于所述下线检测程序中所述第一引导加载程序,刷写所述目标控制器中的应用程序。
36、在一种可能的实现方式中,所述响应于用户触发的扩展会话请求指令之前,所述响应模块还用于:
37、在检测到所述目标控制器下线后,利用所述下线检测程序确定所述目标控制器的性能正常。
38、在一种可能的实现方式中,所述装置还包括:
39、生成模块,用于针对任意一个用户,基于所述任意一个用户的需求信息,生成所述任意一个用户的用户标识对应的第二引导加载程序;
40、保存模块,用于将生成的所述第二引导加载程序保存到所述下线检测程序中。
41、在一种可能的实现方式中,所述第一刷写模块用于:
42、基于所述第二引导加载程序的程序标识,确定所述第二引导加载程序在所述目标控制器的闪存flash存储区域中的目标位置区域;
43、使用所述目标控制器中闪存驱动flashdriver的擦除例程,将所述目标位置区域中的所述第二引导加载程序擦除;
44、使用所述目标控制器中flashdriver的写例程,将所述第一引导加载程序刷写到所述目标位置区域中。
45、在一种可能的实现方式中,所述响应于用户触发的第一刷写指令之后,所述确定模块还用于:
46、响应于用户触发的刷写状态请求指令,确定所述第二引导加载程序的刷写状态;
47、基于所述第二引导加载程序的刷写状态,得到第一响应报文,并向所述用户发送所述第一响应报文。
48、在一种可能的实现方式中,在所述向所述用户发送所述第一响应报文之后,所述确定模块还用于:
49、响应刷写结束指令,结束刷写流程,并向所述用户发送第二响应报文,其中,所述第二响应报文包括用于表征引导加载程序刷写流程已结束的信息。
50、在一种可能的实现方式中,所述第二刷写模块用于:
51、基于所述第一引导加载程序,从所述目标控制器的flash存储区域中的第一应用存储区域,获取新版本的应用程序;
52、将存储在所述目标控制器的flash存储区域中的第二应用存储区域的旧版本的应用程序,刷写为所述新版本的应用程序。
53、根据本公开实施例的第三方面,提供一种电子设备,包括:
54、存储器,用于存储程序指令;
55、处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法包括的步骤。
56、根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
57、根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。