车辆ECU的刷写方法、装置、ECU及存储介质与流程

文档序号:34553224发布日期:2023-06-28 04:41阅读:31来源:国知局
车辆ECU的刷写方法、装置、ECU及存储介质与流程

本发明涉及车辆,特别是涉及一种车辆ecu的刷写方法、装置、ecu及存储介质。


背景技术:

1、随着车辆技术的不断发展,电子控制单元(electronic control unit,ecu)在车辆中得到了广泛的应用。电子控制单元(electronic control unit,ecu)用于执行程序,以实现对数据的处理。汽车级ecu可以理解为车辆上的微机控制器,也可以称为车辆专用单片机。每个ecu包括处理器和存储器,处理器用于执行存储器中存储的程序,以实现特定功能。

2、为了满足高可靠性的要求,在ecu的固件中,通常不包含能够直接擦写内部程序存储器(通常为flash闪存,简称code-flash)的驱动程序(简称flashdrv),以防止因程序跑飞而意外擦写了code-flash区域,导致程序被破坏。所以,在uds(unified diagnosticservices,统一诊断服务)刷写过程中,通常需要先下载能够直接擦写code-flash的flashdrv,并保存到可运行程序的ram中,然后调用flashdrv中的接口擦除code-flash中指定的程序存储区域,然后才开始下载和写入新的程序数据。这个方法虽然安全但却不方便,不但增加了刷写flash的时间,还增加了flashdrv程序版本管理的工作量。而在产品的量产过程中,多一道工序或管理的复杂度,则多一分导致出错的可能性。


技术实现思路

1、本发明的实施例提供了一种车辆ecu的刷写方法、装置、ecu及存储介质,以在保证安全性的前提下,简化掉uds刷写过程中下载内部程序存储器驱动程序如flashdrv的子过程,缩短刷写的时间,提高ecu刷写程序的效率。

2、为了实现上述目的,一方面,提供一种车辆电子控制单元ecu的刷写方法,包括:

3、s1,生成ecu固件的源代码,并将所述ecu固件的源代码编译生成要写入ecu的ecu固件,其中,所述生成ecu固件的源代码包括如下步骤:

4、s11,将内部程序存储器驱动程序源代码中的擦除和/或写入函数固定在指定地址上;

5、s12,将所述驱动程序源代码进行编译,生成所述驱动程序的可执行二进制机器码数据文件,从所述可执行二进制机器码数据文件的所述指定地址提取与所述擦除和/或写入函数对应的原始二进制机器码;

6、s13,利用预定的对称式算法对所述原始二进制机器码进行处理,获得与所述擦除和写入函数对应的、转换后的二进制机器码;

7、s14,将与所述擦除和/或写入函数对应的、转换后的二进制机器码包含到ecu固件的源代码中。

8、其中,所述刷写方法包括:

9、s21,从所述ecu固件中获取与所述擦除和/或写入函数对应的、转换后的二进制机器码;

10、s22,对所述转换后的二进制机器码进行与所述预定的对称式算法对应的逆运算处理,将所述转换后的二进制机器码还原成与所述擦除和/或写入函数对应的原始二进制机器码;

11、s23,将所述原始二进制机器码保存在ram中具有相同数据类型和大小的数组中,并将数组名赋值给对应类型的函数指针;

12、s24,调用所述函数指针进行擦除和写入操作,并在调用完成后,将ram中的所述数组清零。

13、优选地,所述的刷写方法,其中,通过编译器的链接控制配置来实现将擦除和/或写入函数固定在指定地址上。

14、优选地,所述的刷写方法,其中,所述利用预定的对称式算法对所述二进制机器码进行处理包括对所述与所述擦除和/或写入函数对应的原始二进制机器码取反码。

15、优选地,所述的刷写方法,其中,步骤s14中,将与擦除和/或写入函数对应的、转换后的二进制机器码以常量数组的形式包含到ecu固件的源代码中;步骤s21中,从ecu固件中获取常量数组形式的转换后的二进制机器码。

16、优选地,所述的刷写方法,其中,还包括将所述步骤s21至所述步骤s24中的所有操作封装成一个inline函数,以供调用。

17、优选地,所述的刷写方法,其中,还包括在所述inline函数中加入用于限制执行擦除和/或写入操作的一重或多重开关锁。

18、优选地,所述的刷写方法,其中,通过加入全局开关变量来加入所述一重或多重开关锁。

19、另一方面,提供了一种车辆电子控制单元ecu的刷写装置,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如上文任一所述的方法。

20、又一方面,提供了一种车辆电子控制单元ecu,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如上文任一所述的方法。

21、又一方面,提供了一种计算机可读存储介质,其中,存储介质中存储有至少一段程序,所述至少一段程序由处理器执行以实现如上文所述的方法。

22、上述技术方案具有如下技术效果:

23、本发明实施例的技术方案直接在ecu固件中包含内部程序存储器驱动程序如flashdrv的可执行机器码数据,该可执行机器码数据中包含了对擦写和/或写入函数进行了特别的安全处理,使其不容易被误操作。这样实现了在保障安全的前提下,直接在固件中包含flashdrv可执行机器码数据。利用本发明实施例的技术方案进行ecu刷写时,可跳过flashdrv的下载步骤,直接下载所需更新的程序数据,从而缩短了ecu刷写的时间,提高了ecu刷写程序的效率,同时还简化了程序版本管理的工作。



技术特征:

1.一种车辆电子控制单元ecu的刷写方法,其特征在于,包括:

2.根据权利要求1所述的刷写方法,其特征在于,通过编译器的链接控制配置来实现将擦除和/或写入函数固定在指定地址上。

3.根据权利要求1所述的刷写方法,其特征在于,所述利用预定的对称式算法对所述二进制机器码进行处理包括对所述与所述擦除和/或写入函数对应的原始二进制机器码取反码。

4.根据权利要求1所述的刷写方法,其特征在于,所述步骤s14中,将与所述擦除和/或写入函数对应的、转换后的二进制机器码以常量数组的形式包含到所述ecu固件的源代码中;所述步骤s21中,从所述ecu固件中获取所述常量数组形式的所述转换后的二进制机器码。

5.根据权利要求1所述的刷写方法,其特征在于,还包括将所述步骤s21至所述步骤24中的所有操作封装成一个inline函数,以供调用。

6.根据权利要求5所述的刷写方法,其特征在于,还包括在所述inline函数中加入用于限制执行擦除和/或写入操作的一重或多重开关锁。

7.根据权利要求6所述的刷写方法,其特征在于,通过加入全局开关变量来加入所述一重或多重开关锁。

8.一种车辆电子控制单元ecu的刷写装置,其特征在于,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如权利要求1至7任一所述的方法。

9.一种车辆电子控制单元ecu,其特征在于,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由处理器执行以实现如权利要求1至7任一所述的方法。

10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器执行以实现如权利要求1至7任一所述的方法。


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

技术研发人员:黄运峰,叶德焰,任赋,李伟红
受保护的技术使用者:明见(厦门)软件开发有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1