车辆ECU的刷写方法、装置、ECU及存储介质制造方法及图纸

技术编号:38008895 阅读:8 留言:0更新日期:2023-06-30 10:27
本发明专利技术提供了一种车辆ECU的刷写方法、装置、ECU及存储介质,该方法包括:生成ECU固件的源代码,将ECU固件的源代码编译生成ECU固件和利用ECU固件进行刷写;其中,刷写包括:从ECU固件中获取与擦除和/或写入函数对应的、转换后的二进制机器码;对转换后的二进制机器码进行逆运算处理,将其还原成原始二进制机器码;将原始二进制机器码保存在RAM中相同数据类型和大小的数组中,并将数组名赋值给对应类型的函数指针;调用函数指针进行擦除和写入操作,在调用完成后,将RAM中的数组清零。利用上述技术方案,可实现在保障安全的前提下,直接在固件中包含flashdrv可执行机器码数据,大大提高了ECU的刷写效率。ECU的刷写效率。ECU的刷写效率。

【技术实现步骤摘要】
车辆ECU的刷写方法、装置、ECU及存储介质


[0001]本专利技术涉及车辆
,特别是涉及一种车辆ECU的刷写方法、装置、ECU及存储介质。

技术介绍

[0002]随着车辆技术的不断发展,电子控制单元(Electronic Control Unit,ECU)在车辆中得到了广泛的应用。电子控制单元(electronic control unit,ECU)用于执行程序,以实现对数据的处理。汽车级ECU可以理解为车辆上的微机控制器,也可以称为车辆专用单片机。每个ECU包括处理器和存储器,处理器用于执行存储器中存储的程序,以实现特定功能。
[0003]为了满足高可靠性的要求,在ECU的固件中,通常不包含能够直接擦写内部程序存储器(通常为flash闪存,简称code

flash)的驱动程序(简称flashdrv),以防止因程序跑飞而意外擦写了code

flash区域,导致程序被破坏。所以,在UDS(Unified Diagnostic Services,统一诊断服务)刷写过程中,通常需要先下载能够直接擦写code

flash的flashdrv,并保存到可运行程序的RAM中,然后调用flashdrv中的接口擦除code

flash中指定的程序存储区域,然后才开始下载和写入新的程序数据。这个方法虽然安全但却不方便,不但增加了刷写flash的时间,还增加了flashdrv程序版本管理的工作量。而在产品的量产过程中,多一道工序或管理的复杂度,则多一分导致出错的可能性。

技术实现思路

