刷写引导程序的更新方法、装置、电子终端及存储介质与流程

文档序号:30227339发布日期:2022-06-01 02:17阅读:178来源:国知局
刷写引导程序的更新方法、装置、电子终端及存储介质与流程

1.本发明实施例涉及计算机技术,尤其涉及一种刷写引导程序的更新方法、装置、电子终端及存储介质。


背景技术:

2.现有技术中,车载控制器普遍配备刷写引导程序,该刷写引导程序通常在控制器封装完成前灌装。在刷写引导程序的整个生命周期内,可通过配合统一诊断服务(unified diagnostic services,uds)、通用校准协议(universal calibration protocol,xcp)等协议实现对基础软件、应用程序、标定数据等程序的更新,以支持控制器封装后或整车下线后,在不更换或拆卸控制器的情况下对整车功能进行升级。
3.现如今,存在对已灌装至控制器的刷新引导程序进行更新的需求。例如:场景1,由于软件更新流程的调整,需要更新库存控制器中的刷新引导程序;场景2,控制器厂家为不同整车总装厂供应控制器,且各总装厂要求灌装的刷新引导程序间不兼容。
4.然而,现有技术中对已灌装至控制器的刷新引导程序进行更新,需要拆解控制器后再更新刷写引导程序,浪费了大量人力、时间等成本,更新成本大。


技术实现要素:

