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

一种汽车控制单元引导启动程序的更新方法、装置及汽车与流程

2022-11-23 16:40:56 来源:中国专利 TAG:


1.本发明涉及汽车技术领域,特别是指一种汽车控制单元引导启动程序的更新方法、装置及汽车。


背景技术:

2.bootloader(引导启动程序)是在ecu(electronic control unit,电子控制单元)生产时通过jtag(joint test action group,联合测试工作组)注入到mcu(micro control unit,微控制单元)中的,一般在车辆生命周期内都不需要更新,如果bootloader一旦存在问题,影响程序运行,或者刷写不稳定,则需要更新;
3.但是试制或者量产阶段的车载ecu已经密封加盖,无法拆开ecu控制器通过jtag接口连接调试器进行软件刷写,或者通过更新bootloader,只能通过车辆预留的诊断口进行刷写;
4.通过整车网络的诊断口连接ecu,通过can(controller area network,控制器局域网)/canfd(controller area network flexible data-rate,控制器局域网灵活数据速率)/以太网等进行bootloader反刷;
5.目前,使用最多的更新bootloader方式为:通过原始boot(引导启动程序)将reboot(引导启动程序刷写程序)程序更新进原本app的位置;通过reboot将new boot(新的引导启动程序)更新进原本boot的位置;通过new boot将app程序在刷回控制器,由此完成bootloader的更新。
6.但是此方法存在一个缺陷,当通过reboot更新new boot程序时,若刷写时控制器出现供电中断或者通信中断,则new boot更新失败,对于一般的控制器,上电时,程序默认从boot位置开始运行,然后在由boot引导跳入app或者reboot;此时boot位置已无完整程序,boot无法运行,则整个控制器无法运行,也无法跳到reboot中进行再次刷写boot;此种情况下,控制器彻底报废,无法在通过诊断口更新程序,而对于量产车辆,也无法大批量从车上将此控制器拆下、开壳,然后连接调试器通过jtag重新下载程序,且一旦开壳,则控制器密封性无法保证,无法再使用。


技术实现要素:

