boot程序的刷新方法及相关设备与流程

allin2022-07-12  191



1.本发明涉及车辆程序控制领域,尤其涉及一种boot程序的刷新方法及相关设备。


背景技术:

2.汽车软件中的boot程序是为了刷写汽车app应用程序的底层程序,在汽车研发过程中,通常只需要对ecu刷写app应用程序,但在测试过程中可能会出现app应用程序死循环、无法运行等故障,业内一般称之为“刷挂”,这时就需要对底层boot程序进行刷写,从而救活ecu,再继续执行刷写测试工作,另外,在软件的升级过程中,boot程序随着产品的开发也会同步开发升级,有时也需要进行自我更新刷写。现有的boot程序刷写方案存在结构复杂、底层无法直接刷写、空间利用率不高的问题。


技术实现要素:

3.鉴于上述问题,本发明提供一种boot程序的刷新方法及相关设备,主要目的在于缺少一种更好的boot程序的刷新方法的问题。
4.为解决上述至少一种技术问题,第一方面,本发明提供了一种boot程序的刷新方法,该方法包括:
5.获取boot程序的刷新请求;
6.在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;
7.将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。
8.可选的,上述将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新,包括:
9.将reboot程序存入上述第一非易失性内存区域;
10.擦除上述boot程序关联的第二非易失性内存区域;
11.基于上述reboot程序将new boot程序写入上述第二非易失性内存区域;
12.运行上述new boot程序。
13.可选的,上述方法还包括:
14.在将new boot程序写入上述第二非易失性内存区域完成的情况下,将第一非易失性内存区域的上述reboot程序擦除。
15.可选的,上述方法还包括:
16.设置至少两个启动地址。
17.可选的,上述方法还包括:
18.在接收到boot程序的刷新请求的情况下,在至少两个上述启动地址中选取至少一个有效启动地址作为当前启动地址;
19.在擦除上述当前启动地址的内存区域后开始其他内存区域的擦除操作;
20.在上述其他内存区域完成写入后开始上述当前启动地址的内存区域写入操作。
21.可选的,上述方法还包括:
22.在车辆ecu上电的情况下,检测上一次boot程序的刷新操作是否完成;
23.在上一次boot程序的刷新操作是否完成的情况下,选取至少一个有效启动地址作为当前启动地址。
24.可选的,上述方法还包括:
25.获取当前每个应用程序的非易失性内存区域第一占用量;
26.基于上述第一占用量和上述reboot程序的第二占用量选取目标应用程序,上述目标应用程序的占用量大于上述第二占用量,且相差小于预设差值。
27.第二方面,本发明实施例还提供了一种boot程序的刷新装置,包括:
28.获取单元,用于获取boot程序的刷新请求;
29.擦除单元,用于在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;
30.刷新单元,用于将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。
31.为了实现上述目的,根据本发明的第三方面,提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序被处理器执行时实现上述的boot程序的刷新方法。
32.为了实现上述目的,根据本发明的第四方面,提供了一种电子设备,包括至少一个处理器、以及与上述处理器连接的至少一个存储器;其中,上述处理器用于调用上述存储器中的程序指令,执行上述的boot程序的刷新方法。
33.借由上述技术方案,本发明提供的boot程序的刷新方法及相关设备,对于缺少一种更好的boot程序的刷新方法的问题,本发明通过获取boot程序的刷新请求;在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。在上述方案中,boot程序的刷新请求是利用已有app的flash存储空间来执行本方案的,reboot程序的存放与boot程序的刷新均基于本空间,不再需要再开辟新的空间,故借助app程序的flash空间提高了空间利用率。
34.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
35.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
36.图1示出了本发明实施例提供的一种boot程序的刷新方法的流程示意图;
37.图2示出了本发明实施例提供的一种boot程序的刷新装置的组成示意框图;
38.图3示出了本发明实施例提供的一种boot程序的刷新电子设备的组成示意框图。
具体实施方式
39.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
40.为了缺少一种更好的boot程序的刷新方法的问题,本发明实施例提供了一种boot程序的刷新方法,如图1所示,该方法包括:
41.s101、获取boot程序的刷新请求;
42.示例性的,上述boot程序是指汽车软件boot程序,其主要作用是刷新app程序。整车厂只有对app程序刷新的规范,没有对boot自刷新的规范。因为规范是针对量产车的,售后只负责app程序的升级,不对boot升级,也不允许boot升级。所以,boot的自刷新只存在于项目开发阶段,且由供应商自行提供方案。当需要更新boot程序的时候,本方案获取boot程序的刷新请求。
43.s102、在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;
44.示例性的,在接收到boot程序的刷新请求后,自动擦除目标应用程序关联的第一非易失性内存区域,上述第一非易失性内存区域的特性是在关闭计算机或者突然性、意外性关闭计算机的时候里面所保存的数据是不易丢失的,上述目标应用程序关联的第一非易失性内存区域可以是app的flash区域。当接收到boot程序的刷新请求的情况下,将目标应用程序所关联的第一非易失性内存区域进行擦除,所擦除的东西可能是外围不重要的临时文件,也可能是与boot程序相关的核心文件。此步骤的擦除工作为后续更新写入提供了充足空间。
45.s103、将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。
46.示例性的,将对上述目标应用程序关联的第一非易失性内存区域擦除完毕后,将新的reboot程序存入上述第一非易失性内存区域,从而完成boot程序的刷新。
47.借由上述技术方案,本发明提供的boot程序的刷新方法,对于缺少一种更好的boot程序的刷新方法的问题,本发明通过获取boot程序的刷新请求;在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。在上述方案中,boot程序的刷新请求是利用已有app的flash存储空间来执行本方案的,reboot程序的存放与boot程序的刷新均基于本空间,不再需要再开辟新的空间,故借助app程序的flash空间提高了空间利用率;基于先擦除第一非易失性内存区域,后向第一非易失性内存区域写入reboot程序的顺序,由于二者的非同时性,即使在中途掉电,程序也不会无法自救,从而优化了车辆boot软件控制方法。
48.在一种实施例中,上述将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新,包括:
49.将reboot程序存入上述第一非易失性内存区域;
50.擦除上述boot程序关联的第二非易失性内存区域;
51.基于上述reboot程序将new boot程序写入上述第二非易失性内存区域;
52.运行上述new boot程序。
53.示例性的,当需要对boot进行更新或重新刷写时,将上述reboot程序存入上述第一非易失性内存区域后,擦除上述boot程序关联的第二非易失性内存区域,所擦除的内容可以是第二非易失性内存区域中的外围不重要的临时文件,也可能是与boot程序相关的核心文件,上述第二非易失性内存区域可以是boot存储区,擦除完成后,基于上述reboot程序将new boot程序写入上述第二非易失性内存区域;然后上电复位,运行上述new boot程序,程序从新写入的new boot运行。从而实现boot的刷写和更新,从而减少了刷写过程。
54.在一种实施例中,上述方法还包括:
55.在将new boot程序写入上述第二非易失性内存区域完成的情况下,将第一非易失性内存区域的上述reboot程序擦除。
56.示例性的,将new boot程序写入上述第二非易失性内存区域即boot存储区后,运行new boot程序,将第一非易失性内存区域即app的flash区域的上述reboot程序擦除,为写入app应用程序做好准备。从而通过借助app程序的flash空间解决了刷写boot程序过程中如何存放reboot和new boot的问题,提高了本方案实施的空间利用率。
57.在一种实施例中,上述方法还包括:
58.设置至少两个启动地址。
59.示例性的,本方案的实现至少应设置两个启动地址,两个地址所能执行的作用及所存储的数据等均相同。通过设定多个启动地址,从而为本方案的解决提供了备用地址,进而避免了当一条地址出现事故,整个程序崩塌的情况出现。
60.在一种实施例中,上述方法还包括:
61.在接收到boot程序的刷新请求的情况下,在至少两个上述启动地址中选取至少一个有效启动地址作为当前启动地址;
62.在擦除上述当前启动地址的内存区域后开始其他内存区域的擦除操作;
63.在上述其他内存区域完成写入后开始上述当前启动地址的内存区域写入操作。
64.示例性的,在接收到boot程序的刷新请求的情况下,设定其中一个启动地址的优先级较大,即为有效启动地址作为当前启动地址,另一个或多个为备用地址,boot程序的刷新程序正常实施时,通过优先级最高的地址运行,在擦除上述当前启动地址的内存区域后开始其他内存区域的擦除操作,在上述其他内存区域完成写入后开始上述当前启动地址的内存区域写入操作,上述操作先将高优先级启动地址的有效性标志放到ram里,当把其它内容都下载到相应区域后,再从ram里把高优先级启动地址的有效性标志写入,实现了对高优先级启动地址的先擦后写的操作。启动区域擦除成功后,先刷写除高优先级启动地址有效标志区域以外的其它区域,待这些区域刷写任务完成后,最后再刷写高优先级启动地址的有效性标志。通过这种方式,即使在擦除过程中掉电和重新上电,刷写程序依旧可以从没有做改动的低优先级启动地址处开始运行。从而完成了boot程序的擦除和写入工作,进而完成了boot程序的刷新。
65.在一种实施例中,上述方法还包括:
66.在车辆ecu上电的情况下,检测上一次boot程序的刷新操作是否完成;
67.在上一次boot程序的刷新操作是否完成的情况下,选取至少一个有效启动地址作为当前启动地址。
68.示例性的,当ecu上时,检测上一次boot程序的刷新操作是否完成,若未完成,则证明boot程序的刷新期间可能发生掉电等情况,重新上电后,因上述boot程序的刷新在刷新过程中可能执行到了擦除步骤,甚至已经擦除掉了核心内容,此时优先级最高的地址不能再继续使用,此时基于备用启动地址执行本方案的boot程序的刷新程序。当第一地址发生事故,基于备用地址执行本方案,进而解决了在刷写new boot时掉电,导致其无法自救的问题。
69.在一种实施例中,上述方法还包括:
70.获取当前每个应用程序的非易失性内存区域第一占用量;
71.基于上述第一占用量和上述reboot程序的第二占用量选取目标应用程序,上述目标应用程序的占用量大于上述第二占用量,且相差小于预设差值。
72.示例性的,获取当前每个应用程序的非易失性内存区域第一占用量以及上述reboot程序的第二占用量,因上述reboot程序需要写入到上述非易失性内存区域,故应选取非易失性内存区域空间足够容纳reboot程序的应用程序,并将其确定为目标应用程序,且上述目标应用程序的占用量与上述第二占用量的占用量差值需要小于预设差值,从而确保了目标应用程序的非易失性内存区域可以容纳上述reboot程序,选择比reboot程序占用量大且没有大太多的应用程序进行擦除,并将其应用于暂存上述reboot程序,节省了内存占用量,提高了空间利用率,从而保证了本方案的最优运行。
73.进一步的,作为对上述图1所示方法的实现,本发明实施例还提供了一种boot程序的刷新装置,用于对上述图1所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图2所示,该装置包括:获取单元21、擦除单元22、刷新单元23,其中
74.获取单元21,用于获取boot程序的刷新请求;
75.擦除单元22,用于在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;
76.刷新单元23,用于将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。
77.示例性的,上述将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新,包括:
78.将reboot程序存入上述第一非易失性内存区域;
79.擦除上述boot程序关联的第二非易失性内存区域;
80.基于上述reboot程序将new boot程序写入上述第二非易失性内存区域;
81.运行上述new boot程序。
82.示例性的,上述方法还包括:
83.在将new boot程序写入上述第二非易失性内存区域完成的情况下,将第一非易失性内存区域的上述reboot程序擦除。
84.示例性的,上述方法还包括:
85.设置至少两个启动地址。
86.示例性的,上述方法还包括:
87.在接收到boot程序的刷新请求的情况下,在至少两个上述启动地址中选取至少一个有效启动地址作为当前启动地址;
88.在擦除上述当前启动地址的内存区域后开始其他内存区域的擦除操作;
89.在上述其他内存区域完成写入后开始上述当前启动地址的内存区域写入操作。
90.示例性的,上述方法还包括:
91.在车辆ecu上电的情况下,检测上一次boot程序的刷新操作是否完成;
92.在上一次boot程序的刷新操作是否完成的情况下,选取至少一个有效启动地址作为当前启动地址。
93.示例性的,上述方法还包括:
94.获取当前每个应用程序的非易失性内存区域第一占用量;
95.基于上述第一占用量和上述reboot程序的第二占用量选取目标应用程序,上述目标应用程序的占用量大于上述第二占用量,且相差小于预设差值。
96.借由上述技术方案,本发明提供的boot程序的刷新装置,对于缺少一种更好的boot程序的刷新方法的问题,本发明通过获取boot程序的刷新请求;在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新。在上述方案中,boot程序的刷新请求是利用已有app的flash存储空间来执行本方案的,reboot程序的存放与boot程序的刷新均基于本空间,不再需要再开辟新的空间,故借助app程序的flash空间提高了空间利用率;基于先擦除第一非易失性内存区域,后向第一非易失性内存区域写入reboot程序的顺序,由于二者的非同时性,即使在中途掉电,程序也不会无法自救,从而优化了车辆boot软件控制方法。
97.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现一种boot程序的刷新方法,能够缺少一种更好的boot程序的刷新方法的问题。
98.本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,该程序被处理器执行时实现上述boot程序的刷新方法。
99.本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述boot程序的刷新方法。
100.本发明实施例提供了一种电子设备,上述电子设备包括至少一个处理器、以及与上述处理器连接的至少一个存储器;其中,上述处理器用于调用上述存储器中的程序指令,执行如上述的boot程序的刷新方法
101.本发明实施例提供了一种电子设备30,如图3所示,电子设备包括至少一个处理器301、以及与处理器连接的至少一个存储器302、总线303;其中,处理器301、存储器302通过总线303完成相互间的通信;处理器301用于调用存储器中的程序指令,以执行上述的boot程序的刷新方法。
102.本文中的智能电子设备可以是pc、pad、手机等。
103.本技术还提供了一种计算机程序产品,当在流程管理电子设备上执行时,适于执行初始化有如下方法步骤的程序:获取boot程序的刷新请求;在接收到boot程序的刷新请求的情况下,擦除目标应用程序关联的第一非易失性内存区域;将reboot程序存入上述第
一非易失性内存区域,以进行boot程序的刷新。
104.进一步的,上述将reboot程序存入上述第一非易失性内存区域,以进行boot程序的刷新,包括:
105.将reboot程序存入上述第一非易失性内存区域;
106.擦除上述boot程序关联的第二非易失性内存区域;
107.基于上述reboot程序将new boot程序写入上述第二非易失性内存区域;
108.运行上述new boot程序。
109.进一步的,上述方法还包括:
110.在将new boot程序写入上述第二非易失性内存区域完成的情况下,将第一非易失性内存区域的上述reboot程序擦除。
111.进一步的,上述方法还包括:
112.设置至少两个启动地址。
113.进一步的,上述方法还包括:
114.在接收到boot程序的刷新请求的情况下,在至少两个上述启动地址中选取至少一个有效启动地址作为当前启动地址;
115.在擦除上述当前启动地址的内存区域后开始其他内存区域的擦除操作;
116.在上述其他内存区域完成写入后开始上述当前启动地址的内存区域写入操作。
117.进一步的,上述方法还包括:
118.在车辆ecu上电的情况下,检测上一次boot程序的刷新操作是否完成;
119.在上一次boot程序的刷新操作是否完成的情况下,选取至少一个有效启动地址作为当前启动地址。
120.进一步的,上述方法还包括:
121.获取当前每个应用程序的非易失性内存区域第一占用量;
122.基于上述第一占用量和上述reboot程序的第二占用量选取目标应用程序,上述目标应用程序的占用量大于上述第二占用量,且相差小于预设差值。
123.本技术是参照根据本技术实施例的方法、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程流程管理电子设备的处理器以产生一个机器,使得通过计算机或其他可编程流程管理电子设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
124.在一个典型的配置中,电子设备包括一个或多个处理器(cpu)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
125.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
126.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的计算机可读存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储电子设备或任何其他非传输介质,可用于存储可以被计算电子设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
127.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者电子设备中还存在另外的相同要素。
128.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
129.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
转载请注明原文地址: https://www.8miu.com/read-448.html

最新回复(0)