一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

车辆控制器及其程序启动及刷写方法和存储介质与流程

2022-07-02 00:28:42 来源:中国专利 TAG:


1.本发明涉及车辆控制器技术领域,尤其涉及一种车辆控制器的程序启动及刷写方法、一种计算机可读存储介质和一种车辆控制器。


背景技术:

2.目前,汽车行业市场上常用的嵌入式软件架构是一个引导程序加一个应用程序组成,当车辆控制器上电后即执行引导程序,若没有收到刷写请求,即进入应用程序,以及若收到刷写应用程序的请求,则进入引导程序的刷写模式,对应用程序进行擦除然后写入新的代码,若刷写过程中出错(断电或校验不通过),则应用程序无法运行,等待再次刷写。这样的架构中通常不会对引导程序进行刷新,因为这样就存在引导程序自刷新,刷写新代码前会擦除原有存储器中的代码,一旦刷写过程中断电,再上电控制器中也不会运行任何应用程序,因为引导程序出错后不会跳转到应用程序,该控制器即失去功能,无法通过总线通信对控制器进行任何刷写。
3.另外,远程刷新也逐渐成为了很多车辆的必备功能,通过远程刷新,车厂可以在车辆不进4s店有线更新的情况下给车辆控制器升级程序达到修复错误或增加功能的目的。因为远程更新的环境条件比有线更新具有更多不确定性,需要在给原应用程序进行备份,以便刷写失败还能恢复到刷写前的状态。恢复到刷新前状态的功能被叫做回滚(rollback)。目前常见的回滚方式为云端备份或车内备份,然而,两种方法均从外部进行程序备份,如果刷写总是失败,则车辆无法恢复正常功能,使车主/驾驶员无法正常操纵车辆。


技术实现要素:

