UDSonCAN刷写之StayInBOOT和FlashDiver

目录

0 前言

1 StayInBOOT

2  Flash Driver


0 前言

最近在做刷写相关的工作,顺便搞懂了StayInBOOT和FlashDiver,写出来作为分享,如果有哪里不对也请多多指正。

1 StayInBOOT

StayInBOOT在整个流程中的位置如下图所示,从图中可以看到,当ECU重启时会先检查是否有外部请求,这部分的内容在这篇文章有做介绍:UDS干货之编程会话与软件复位的相似与区别_uds 1002-CSDN博客

在APP是否有效时,进入15ms的延时,如果再次期间收到了StayInBOOT的命令,则使ECU直接进入BootLoader的编程会话,如果成功进入编程会话后,5秒钟没有任何报文,ECU将会自动复位。

主要作用:当APP跑飞,卡死时想要更新APP,只需要不断发送StayInBOOT的命令,然后下电再上电,这时ECU就可以进入boot的编程会话,继续正常的刷写。

这一般是刷写测试中一个容易被忽略的测试点, 需要注意。 

2  Flash Driver

使用过上位机刷写的朋友应该都知道,我们做刷写的时候是需要放两个文件的,一个是Flash Diver,一个是APP文件。APP文件显而易见,就是我们要使用的APP,但不知道大家是否有这样的疑问:Flash Driver是干什么用的呢?是BOOT吗?如果不是boot的话,那BOOT中是否也有两个文件,一个BOOT,一个Flash Driver?

揭晓答案:FlashDriver在某种程度上是BOOT,从下图也可以看出,刷BOOT的时候是没有另外的Flash Driver的。

Flash Driver是一段基本擦除内存数据功能的程序,出于安全考虑,Bootloader中不能包含 Flash Driver,避免程序跑飞时进入Flash Driver,对ECU造成不可逆的破坏,因此为了避免上述情况,Flash Driver一般放置在上位机中与APP一起刷入他,通过Bootloader调用Flash Driver的程序,实现内存擦除的功能

所以在我们平常的刷写流程中,需要先下载Flash Driver,然后31擦除时,其实是软甲内部调用Flash Driver的程序去擦除APP需要的内存。现在再看下图是否就变得更清晰明朗些了,也明白了为什么擦除只需要擦除APP,下载Flash Driver前不需要擦除了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IAMeee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值