5.有鉴于此,本发明实施例提供了一种刷写引导程序的更新方法、装置、电子终端及存储介质,能够支持控制器封装后或整车下线后,在不拆解控制器的情况下对刷写引导程序进行升级,节省更新成本。
6.第一方面,本发明实施例提供了一种刷写引导程序的更新方法,应用于车载控制器,包括:
7.循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;
8.通过所述第一刷写引导程序,根据接收的擦除指令擦除所述目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向所述第二刷写引导程序写入第二程序段;
9.于所述第二程序段写入完成时,对所述第二刷写引导程序进行校验,并于校验通过时重启所述控制程序,直至刷写引导程序更新完成。
10.第二方面,本发明实施例还提供了一种刷写引导程序的更新装置,应用于车载控制器,包括:
11.停留模块,用以循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;
12.更新模块,用以通过所述第一刷写引导程序,根据接收的擦除指令擦除所述目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向所述第二刷写引导程序写入第二程序段;
13.校验模块,用以于所述第二程序段写入完成时,对所述第二刷写引导程序进行校验,并于校验通过时重启所述控制程序,直至刷写引导程序更新完成。
14.第三方面,本发明实施例还提供了一种电子终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本技术任意实施例提供的刷写引导程序的更新方法。
15.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本技术任意实施例提供的刷写引导程序的更新方法。
16.本发明实施例提供的一种刷写引导程序的更新方法、装置、电子终端及存储介质,该刷写引导程序的更新方法可应用于车载控制器,可以包括:循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段;于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
17.通过构建分级别的刷写引导程序结构,能够实现基于父级别的刷写引导程序对子级别的刷写引导程序进行更新,从而能够支持控制器封装后或整车下线后,在不拆解控制器的情况下对刷写引导程序进行升级,节省更新成本。
附图说明
18.图1是本发明实施例一提供的一种刷写引导程序的更新方法的流程示意图;
19.图2是本发明实施例二提供的一种刷写引导程序的更新方法中的控制程序启动的流程示意图;
20.图3是本发明实施例三提供的一种刷写引导程序的更新方法中校验第二刷写引导程序的流程示界面;
21.图4是本发明实施例四提供的一种刷写引导程序的更新方法中与外部刷写设备的交互示意图;
22.图5是本发明实施例五提供的一种刷写引导程序的更新装置的结构示意图;
23.图6是本发明实施例六提供的一种电子终端的结构示意图。
具体实施方式
24.为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。
25.实施例一
26.图1为本发明实施例一提供的一种刷写引导程序的更新方法的流程示意图。本实
施例可适用于对车载控制器中的刷写引导程序进行更新的情况。该方法可以由本发明实施例提供的刷写引导程序的更新装置来执行,该装置采用软件和/或硬件的方式实现,且可配置于车载控制器中。
27.参见图1,本实施例提供的刷写引导程序的更新方法,应用于车载控制器,包括如下步骤:
28.s110、循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中。
29.本发明实施例中,车载控制器可以指,其内部的刷写引导程序在不拆解控制器的情况下无法升级的控制器。车载控制器例如可以为电子控制单元(electronic control unit,ecu)、整车控制器(vehicle control unit,vcu)和电机控制器(motor control unit,mcu)等,在此不做穷举。
30.车载控制器中可以包括控制程序和刷写引导程序,且控制程序可以包括但不限于基础软件、应用软件和标定数据,刷写引导程序可以包括分级别的刷写引导程序。其中,控制程序和刷写引导程序之间是相互关联,而非独立存在的。
31.控制程序和刷写引导程序间关联,可体现在:在控制程序启动过程中,可以基于父级别的刷写引导程序启动子级别的刷写引导程序,并在逐层级启动刷写引导程序到最后级别(可以认为是最后一个子级别)时,可以基于最后级别的刷写引导程序启动控制程序。
32.此外,控制程序和刷写引导程序间关联,还可体现在:在控制程序更新过程中,还可以基于最后级别的刷写引导程序更新控制程序。可以认为,基于刷写引导程序可执行控制程序刷写流程,以实现控制程序的顺利更新。当控制程序的刷写流程发生变化时,就需要对刷写引导程序进行更新,以实现基于新的刷写流程更新控制程序。
33.本实施例提供的更新方法可以实现对刷写引导程序的更新,且更新刷写引导程序的过程,可发生在控制程序启动过程中。例如可以包括:若车载控制器接收到外部刷写设备发送的刷写引导程序的停留请求,则车载控制器的控制程序在启动过程中,可以根据该停留请求停留至目标级别的刷写引导程序中,且为方便区分可以将本次停留的目标级别的刷写引导程序称为第一刷写引导程序。
34.其中,停留请求的类型可以包括但不限于io请求和通信请求。当停留请求为io请求时,外部刷写设备可以与车载控制器通过io接口连接,且不同io接口可对应不同级别的刷写引导程序。当某级别的刷写引导程序需要更新时,外部刷写设备可以将其父级别(即目标级别)的刷写引导程序对应的io管脚,设置为与其他级别的刷写引导程序对应的io管脚不同的电位或状态。相应的,车载控制器识别到不同电位或状态的io管脚时,可将其作为停留请求,以根据停留请求停留至目标级别的第一刷写引导程序中。当停留请求为通信请求时,不同级别的刷写引导程序的停留请求,可以按下述至少一种方式进行区分:不同通信总线的外部请求、同一通信总线不同通道的外部请求、同一总线同一通道不同报文的通信请求或同一总线同一通道同一报文但不同报文内容的外部请求。
35.s120、通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段。
36.其中,父级别的刷写引导程序可以包含子级别的刷写引导程序的启动程序段和更
新程序段。并且,基于启动程序段,可以实现通过父级别的刷写引导程序启动子级别的刷写引导程序;基于更新程序段,可以实现通过父级别的刷写引导程序更新子级别的刷写引导程序。
37.本实施例中,可以认为第一刷写引导程序为父级别的刷写引导程序,第二刷写引导程序为子级别的刷写引导程序,且第二刷写引导程序为本次控制程序启动过程中需要更新的程序。在利用第一刷写引导程序更新第二刷写引导程序时,车载控制器可以根据接收的外部刷写设备的擦除指令和写入指令,分别执行擦除第二刷写引导程序中的第一程序段,和向第二刷写引导程序写入第二程序段的操作。
38.其中,擦除第一程序段和写入第二程序段的操作并无严格的先后关系,具体根据实际更新场景的条件执行即可。例如,当车载控制器的存储资源较小时,可以先擦除第一程序段再写入第二程序段;当存储资源较为充裕时,也可以先写入第二程序段再擦除第一程序段,从而在第二程序段写入异常时,能够保证刷写引导程序维持在原始状态,避免刷写引导程序引入异常程序段。
39.s130、于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
40.在校验第二刷写引导程序时,可以采用下述至少一种方式进行:将更新后的第二刷写引导程序与目标程序直接比较;基于crc校验算法,将更新后的第二刷写引导程序与目标程序的计算结果进行比较;基于md5或des等加解密算法,将更新后的第二刷写引导程序和目标程序经加解密后的结果进行比较。此外,其他校验方法也可应用于此,在此不做穷举。
41.在第二刷写引导程序校验通过后启动控制程序,相较于直接启动控制程序,能够提前进行程序异常检测,保证控制程序正常启动。再次启动控制程序过程中,同样可以基于当前启动过程中目标级别的第一刷写引导程序,更新当前启动过程中需要更新的第二刷写引导程序,并循环启动控制程序。通过循环启动控制程序,能够实现对需要更新的一个或多个级别的刷写引导程序进行更新,直至需要更新的各级别刷写引导程序更新完成。
42.本实施例中,通过将刷写引导程序构建为分层级的程序,可以将更新刷写程序流程对应的程序划分为最先级别(可以认为是第一个级别)的程序,且由于更新刷写程序的流程通常不发生变化,最先级别的刷写引导程序可固定不进行更新。可以将更新控制程序流程对应的刷写引导程序,逐层划分为子级别的程序,可实现根据父级别程序对子级别程序进行更新,从而能够支持控制器封装后或整车下线后,在不拆解控制器的情况下对刷写引导程序进行升级,节省更新成本。
43.在一些可选的实施方式中,在刷写引导程序更新完成之后,还包括:基于更新完成的刷写引导程序,对控制程序进行刷新和启动。
44.在这些可选的实施方式中,在需要更新的各级别刷写引导程序更新完成时,还可以基于更新完成的刷写引导程序中最后级别的程序,对控制程序进行刷写和启动,从而能够实现基于新的刷写流程更新控制程序并启动。
45.本发明实施例提供的一种刷写引导程序的更新方法,应用于车载控制器,可以包括:循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级
别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段;于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
46.通过构建分级别的刷写引导程序结构,能够实现基于父级别的刷写引导程序对子级别的刷写引导程序进行更新,从而能够支持控制器封装后或整车下线后,在不拆解控制器的情况下对刷写引导程序进行升级,节省更新成本。
47.实施例二
48.本实施例提供的刷写引导程序的更新方法,能够与上述实施例中所提供的刷写引导程序的更新方法中各个可选方案相结合。本实施例提供的刷写引导程序的更新方法,对停留至目标级别的刷写引导程序的步骤进行了详细描述。通过基于停留请求逐层判定是否停留至当前级别的刷写引导程序,能够最终停留至目标级别的刷写引导程序,以完成对目标级别的子级别的刷写引导程序进行更新。
49.本实施例中,刷写引导程序包括基础程序和第1至n级扩展程序;其中,第1级扩展程序为基础程序的子级别的程序;第n级扩展程序为第n-1级扩展程序的子级别的程序;其中,n∈[2,n]。
[0050]
其中,基础程序可以认为是上文公开的最先级别的刷写引导程序。第1级扩展程序可以认为是基础程序的子级别的刷写引导程序,第2级扩展程序可以认为是第1级扩展程序的子级别的刷写引导程序,以此类推,第n级别扩展程序可以认为是第n-1级扩展程序的子级别的刷写引导程序。换言之,基础程序为第1级扩展程序的父级别的刷写引导程序,第1级扩展程序为第2级扩展程序的父级别的刷写引导程序,以此类推,第n-1级别扩展程序为第n级扩展程序的父级别的刷写引导程序。其中,n可以为[2,n]范围内的正整数,而n可以为大于等于2的正整数。
[0051]
通过父级别的刷写引导程序中的启动程序段,可以启动子级别的刷写引导程序;通过父级别的刷写引导程序中的更新程序段,可以更新子级别的刷写引导程序。可以认为,需要更新的级别的扩展程序,可以仅依靠其父级别的程序中的更新程序段进行更新。示例性的,假设刷写引导程序包括基础程序,第1级扩展程序和第2级扩展程序,如果第2级扩展程序需要更新,那么仅依靠第1级扩展程序中的更新程序段即可实现。此时即使基础程序中的更新程序段受损,也不影响对第2级扩展程序的更新。
[0052]
示例性的,在刷写引导程序包括基础程序和第1至n级扩展程序的情况下,图2是本发明实施例二提供的一种刷写引导程序的更新方法中的控制程序启动的流程示意图。参见图2,本实施例提供的刷写引导程序的更新方法中控制程序启动的流程,可以包括:
[0053]
s201、车载控制器硬件启动。
[0054]
s202、基础程序启动。
[0055]
s203、基于接收的刷写引导程序的停留请求,判定是否跳转至子级别的程序中;若是则跳转至s204,若否则跳转至s205。
[0056]
其中,停留请求中可携带有表征目标级别的信息,可以通过判定当前级别是否等于目标级别,来判定是否跳转至子级别的程序中。具体可以是,在当前级别等于目标级别时,不跳转至子级别的程序;在当前级别不等于目标级别时,跳转至子级别的程序。
[0057]
在一些可选的实现方式中,还可以在基础程序启动后,循环判定子级别的程序是
否完整;若否,则将当前级别的程序作为目标级别的第一刷写引导程序,并进行停留。
[0058]
在启动基础程序后,进行逐层级扩展程序的跳转判定时,可以不仅根据停留请求进行跳转判定,还可以根据子级别的程序的完整性进行跳转判定。其中,根据子级别的程序的完整性进行跳转判定可以包括,当子级别完整时跳转至子级别的程序,当子级别不完整时不跳转至子级别的程序,即停留至当前级别的程序中。其中,可以在当前级别不等于停留请求中的目标级别,以及子级别的程序完整时,判定可以跳转至子级别的程序中。在当前级别等于停留请求中的目标级别,和/或子级别的程序不完整时,判定不可以跳转至子级别的程序中。
[0059]
其中,判定子级别的程序是否完整,可以包括:基于数据校验法判定子级别的程序是否完整,或者基于段关键字匹配法判定子级别的程序是否完整。其中,基于数据校验法判定完整性,可以包括:用特定算法计算需要判定完整性的程序的校验值,并与预存的校验值比较,若相等则具备完整性,否则不具备。其中,基于段关键字匹配法判定完整性,可以包括:将需要判定完整的程序的每个程序段配置一段关键字,并将所有关键字按固定顺序拼接成完整关键字;将关键字预存在各级别的程序数据中,判定程序完整性时,可以将其中预存的关键字按照固定顺序组合得到段关键字,并比较段关键字与完整关键字是否相等;若相等则具备完整性,否则不具备。此外,其他的程序完整性的校验方法也可应用于此,在此不做穷举。
[0060]
在这些可选的实现方式,可以在根据停留请求以及根据子级别的程序的完整性,皆判定为跳转至子级别的程序中时,跳转至s204;在根据停留请求以及根据子级别的程序的完整性,任意一个判定为不跳转至子级别的程序中时,则跳转至s205。从而能够在子级别的程序本来并非需要更新的程序的情况下,检测出不完整异常,并将其作为需要更新的程序。
[0061]
s204、启动子级别的程序,判定当前级别的程序是否为最后级别;若是则跳转至s206,若否则跳转至s203。
[0062]
在启动子级别的程序后,原本子级别的程序作为了当前级别的程序。在当前级别的程序为最后级别的程序时,可以跳转至s206进行控制程序的刷写或启动流程。在当前级别的程序并非最后级别的程序时,可以跳转至s203,从而实现循环基于接收的刷写引导程序的停留请求,判定是否跳转至子级别的程序中。
[0063]
s205、将当前级别的程序作为目标级别的第一刷写引导程序,并进行停留。
[0064]
在判定不跳转至子级别的程序中时,可以将当前级别的程序作为目标级别的第一刷写引导程序,并进行停留。并且,在停留至目标级别的第一刷写引导程序后,可以通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段;于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
[0065]
s206、基于接收的刷写引导程序的停留请求,判定是否跳转至控制程序中;若是则跳转至s207,若否则跳转至s205。
[0066]
在当前级别的程序为最后级别的程序时,也可以根据停留请求以及根据控制程序的完整性判定是否跳转至控制程序中。具体可参见根据停留请求以及根据子级别的程序的
完整性,判定是否跳转至子级别的程序中。
[0067]
当判定跳转至控制程序时,可以跳转至s207进行控制程序启动;当判定不跳转至控制程序时,可以跳转至s205停留至最后级别的程序中。在停留至最后级别的刷写引导程序后,还可以通过最后级别的刷写引导程序对控制程序进行更新。
[0068]
s207、基于最后级别的程序,启动控制程序。
[0069]
本发明实施例提供的刷写引导程序的更新方法,对停留至目标级别的刷写引导程序的步骤进行了详细描述。通过基于停留请求逐层判定是否停留至当前层级的刷写引导程序,能够最终停留至目标级别的刷写引导程序,以完成对目标级别的子级别的刷写引导程序进行更新。此外,本实施例提供的刷写引导程序的更新方法与上述实施例提供的刷写引导程序的更新方法属于同一技术构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且相同的技术特征在本实施例与上述实施例中具有相同的有益效果。
[0070]
实施例三
[0071]
本实施例提供的刷写引导程序的更新方法,能够与上述实施例中所提供的刷写引导程序的更新方法中各个可选方案相结合。本实施例提供的生刷写引导程序的更新方法,对第二刷写引导程序的校验步骤进行了详细描述。通过在每段第二程序段写入完成时对当前写入的第二程序段进行正确性校验,以及在各段第二程序段写入完成时对各段第二程序段进行完整性校验,能够保证第二刷写引导程序的更新准确性。
[0072]
示例性的,图3是本发明实施例三提供的一种刷写引导程序的更新方法中校验第二刷写引导程序的流程示界面。参见图3,本实施例提供的刷写引导程序的更新方法中第二程序段包括至少一段,校验第二刷写引导程序的流程,可以包括:
[0073]
s301、通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段。
[0074]
s302、根据接收的写入指令向第二刷写引导程序写入第二程序段。
[0075]
本实施例中,需要写入的第二程序段可以包括多段,进行擦除的第一程序段也可以为多段。在一些情况下,擦除的第一程序段还可以与写入的第二程序段对应,例如可以分别为控制程序某刷写步骤更新前后对应的程序段。在这些情况下,可以每擦除一段第一程序段,就写入对应的第二程序段。
[0076]
s303、于每段第二程序段写入完成时,对当前写入的第二程序段进行正确性校验。
[0077]
本实施例中,可以在每段第二程序段写入后,就对当前写入的第二程序段进行正确性校验。例如,可以参见上文,可以基于简单直接比较、基于crc校验算法或者基于md5、des等加解密算法,对写入的第二程序段进行正确性校验。
[0078]
s304、于正确性校验通过时,判断是否存在在未写入的第二程序段;于存在未写入的第二程序段时跳转至s301,于各段第二程序段皆写入完成时跳转至s305。
[0079]
其中,当还需要继续写入第二程序段时,可以先跳转至s301擦除与待写入的第二程序段对应的第一程序段;或者,也可以在不存在对应的第一程序段时,直接跳转至s302直接进行第二程序段的写入。当需要写入的多段第二程序段皆写入完毕时,可以跳转至s305进行完整性校验。
[0080]
此外,若当前写入的第二程序段正确性校验不通过时,可以停止更新刷写引导程序的流程,可以停留至目标级别的程序中,也可以进行刷写引导程序更新失败的提示。
[0081]
s305、对各段第二程序段进行完整性校验。
[0082]
其中,对各段第二程序段进行完整性校验,可以至少包括两个方面的校验:第一方面,校验需要写入的各段第二程序段皆已写入;第二方面,校验写入的各段第二程序段的程序段地址是否与预设地址相匹配。可以于上述校验皆通过时,认为各段第二程序段完整。
[0083]
s306、于校验通过时重启控制程序,直至刷写引导程序更新完成。
[0084]
当各段第二程序段的完整性校验通过时,可以重启控制程序直至刷写引导程序更新完成,基于更新完成的刷写引导程序进行控制程序的刷写或重启。此外,当各段第二程序段的完整性校验不通过时,可以停止更新刷写引导程序的流程,可以停留至目标级别的程序中,也可以进行刷写引导程序更新失败的提示。
[0085]
本发明实施例提供的刷写引导程序的更新方法,对第二刷写引导程序的校验步骤进行了详细描述。通过在每段第二程序段写入完成时对当前写入的第二程序段进行正确性校验,以及在各段第二程序段写入完成时对各段第二程序段进行完整性校验,能够保证第二刷写引导程序的更新准确性。此外,本实施例提供的刷写引导程序的更新方法与上述实施例提供的刷写引导程序的更新方法属于同一技术构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且相同的技术特征在本实施例与上述实施例中具有相同的有益效果。
[0086]
实施例四
[0087]
本实施例提供的刷写引导程序的更新方法,能够与上述实施例中所提供的刷写引导程序的更新方法中各个可选方案相结合。本实施例提供的生刷写引导程序的更新方法,对第二刷写引导程序更新之前的一些可选的步骤进行了详细描述。通过增加验证相关请求、判断预处理条件和写入刷写驱动等操作,能够保证刷写引导程序的更新过程能够合规、正常地进行,且通过增加记录刷写信息的操作,能够有助于后续程序异常的回溯处理。
[0088]
示例性的,图4是本发明实施例四提供的一种刷写引导程序的更新方法中与外部刷写设备的交互示意图。参见图4,本实施例提供的刷写引导程序的更新方法中与外部刷写设备的交互步骤,可以包括:
[0089]
s401、外部刷写设备发送刷写引导程序的停留请求。
[0090]
通常在控制程序需要更新时,用户可人为发起上位机流程,即通过外部刷写设备向车载控制器发送目标级别的刷写引导程序的停留请求。
[0091]
s402、车载控制器重启控制程序。
[0092]
s403、在启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中。
[0093]
s404、外部刷写设备发起访问请求。
[0094]
其中,访问请求可以认为是对外部刷写设备进行身份验证的请求,且该访问请求中可以携带一组随机数,以及基于外部刷写设备内部的预设算法计算得到的校验值。
[0095]
在一些实现方式中,外部刷写设备也可以不向车载控制器发送停留请求,而直接发起访问请求。相应的,在未接收到停留请求的情况下,车载控制器可以将最后级别的父级别作为目标级别,将最后级别的程序的父级别程序作为第一刷写引导程序。通过停留至最后级别的程序的父级别程序中,能够实现对最后级别的刷写引导程序的更新。
[0096]
s405、车载控制器对接收的访问请求进行验证。
[0097]
对访问请求进行验证,可以包括:按车载控制器内部的预设算法,对访问请求中的一组随机数进行计算;校验计算结果与访问请求中携带的校验值是否相同;若是则可认为访问请求校验通过,若否则不通过。其中,预设算法可以为任意校验算法,例如crc校验算法等,在此不做穷举。
[0098]
s406、外部刷写设备发起更新前的预处理。
[0099]
在车载控制器反馈访问请求验证通过时,外部刷写设备还可以发起的更新前的预处理。其中,更新前的预处理操作可以根据更新场景不同进行变化。示例性的,当对新能源电动汽车的控制器中的刷写引导程序进行更新时,更新前的预处理可以为,将整车下高压电。
[0100]
此外,在车载控制器校验访问请求验证不通过时,可停止更新流程,并可以进行刷写引导程序更新失败的提示。
[0101]
s407、车载控制器对更新前的预处理条件进行判断。
[0102]
车载控制器同样可以根据具体更新场景,判断外部刷写设备是否已执行了更新前预处理的操作。
[0103]
s408、外部刷写设备发起刷写请求。
[0104]
s409、车载控制器对接收的刷写请求进行验证。
[0105]
其中,刷写请求可以认为是对外部刷写设备进行刷写权限验证的请求,且刷写请求也可包含随机数和校验值。相应的,车载控制器对刷写请求校验流程可以与对访问请求信息校验流程相同,其不同之处可以在于两校验过程可使用不同防盗级别的内部算法,通常刷写请求验证流程使用的算法的安全性更强。
[0106]
s410、外部刷写设备写入刷写信息;其中刷新信息包括刷写设备标识和刷写日期。
[0107]
其中,刷写设备标识可以认为是外部刷写设备的指纹,例如可以为由数字、字母和特殊符号等至少一种元素组成的特征id;刷写日期可以为写入刷新信息时的时间戳。
[0108]
s411、车载控制器记录刷写信息。
[0109]
通过记录刷写设备标识和刷写日期,可以方便查找本次更新使用的外部刷写设备,从而便于刷写引导程序异常回溯。
[0110]
s412、外部刷写设备写入刷写驱动。
[0111]
s413、车载控制器接收并写入刷写驱动,其中刷写驱动用于写入第二程序段。
[0112]
由于向第二刷写引导程序写入第二程序段时需要驱动支持,外部刷写设备可以进行刷写驱动的写入操作,以便于车载控制器进行刷写。此外,在外部刷写设备写入刷写驱动前,车载控制器也可以检测内部是否存在刷写驱动,若不存在则可以执行步骤s412;若存在则可以不执行步骤s412,而直接执行s414步骤。
[0113]
s414、外部刷写设备发送擦除指令。
[0114]
s415、车载控制器通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段。
[0115]
s416、外部刷写设备发送写入指令。
[0116]
s417、车载控制器通过第一刷写引导程序,根据接收的写入指令向第二刷写引导程序写入第二程序段。
[0117]
s418、车载控制器于当前的第二程序段写入完成时,对当前写入的第二程序段进
行正确性校验。
[0118]
s419、于正确性校验通过时,外部刷写设备判断是否还存在未写入的第二程序段;若是则跳转至s414,若否则跳转至s420。
[0119]
s420、外部刷写设备发起完整性判定请求。
[0120]
s421、车载控制器根据完整性判定请求,对各段第二程序段进行完整性校验。
[0121]
s422、于完整性校验通过时,外部刷写设备发起重启指令。
[0122]
s423、车载控制器根据重启指令跳转至s402,直至刷写引导程序更新完成。
[0123]
s424、外部刷写设备发起更新后的后处理。
[0124]
s425、车载控制器执行更新后的后处理,基于更新完成的刷写引导程序,对控制程序进行刷新和启动。
[0125]
其中,更新后的后处理可以认为是与更新前的预处理相对应的处理操作。例如,当前处理为将新能源车下高压电的操作,那么后处理可以为将新能源车上高压电的操作。
[0126]
并且,在后处理操作后,车载控制器可以根据更新完成的刷写引导程序进行刷写或启动。
[0127]
本发明实施例提供的刷写引导程序的更新方法,对第二刷写引导程序更新之前的一些可选的步骤进行了详细描述。通过增加验证相关请求、判断预处理条件和写入刷写驱动等操作,能够保证刷写引导程序的更新过程能够合规、正常地进行,且通过增加记录刷写信息的操作,能够有助于后续程序异常的回溯处理。此外,本实施例提供的刷写引导程序的更新方法与上述实施例提供的刷写引导程序的更新方法属于同一技术构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且相同的技术特征在本实施例与上述实施例中具有相同的有益效果。
[0128]
实施例五
[0129]
图5是本发明实施例五提供的一种刷写引导程序的更新装置的结构示意图。本实施例可适用于对车载控制器中的刷写引导程序进行更新的情况。
[0130]
参见图5,本发明提供的刷写引导程序的更新装置,应用于车载控制器,可以包括:
[0131]
停留模块510,用以循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;
[0132]
更新模块520,用以通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段;
[0133]
校验模块530,用以于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
[0134]
在一些可选的实现方式中,刷写引导程序包括基础程序和第1至n级扩展程序;其中,第1级扩展程序为基础程序的子级别的程序;第n级扩展程序为第n-1级扩展程序的子级别的程序;其中,n∈[2,n];
[0135]
相应的,停留模块,可以用于:
[0136]
在基础程序启动后,循环基于接收的刷写引导程序的停留请求,判定是否跳转至子级别的程序中;
[0137]
若否,则将当前级别的程序作为目标级别的第一刷写引导程序,并进行停留。
[0138]
在一些可选的实现方式中,停留模块,还可以用于:
[0139]
在基础程序启动后,循环判定子级别的程序是否完整;
[0140]
若否,则将当前级别的程序作为目标级别的第一刷写引导程序,并进行停留。
[0141]
在一些可选的实现方式中,第二程序段包括至少一段;相应的,校验模块,可以用以:
[0142]
于每段第二程序段写入完成时,对当前写入的第二程序段进行正确性校验;
[0143]
于各段第二程序段皆写入完成时,对各段第二程序段进行完整性校验。
[0144]
在一些可选的实现方式中,刷写引导程序的更新装置,还可以包括:
[0145]
控制程序刷新模块,用以在刷写引导程序更新完成之后,基于更新完成的刷写引导程序,对控制程序进行刷新和启动。
[0146]
在一些可选的实现方式中,刷写引导程序的更新装置,还可以根据下述至少一项模块,在停留至目标级别的第一刷写引导程序中之后,在擦除目标级别的子级别的第二刷写引导程序中的第一程序段之前,执行下述至少一项步骤:
[0147]
访问验证模块,用以对接收的访问请求进行验证;
[0148]
预处理条件判断模块,用以对更新前的预处理条件进行判断;
[0149]
刷新验证模块,用以对接收的刷写请求进行验证;
[0150]
记录模块,用以记录刷写信息,其中刷新信息包括刷写设备标识和刷写日期;
[0151]
驱动写入模块,用以接收并写入刷写驱动,其中刷写驱动用于写入第二程序段。
[0152]
本发明实施例所提供的刷写引导程序的更新装置可执行本发明实施例所提供的刷写引导程序的更新方法,具备执行方法相应的功能模块和有益效果。未详尽描述的技术细节,可参见本发明实施例所提供的刷写引导程序的更新方法。
[0153]
实施例六
[0154]
图6是本发明实施例六提供的一种电子终端的结构示意图。图6示出了适于用来实现本发明实施方式的示例性电子终端600的框图。图6显示的电子终端600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备600典型的是承担刷写引导程序的更新功能的电子终端,例如为任意车载控制器。
[0155]
如图6所示,电子终端600以通用计算设备的形式表现。电子终端600的组件可以包括但不限于:一个或者多个处理器或者处理单元616,存储器628,连接不同组件(包括存储器628和处理器616等组件)的总线618,和为各组件供电的供电系统。
[0156]
总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture,isa)总线,微通道体系结构(micro channel architecture,mca)总线,增强型isa总线、视频电子标准协会(video electronics standards association,vesa)局域总线以及外围组件互连(peripheral component interconnect,pci)总线。本实施例中,总线618可以为车载总线,例如车载以太网、can总线、flex ray、most或lin总线等。
[0157]
电子终端600典型地包括多种计算机可读介质。这些介质可以是任何能够被电子终端600访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0158]
存储器628可以包括易失性存储器形式的计算机装置可读介质,例如随机存取存
储器(random access memory,ram)630和/或高速缓存存储器632。电子终端600可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(compact disc-read only memory,cd-rom)、数字视盘(digital video disc-read only memory,dvd-rom)或者其它光介质读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储器628可以存储至少一个程序产品,该程序产品例如包括控制程序(可包括基础软件、应用软件、标定数据)、刷写引导程序(可包括基础程序和第1至n级扩展程序)和可以执行本发明各实施例的功能和/或方法的程序。
[0159]
电子终端600也可以与一个或多个外部设备614(例如键盘、鼠标、摄像头等和显示器)通信,还可与一个或者多个使得用户能与该电子终端600交互的设备通信,和/或与使得该电子终端600能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等)通信。本实施例中,外部设备614可以为外部刷写设备。电子终端600与外部设备614的通信,可以通过输入/输出(i/o)接口622进行,还可以通过网络控制器620与一个或者多个网络(例如局域网(local area network,lan),广域网wide area network,wan)和/或公共网络,例如因特网)通信。应当明白,尽管图中未示出,可以结合电子终端600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundant arrays of independent disks,raid)装置、磁带驱动器以及数据备份存储装置等。
[0160]
处理器616通过运行存储在存储器628中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的刷写引导程序的更新方法,包括:
[0161]
循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段;于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
[0162]
当然,本领域技术人员可以理解,处理器还可以实现本发明实施例所提供的刷写引导程序的更新方法的技术方案。
[0163]
实施例七
[0164]
本发明实施例七还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的刷写引导程序的更新方法,该方法包括:
[0165]
循环在控制程序启动过程中,基于接收的刷写引导程序的停留请求,停留至目标级别的第一刷写引导程序中;通过第一刷写引导程序,根据接收的擦除指令擦除目标级别的子级别的第二刷写引导程序中的第一程序段,并根据接收的写入指令向第二刷写引导程序写入第二程序段;于第二程序段写入完成时,对第二刷写引导程序进行校验,并于校验通过时重启控制程序,直至刷写引导程序更新完成。
[0166]
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序
不限于如上的方法操作,还可以执行本发明实施例所提供的刷写引导程序的更新方法。
[0167]
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行装置、装置或者器件使用或者与其结合使用。
[0168]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。
[0169]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0170]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0171]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1