7.本发明提供一种汽车控制单元引导启动程序的更新方法、装置及汽车,可以解决reboot更新newboot中断后,电子控制单元ecu无法再次运行的问题。
8.为解决上述技术问题,本发明的技术方案如下:
9.一种汽车控制单元引导启动程序的更新方法,应用于电子控制单元ecu,所述方法包括:
10.获取汽车电子控制单元ecu的第一寄存器的第一预设地址和第二寄存器的第二预设地址;
11.将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地
址作为用户应用程序app的起始地址,进行引导启动程序boot的更新。
12.可选的,将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新,包括:
13.将所述第一预设地址作为ecu的引导启动程序boot起始地址,通过原始引导启动程序boot将引导启动程序的reboot程序更新进所述用户应用程序app的位置;
14.通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置;
15.将所述第二预设地址作为用户应用程序app的起始地址,通过所述新的引导启动程序newboot将所述app再刷回电子控制单元。
16.可选的,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置,包括:
17.下载所述新的引导启动程序newboot时,擦除所述第一寄存器的数据;
18.若所述新的引导启动程序newboot下载成功,则通过所述刷写reboot程序重新写入所述第一寄存器的数据;
19.若所述新的引导启动程序newboot下载失败,则所述第一寄存器无效。
20.可选的,所述汽车控制单元引导启动程序的更新方法,还包括:
21.在所述电子控制单元ecu再次上电运行时,若检测到所述第一寄存器无效,则以所述第二寄存器的第二预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
22.可选的,所述汽车控制单元引导启动程序的更新方法,还包括:
23.在所述电子控制单元ecu再次上电运行时,若检测到所述第二寄存器无效,则以第三寄存器的第三预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
24.可选的,所述汽车控制单元引导启动程序的更新方法,还包括:
25.在所述电子控制单元ecu再次上电运行时,若检测到所述第三寄存器无效,则以第四寄存器的第四预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
26.可选的,所述第一预设地址为第一寄存器的入口地址;
27.所述第二预设地址为第二寄存器的入口地址;
28.所述第三预设地址为第三寄存器的入口地址;
29.所述第四预设地址为第四寄存器的入口地址。
30.本发明还提供一种汽车控制单元引导启动程序的更新装置,应用于电子控制单元ecu,所述装置包括:
31.获取模块,用于获取汽车电子控制单元ecu的第一寄存器的第一预设地址和第二寄存器的第二预设地址;
32.处理模块,用于将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新,所述引导启动程序是电子控制单元ecu的引导启动程序。
33.本发明还提供一种汽车,包括:电子控制单元ecu,以及如上所述的汽车控制单元
引导启动程序的更新装置。
34.本发明还提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如上所述的方法的步骤。
35.本发明的上述方案至少包括以下有益效果:
36.本发明的上述方案,通过获取汽车电子控制单元ecu的第一寄存器的第一预设地址和第二寄存器的第二预设地址;将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新。上述方案能够保证出现电子控制单元供电中断和/或通信中断的情况下,依然能够实现引导启动程序的顺利更新。
附图说明
37.图1是本发明实施例提供的所述汽车控制单元引导启动程序的更新方法的流程示意图;
38.图2是本发明实施例的reboot更新newboot过程没有中断的过程示意图;
39.图3是本发明实施例的reboot更新newboot过程中断的过程示意图;
40.图4是本发明实施例的所述汽车控制单元引导启动程序的更新装置的模块框示意图。
具体实施方式
41.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
42.如图1所示,本发明的实施例提供一种汽车控制单元引导启动程序的更新方法,应用于电子控制单元ecu,所述方法包括:
43.步骤11,获取汽车电子控制单元ecu的第一寄存器的第一预设地址和第二寄存器的第二预设地址;
44.步骤12,将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新。
45.其中,所述第一预设地址为第一寄存器的stad地址,即用户代码的入口地址。
46.本发明的该实施例中,通过将所述第一预设地址作为引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新,所述引导启动程序是电子控制单元ecu的引导启动程序,这样即使在引导启动程序更新的过程中,芯片上电时,芯片自身固件首先检测第一寄存器(bmhd0),若数据校验有效,则按照第一寄存器(bmhd0)中存储的用户地址作为程序执行起始地址。若第一寄存器无效,则继续检测第二寄存器,依次类推。可以通过bmhd来控制ecu上电时程序运行的起始地址,保证出现电子控制单元供电中断和/或通信中断的情况下,依然能够实现引导启动程序的顺利更新。
47.本发明一可选的实施例中,所述步骤12,可以包括:
48.步骤121,将所述第一预设地址作为ecu的引导启动程序boot起始地址,通过原始引导启动程序boot将引导启动程序的reboot程序更新进所述用户应用程序app的位置;
49.步骤122,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置;
50.步骤123,将所述第二预设地址作为用户应用程序app的起始地址,通过所述新的引导启动程序newboot将所述app再刷回电子控制单元。
51.其中,所述reboot程序可以是用于更新引导启动程序boot的专用程序。
52.本实施例中,这样的更新方式能够在供电正常和通信正常的情况下完成引导启动程序的更新。
53.本发明又一可选的实施例中,所述步骤122,可以包括:
54.步骤122-1,下载所述新的引导启动程序newboot时,擦除所述第一寄存器的数据;
55.步骤122-2,若所述新的引导启动程序newboot下载成功,则通过所述reboot程序重新写入所述第一寄存器的数据;
56.步骤122-3,若所述新的引导启动程序newboot下载失败,则所述第一寄存器无效。
57.其中,所述第一寄存器的数据可以包括:第一预设地址、校验值等数据。
58.本实施例中,在通过所述reboot下载所述新的引导启动程序newboot时,首先擦除所述第一寄存器的数据,即擦除原始引导启动程序boot的数据,再通过所述reboot下载所述新的引导启动程序newboot,若所述newboot下载成功,则通过所述reboot程序写入所述原始引导启动程序boot有效标志,即重新写入所述第一寄存器的数据,若所述新的引导启动程序newboot下载失败,则所述第一寄存器无效;
59.因此,可以借用电子控制单元ecu的寄存器存储功能,使得通过引导启动程序的reboot程序更新新的引导启动程序newboot失败后,引导启动程序能够从引导启动程序的刷写reboot程序开始运行,进而完成引导启动程序的更新。
60.本发明又一可选的实施例中,所述汽车控制单元引导启动程序的更新方法,还可以包括:
61.步骤13,在所述电子控制单元ecu再次上电运行时,若检测到所述第一寄存器无效,则以所述第二寄存器的第二预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
62.进一步的,所述汽车控制单元引导启动程序的更新方法,还可以包括:
63.步骤14,在所述电子控制单元ecu再次上电运行时,若检测到所述第二寄存器无效,则以第三寄存器的第三预设地址作为所述电子控制单元ecu的起始运行地址,并通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
64.进一步的,所述汽车控制单元引导启动程序的更新方法,还可以包括:
65.步骤15,在所述电子控制单元ecu再次上电运行时,若检测到所述第三寄存器无效,则以第四寄存器的第四预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
66.本实施例中,在所述电子控制单元ecu再次上电运行时,首先检测第一寄存器,若检测到所述第一寄存器有效,则按照所述第一寄存器中存储的第一预设地址作为所述电子控制单元ecu的起始运行地址,若供电中断和/或通信中断,导致所述新的引导启动程序
newboot更新失败,就说明所述第一寄存器无效,则继续检测第二寄存器,依次类推,直到检测到有效寄存器,顺利完成所述引导启动程序newboot更新,这样在电子控制单元ecu供电中断和/或通信中断的情况下,依然能够实现引导启动程序的顺利更新。
67.其中,寄存器包括但不限于:第一寄存器、第二寄存器、第三寄存器和第四寄存器;
68.所述第一预设地址为第一寄存器的stad地址;所述第二预设地址为第二寄存器的stad地址;所述第三预设地址为第三寄存器的stad地址;所述第四预设地址为第四寄存器的stad地址;
69.需要说明的是,所述第一寄存器、第二寄存器、第三寄存器和第四寄存器可以是英飞凌tc2xx/tc3xx系列芯片中的,但并不限于是英飞凌tc2xx/tc3xx系列芯片,只要能够实现存储功能即可。
70.需要注意的是,可以通过寄存器来控制电子控制单元ecu上电时程序运行的起始地址。所述第一寄存器、第二寄存器、第三寄存器和第四寄存器在所述电子控制单元ecu出厂时,可以直接和引导启动程序一起通过调试器下载进所述电子控制单元ecu中;
71.其中,所述第一寄存器中的stad地址可以为原始引导启动程序boot起始地址,所述第二寄存器中的stad地址可以为用户应用程序app起始地址。
72.如图2所示,本发明一可选的具体实施例中,在供电正常和/或通信正常的情况下,所述汽车控制单元引导启动程序的更新过程,具体可以包括:
73.将所述第一预设地址作为ecu的引导启动程序boot起始地址,通过原始引导启动程序boot将引导启动程序的reboot程序更新进所述用户应用程序app的位置;
74.通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置;
75.将所述第二预设地址作为用户应用程序app的起始地址,通过所述新的引导启动程序newboot将所述app再刷回电子控制单元。
76.本实施例中,这样可以在供电正常和/或通信正常的情况下,完成所述汽车控制单元引导启动程序的更新。
77.如图3所示,本发明又一可选的实施例中,在供电中断和/或通信中断的情况下,所述汽车控制单元引导启动程序的更新过程,具体可以包括:
78.将所述第一预设地址作为ecu的引导启动程序boot起始地址,通过原始引导启动程序boot将引导启动程序的reboot程序更新进所述用户应用程序app的位置;
79.通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置;
80.若新的引导启动程序newboot更新失败,则电子控制单元ecu中的第一寄存器已被擦除,所述第一寄存器为无效状态;
81.在所述电子控制单元ecu再次上电运行时,以所述第二寄存器的第二预设地址作为所述电子控制单元ecu的起始运行地址,并通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置;
82.通过所述新的引导启动程序newboot将所述app再刷回电子控制单元。
83.本实施例中,这样能够保证电子控制单元中有程序可以运行,从而使得电子控制单元可以再次启动,进而可以通过所述reboot程序将新的引导启动程序newboot更新进所
述原始引导启动程序boot的位置,通过所述新的引导启动程序newboot将所述app再刷回电子控制单元,顺利完成在供电中断和/或通信中断的情况下,所述引导启动程序的更新。
84.本发明的上述实施例中,通过所述汽车控制单元引导启动程序的更新方法,能够保证出现电子控制单元供电中断和/或通信中断的情况下,依然能够实现引导启动程序的顺利更新,有效提升电子控制单元引导启动程序反刷的安全性,避免损坏电子控制单元。
85.如图4所示,本发明的实施例还提供一种汽车控制单元引导启动程序的更新装置40,应用于电子控制单元ecu,所述装置40包括:
86.获取模块41,用于获取汽车电子控制单元ecu的第一寄存器的第一预设地址和第二寄存器的第二预设地址;
87.处理模块42,用于将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新。
88.可选的,将所述第一预设地址作为ecu的引导启动程序boot起始地址,将所述第二预设地址作为用户应用程序app的起始地址,进行引导启动程序boot的更新,包括:
89.将所述第一预设地址作为ecu的引导启动程序boot起始地址,通过原始引导启动程序boot将引导启动程序的reboot程序更新进所述用户应用程序app的位置;
90.通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置;
91.将所述第二预设地址作为用户应用程序app的起始地址,通过所述新的引导启动程序newboot将所述app再刷回电子控制单元。
92.可选的,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置,包括:
93.下载所述新的引导启动程序newboot时,擦除所述第一寄存器的数据;
94.若所述新的引导启动程序newboot下载成功,则通过所述reboot程序重新写入所述第一寄存器的数据;
95.若所述新的引导启动程序newboot下载失败,则所述第一寄存器无效。
96.可选的,所述处理模块42,还可以用于:
97.在所述电子控制单元ecu再次上电运行时,若检测到所述第一寄存器无效,则以所述第二寄存器的第二预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
98.可选的,所述处理模块42,还可以用于:
99.在所述电子控制单元ecu再次上电运行时,若检测到所述第二寄存器无效,则以第三寄存器的第三预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
100.可选的,所述处理模块42,还可以用于:
101.在所述电子控制单元ecu再次上电运行时,若检测到所述第三寄存器无效,则以第四寄存器的第四预设地址作为所述电子控制单元ecu的起始运行地址,通过所述reboot程序将新的引导启动程序newboot更新进所述原始引导启动程序boot的位置。
102.可选的,所述第一预设地址为第一寄存器的入口地址;
103.所述第二预设地址为第二寄存器的入口地址;
104.所述第三预设地址为第三寄存器的入口地址;
105.所述第四预设地址为第四寄存器的入口地址。
106.需要说明的是,该应用于电子控制单元ecu侧的装置是与上述应用于电子控制单元ecu侧的方法对应的装置,上述应用于电子控制单元ecu侧的方法实施例中的所有实现方式均适用于该应用于电子控制单元ecu侧的装置的实施例中,也能达到相同的技术效果。
107.本发明的实施例还提供一种汽车,包括:电子控制单元ecu,以及如上所述的汽车控制单元引导启动程序的更新装置。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
108.本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
109.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
110.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
111.在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
112.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
113.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
114.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
115.此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系
列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
116.因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
117.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献