[0004]本专利技术的实施例提供了一种车辆ECU的刷写方法、装置、ECU及存储介质,以在保证安全性的前提下,简化掉UDS刷写过程中下载内部程序存储器驱动程序如flashdrv的子过程,缩短刷写的时间,提高ECU刷写程序的效率。
[0005]为了实现上述目的,一方面,提供一种车辆电子控制单元ECU的刷写方法,包括:
[0006]S1,生成ECU固件的源代码,并将所述ECU固件的源代码编译生成要写入ECU的ECU固件,其中,所述生成ECU固件的源代码包括如下步骤:
[0007]S11,将内部程序存储器驱动程序源代码中的擦除和/或写入函数固定在指定地址上;
[0008]S12,将所述驱动程序源代码进行编译,生成所述驱动程序的可执行二进制机器码数据文件,从所述可执行二进制机器码数据文件的所述指定地址提取与所述擦除和/或写入函数对应的原始二进制机器码;
[0009]S13,利用预定的对称式算法对所述原始二进制机器码进行处理,获得与所述擦除和写入函数对应的、转换后的二进制机器码;
[0010]S14,将与所述擦除和/或写入函数对应的、转换后的二进制机器码包含到ECU固件的源代码中。
[0011]其中,所述刷写方法包括:
[0012]S21,从所述ECU固件中获取与所述擦除和/或写入函数对应的、转换后的二进制机
器码;
[0013]S22,对所述转换后的二进制机器码进行与所述预定的对称式算法对应的逆运算处理,将所述转换后的二进制机器码还原成与所述擦除和/或写入函数对应的原始二进制机器码;
[0014]S23,将所述原始二进制机器码保存在RAM中具有相同数据类型和大小的数组中,并将数组名赋值给对应类型的函数指针;
[0015]S24,调用所述函数指针进行擦除和写入操作,并在调用完成后,将RAM中的所述数组清零。
[0016]优选地,所述的刷写方法,其中,通过编译器的链接控制配置来实现将擦除和/或写入函数固定在指定地址上。
[0017]优选地,所述的刷写方法,其中,所述利用预定的对称式算法对所述二进制机器码进行处理包括对所述与所述擦除和/或写入函数对应的原始二进制机器码取反码。
[0018]优选地,所述的刷写方法,其中,步骤S14中,将与擦除和/或写入函数对应的、转换后的二进制机器码以常量数组的形式包含到ECU固件的源代码中;步骤S21中,从ECU固件中获取常量数组形式的转换后的二进制机器码。
[0019]优选地,所述的刷写方法,其中,还包括将所述步骤S21至所述步骤S24中的所有操作封装成一个inline函数,以供调用。
[0020]优选地,所述的刷写方法,其中,还包括在所述inline函数中加入用于限制执行擦除和/或写入操作的一重或多重开关锁。
[0021]优选地,所述的刷写方法,其中,通过加入全局开关变量来加入所述一重或多重开关锁。
[0022]另一方面,提供了一种车辆电子控制单元ECU的刷写装置,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如上文任一所述的方法。
[0023]又一方面,提供了一种车辆电子控制单元ECU,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如上文任一所述的方法。
[0024]又一方面,提供了一种计算机可读存储介质,其中,存储介质中存储有至少一段程序,所述至少一段程序由处理器执行以实现如上文所述的方法。
[0025]上述技术方案具有如下技术效果:
[0026]本专利技术实施例的技术方案直接在ECU固件中包含内部程序存储器驱动程序如flashdrv的可执行机器码数据,该可执行机器码数据中包含了对擦写和/或写入函数进行了特别的安全处理,使其不容易被误操作。这样实现了在保障安全的前提下,直接在固件中包含flashdrv可执行机器码数据。利用本专利技术实施例的技术方案进行ECU刷写时,可跳过flashdrv的下载步骤,直接下载所需更新的程序数据,从而缩短了ECU刷写的时间,提高了ECU刷写程序的效率,同时还简化了程序版本管理的工作。
附图说明
[0027]图1为本专利技术一实施例的ECU的刷写方法的流程示意图;
[0028]图2为本专利技术一实施例的ECU的刷写装置的结构示意图。
具体实施方式
[0029]为进一步说明各实施例,本专利技术提供有附图。这些附图为本专利技术揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本专利技术的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
[0030]现结合附图和具体实施方式对本专利技术进一步说明。
[0031]实施例一:
[0032]图1为本专利技术一实施例的ECU刷写方法的流程示意图。本专利技术一实施例的ECU刷写方法中,在ECU的固件中包含内部程序存储器驱动程序的可执行机器码。如图1,本专利技术一实施例的ECU刷写方法包括:
[0033]S1,生成ECU固件的源代码,将ECU固件的源代码编译生成要写入ECU的ECU固件,其中,ECU固件的源代码包含内部程序存储器驱动程序的、经过转换处理后的可执行机器码;具体地,生成ECU固件的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种车辆电子控制单元ECU的刷写方法,其特征在于,包括:S1,生成ECU固件的源代码,将所述ECU固件的源代码编译生成要写入ECU的ECU固件,其中,所述生成ECU固件的源代码包括如下步骤:S11,将内部程序存储器驱动程序源代码中的擦除和/或写入函数固定在指定地址上;S12,将所述驱动程序源代码进行编译,生成所述驱动程序的可执行二进制机器码数据文件,从所述可执行二进制机器码数据文件的所述指定地址提取与所述擦除和/或写入函数对应的原始二进制机器码;S13,利用预定的对称式算法对所述原始二进制机器码进行处理,获得与所述擦除和写入函数对应的、转换后的二进制机器码;S14,将与所述擦除和/写入函数对应的、转换后的二进制机器码包含到所述ECU固件的源代码中;S2,利用所述ECU固件进行刷写,具体包括:S21,从所述ECU固件中获取与所述擦除和/或写入函数对应的、转换后的二进制机器码;S22,对所述转换后的二进制机器码进行与所述预定的对称式算法对应的逆运算处理,将所述转换后的二进制机器码还原成与所述擦除和/或写入函数对应的原始二进制机器码;S23,将所述原始二进制机器码保存在RAM中具有相同数据类型和大小的数组中,并将数组名赋值给对应类型的函数指针;S24,调用所述函数指针进行擦除和写入操作,并在调用完成后,将RAM中的所述数组清零。2.根据权利要求1所述的刷写方法,其特征在于,通过编译器的链接控制配置来实现将擦除和/或写入函数固定在指定地址上。3....

【专利技术属性】
技术研发人员:黄运峰叶德焰任赋李伟红
申请(专利权)人:明见厦门软件开发有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1