4.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种车辆控制器的程序启动及刷写方法,能够同时对引导程序和应用程序进行冗余备份,从而,提高车辆控制器的可靠性与稳定性。
5.本发明的第二个目的在于提出一种计算机可读存储介质。
6.本发明的第三个目的在于提出一种车辆控制器。
7.为达到上述目的,本发明第一方面实施例提出了一种车辆控制器的程序启动及刷写方法,其中,所述车辆控制器中的存储器设置有第一至第五存储区,第一存储区用于存储引导管理程序,第二存储区用于存储第一引导程序,第三存储区用于存储第二引导程序,第四存储区用于存储第一应用程序,第五存储区用于存储第二应用程序,所述方法包括:在所述车辆控制器上电后,运行所述引导管理程序以查找引导程序启动标识位;根据所述引导程序启动标识位所处的位置运行所述第一引导程序或所述第二引导程序,以查找应用程序启动标识位;根据所述应用程序启动标识位所处的位置运行所述第一应用程序或所述第二应用程序,直至所述车辆控制器下电。
8.根据本发明实施例的车辆控制器的程序启动及刷写方法,在车辆控制器上电后,运行引导管理程序以查找引导程序启动标识位,并根据引导程序启动标识位所处的位置运
行第一引导程序或第二引导程序,以查找应用程序启动标识位,以及根据应用程序启动标识位所处的位置运行第一应用程序或第二应用程序,直至车辆控制器下电。由此,同时对引导程序和应用程序进行冗余备份,从而,提高车辆控制器的可靠性与稳定性。
9.另外,根据本发明上述实施例的车辆控制器的程序启动及刷写方法,还可以具有如下的附加技术特征:
10.根据本发明的一个实施例,在运行所述第一应用程序或所述第二应用程序的过程中,如果出现看门狗复位,则进行自重启,以重新运行所述引导管理程序。
11.根据本发明的一个实施例,在运行所述第一引导程序的过程中,如果接收到第一刷写请求命令,则将所述第三存储区的数据擦除,并将接收到的运行代码写入所述第三存储区,以及在写入完成并通过校验后,将所述第二存储区的地址段前的启动标识位擦除,并将新的启动标识位写在所述第三存储区的地址段前。
12.根据本发明的一个实施例,在运行所述第二引导程序的过程中,如果接收到第一刷写请求命令,则将所述第二存储区的数据擦除,并将接收到的运行代码写入所述第二存储区,以及在写入完成并通过校验后,将所述第三存储区的地址段前的启动标识位擦除,并将新的启动标识位写在所述第二存储区的地址段前。
13.根据本发明的一个实施例,在运行所述第一引导程序或所述第二引导程序的过程中,如果接收到第二刷写请求命令,则根据所述应用程序启动标识位所处的位置确定运行所述第一应用程序时,将所述第五存储区的数据擦除,并将接收到的运行代码写入所述第五存储区,以及在写入完成并通过校验后,将所述第四存储区的地址段前的启动标识位擦除,并将新的启动标识位写在所述第五存储区的地址段前。
14.根据本发明的一个实施例,在运行所述第一引导程序或所述第二引导程序的过程中,如果接收到第二刷写请求命令,则根据所述应用程序启动标识位所处的位置确定运行所述第二应用程序时,将所述第四存储区的数据擦除,并将接收到的运行代码写入所述第四存储区,以及在写入完成并通过校验后,将所述第五存储区的地址段前的启动标识位擦除,并将新的启动标识位写在所述第四存储区的地址段前。
15.根据本发明的一个实施例,在对引导程序刷写的过程中,如果出现异常,则在所述车辆控制器重启后继续对引导程序进行刷写。
16.根据本发明的一个实施例,在对应用程序刷写的过程中,如果出现异常或者校验未通过,则停留在所述第一引导程序或所述第二引导程序的运行过程中,以便在接收到所述第二刷写请求命令时再次对应用程序进行刷写。
17.为达到上述目的,本发明第二方面实施例提出的计算机可读存储介质,其上存储有车辆控制器的程序启动及刷写程序,该车辆控制器的程序启动及刷写程序被处理器执行时实现如上所述的车辆控制器的程序启动及刷写方法。
18.根据本发明实施例的计算机可读存储介质,通过处理器执行其上存储有的车辆控制器的程序启动及刷写程序,能够同时对引导程序和应用程序进行冗余备份,从而,提高车辆控制器的可靠性与稳定性。
19.为达到上述目的,本发明第三方面实施例提出的车辆控制器,包括存储器、处理器及存储在存储器上并可在处理器上运行的车辆控制器的程序启动及刷写程序,所述处理器执行所述车辆控制器的程序启动及刷写程序时,实现如上所述的车辆控制器的程序启动及
刷写方法。
20.根据本发明实施例的车辆控制器,通过处理器执行存储器上存储有的车辆控制器的程序启动及刷写程序,能够同时对引导程序和应用程序进行冗余备份,从而,提高车辆控制器的可靠性与稳定性。
21.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
22.图1为根据本发明实施例的车辆控制器的程序启动及刷写方法的流程示意图;
23.图2为根据本发明一个具体实施例的无刷写请求命令的流程示意图;
24.图3为根据本发明一个具体实施例的带第一刷写请求命令的流程示意图;
25.图4为根据本发明一个具体实施例的带第二刷写请求命令的流程示意图。
具体实施方式
26.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
27.下面参考附图描述本发明实施例的车辆控制器的程序启动及刷写方法、计算机可读存储介质和车辆控制器。
28.具体地,在本发明的实施例中,车辆控制器中的存储器设置有第一至第五存储区,第一存储区用于存储引导管理程序,第二存储区用于存储第一引导程序,第三存储区用于存储第二引导程序,第四存储区用于存储第一应用程序,第五存储区用于存储第二应用程序。
29.图1为根据本发明实施例的车辆控制器的程序启动及刷写方法的流程示意图。
30.如图1所示,车辆控制器的程序启动及刷写方法包括:
31.s101,在车辆控制器上电后,运行引导管理程序以查找引导程序启动标识位。
32.可以理解的是,在车辆控制器上电后,默认运行引导管理程序以查找引导程序启动标识位,以便于车辆控制器根据引导程序启动标识位,选择运行第一引导程序或第二引导程序。
33.s102,根据引导程序启动标识位所处的位置运行第一引导程序或第二引导程序,以查找应用程序启动标识位。
34.也就是说,车辆控制器可通过运行第一引导程序或第二引导程序,以查找应用程序启动标识位,从而,便于车辆控制器根据应用程序启动标识位,选择运行第一应用程序或第二应用程序。
35.s103,根据应用程序启动标识位所处的位置运行第一应用程序或第二应用程序,直至车辆控制器下电。
36.需要说明的是,若在运行第一应用程序或第二应用程序的过程中,出现看门狗复位,则进行自重启,以重新运行引导管理程序。
37.举例而言,如图2所示,车辆控制器上电后,在未存在刷写请求命令下,执行如下步
骤:
38.s10,运行引导管理程序。
39.s11,查找引导程序启动标识位,如果引导程序启动标识位在第一引导程序起始地址前,则执行步骤s12;如果引导程序启动标识位在第二引导程序起始地址前,则执行步骤s13。
40.s12,运行第一引导程序,并执行步骤s14。
41.s13,运行第二引导程序。
42.s14,查找应用程序启动标识位,如果应用程序启动标识位在第一应用程序起始地址前,则执行步骤s15;如果应用程序启动标识位在第二应用程序起始地址前,则执行步骤s16。
43.s15,运行第一应用程序,并执行步骤s17。
44.s16,运行第二应用程序。
45.s17,判断看门狗是否复位,如果是,则执行步骤s18;如果否,则执行步骤s19。
46.s18,进行自重启,以重新执行步骤s1。
47.s19,车辆控制器下电,等待下次车辆控制器上电重启。
48.进一步地,在运行第一引导程序的过程中,如果接收到第一刷写请求命令,则将第三存储区的数据擦除,并将接收到的运行代码写入第三存储区,以及在写入完成并通过校验后,将第二存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第三存储区的地址段前。
49.可以理解的是,第一刷写请求命令为引导程序刷写请求命令。
50.具体地,当车辆控制器运行第一引导程序的过程中,接收到第一刷写请求命令时,可将第三存储区的数据擦除,并将接收到的运行代码写入第三存储区,从而,实现对第二引导程序的刷写,以及在写入完成并通过校验后,将第二存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第三存储区的地址段前,以便于车辆控制器下次运行新的第二引导程序。
51.进一步地,在运行第二引导程序的过程中,如果接收到第一刷写请求命令,则将第二存储区的数据擦除,并将接收到的运行代码写入第二存储区,以及在写入完成并通过校验后,将第三存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第二存储区的地址段前。
52.具体地,当车辆控制器运行第二引导程序的过程中,接收到第一刷写请求命令时,可将第二存储区的数据擦除,并将接收到的运行代码写入第二存储区,从而,实现对第一引导程序的刷写,以及在写入完成并通过校验后,将第三存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第二存储区的地址段前,以便于车辆控制器下次运行新的第一引导程序。
53.需要说明的是,在对引导程序刷写的过程中,如果出现异常,则在车辆控制器重启后继续对引导程序进行刷写。
54.举例而言,如图3所示,车辆控制器上电后,在存在第一刷写请求命令下,执行如下步骤:
55.s20,运行引导管理程序。
56.s21,查找引导程序启动标识位,如果引导程序启动标识位在第一引导程序起始地址前,则执行步骤s22;如果引导程序启动标识位在第二引导程序起始地址前,则执行步骤s23。
57.s22,运行第一引导程序,并判断是否接收到第一刷写请求命令,如果是,则执行步骤s24;如果否,则执行步骤s28。
58.s23,运行第二引导程序,并判断是否接收到第一刷写请求命令,如果是,则执行步骤s26;如果否,则执行步骤s28。
59.可以理解的是,在引导程序刷写过程中,可根据引导程序启动标识位确定需要被刷写的存储区的地址段。
60.s24,将第三存储区的数据擦除,并将接收到的运行代码写入第三存储区,并判断是否刷写成功,如果是,则执行步骤s25;如果否,则执行步骤s22。
61.s25,将第二存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第三存储区的地址段前,并执行步骤s29。
62.s26,将第二存储区的数据擦除,并将接收到的运行代码写入第二存储区,并判断是否刷写成功,如果是,则执行步骤s27;如果否,则执行步骤s23。
63.s27,将第三存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第二存储区的地址段前,并执行步骤s29。
64.s28,根据应用程序启动标识位,运行第一应用程序或第二应用程序。
65.s29,车辆控制器下电,并等待下次车辆控制器上电重启。
66.进一步地,在运行第一引导程序或第二引导程序的过程中,如果接收到第二刷写请求命令,则根据应用程序启动标识位所处的位置确定运行第一应用程序时,将第五存储区的数据擦除,并将接收到的运行代码写入第五存储区,以及在写入完成并通过校验后,将第四存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第五存储区的地址段前。
67.可以理解的是,第二刷写请求命令为应用程序刷写请求命令。
68.具体地,当车辆控制器运行第一引导程序或第二引导程序的过程中,接收到第二刷写请求命令时,可根据应用程序启动标识位所处的位置确定运行第一应用程序时,将第五存储区的数据擦除,并将接收到的运行代码写入第五存储区,从而,实现对第二应用程序的刷写,以及在写入完成并通过校验后,将第四存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第五存储区的地址段前,以便于车辆控制器下次运行新的第二应用程序。
69.进一步地,在运行第一引导程序或第二引导程序的过程中,如果接收到第二刷写请求命令,则根据应用程序启动标识位所处的位置确定运行第二应用程序时,将第四存储区的数据擦除,并将接收到的运行代码写入第四存储区,以及在写入完成并通过校验后,将第五存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第四存储区的地址段前。
70.具体地,当车辆控制器运行第一引导程序或第二引导程序的过程中,接收到第二刷写请求命令时,可根据应用程序启动标识位所处的位置确定运行第二应用程序时,将第四存储区的数据擦除,并将接收到的运行代码写入第四存储区,从而,实现对第一应用程序
的刷写,以及在写入完成并通过校验后,将第五存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第四存储区的地址段前,以便于车辆控制器下次运行新的第一应用程序。
71.需要说明的是,在对应用程序刷写的过程中,如果出现异常或者校验未通过,则停留在第一引导程序或第二引导程序的运行过程中,以便在接收到第二刷写请求命令时再次对应用程序进行刷写。
72.举例而言,如图4所示,车辆控制器上电后,在存在第二刷写请求命令下,执行如下步骤:
73.s30,运行引导管理程序。
74.s31,根据引导程序启动标识位,运行第一引导程序或第二引导程序。
75.s32,判断是否接收到第二刷写请求命令,如果是,则执行步骤s33;如果否,则执行步骤s38。
76.s33,查找应用程序启动标识位,如果应用程序启动标识位在第一应用程序起始地址前,则执行步骤s34;如果应用程序启动标识位在第二应用程序起始地址前,则执行步骤s35。
77.可以理解的是,在应用程序刷写过程中,可根据应用程序启动标识位确定需要被刷写的存储区的地址段。
78.s34,将第五存储区的数据擦除,并将接收到的运行代码写入第五存储区,并判断是否刷写成功,如果是,则执行步骤s36;如果否,则执行步骤s31。
79.s35,将第四存储区的数据擦除,并将接收到的运行代码写入第四存储区,并判断是否刷写成功,如果是,则执行步骤s37;如果否,则执行步骤s31。
80.s36,将第四存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第五存储区的地址段前,并执行步骤s39。
81.s37,将第五存储区的地址段前的启动标识位擦除,并将新的启动标识位写在第四存储区的地址段前,并执行步骤s39。
82.s38,根据应用程序启动标识位,运行第一应用程序或第二应用程序。
83.s39,车辆控制器下电,并等待下次车辆控制器上电重启。
84.综上,根据本发明实施例的车辆控制器的程序启动及刷写方法,在车辆控制器上电后,运行引导管理程序以查找引导程序启动标识位,并根据引导程序启动标识位所处的位置运行第一引导程序或第二引导程序,以查找应用程序启动标识位,以及根据应用程序启动标识位所处的位置运行第一应用程序或第二应用程序,直至车辆控制器下电。由此,同时对引导程序和应用程序进行冗余备份,从而,避免程序刷写过程中,受外界干扰导致刷写失败而影响车辆控制器正常运行,以提高车辆控制器的可靠性与稳定性。
85.进一步地,本发明实施例还提出了一种计算机可读存储介质,其上存储有车辆控制器的程序启动及刷写程序,该车辆控制器的程序启动及刷写程序被处理器执行时实现如前述本发明实施例的车辆控制器的程序启动及刷写方法。
86.需要说明的是,本发明实施例的计算机可读存储介质在执行其上存储有的车辆控制器的程序启动及刷写程序时,能够实现与前述本发明实施例的车辆控制器的程序启动及刷写方法一一对应的具体实施方式,在此不再赘述。
87.综上,根据本发明实施例的计算机可读存储介质,通过处理器执行其上存储有的车辆控制器的程序启动及刷写程序,能够同时对引导程序和应用程序进行冗余备份,从而,避免程序刷写过程中,受外界干扰导致刷写失败而影响车辆控制器正常运行,以提高车辆控制器的可靠性与稳定性。
88.进一步地,本发明实施例提出的车辆控制器,包括存储器、处理器及存储在存储器上并可在处理器上运行的车辆控制器的程序启动及刷写程序,处理器执行车辆控制器的程序启动及刷写程序时,实现如前述本发明实施例的车辆控制器的程序启动及刷写方法。
89.需要说明的是,本发明实施例的车辆控制器在执行其上存储有的车辆控制器的程序启动及刷写程序时,能够实现与前述本发明实施例的车辆控制器的程序启动及刷写方法一一对应的具体实施方式,在此不再赘述。
90.综上,根据本发明实施例的车辆控制器,通过处理器执行存储器上存储有的车辆控制器的程序启动及刷写程序,能够同时对引导程序和应用程序进行冗余备份,从而,避免程序刷写过程中,受外界干扰导致刷写失败而影响车辆控制器正常运行,以提高车辆控制器的可靠性与稳定性。
91.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
92.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
93.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
94.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
95.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
96.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
97.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
98.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献