[.小白一枚.]Autosar_Bootloader学习笔记_2 启动和刷写时序流程

1、ECU启动时序 

时序流程如图所示:

 问题1:app有效标志位 何时擦除

A:在执行内存擦除时,

问题2:“外部重编程请求”和“app有效标志”的检查是否在bootloader下的默认会话

A:在检查完app有效标志后才进入app或boot的默认会话,在这之前没有会话的概念,一般这段程序会和bootloader糅合在一起

2、刷写流程 【Flashdriver形式】

        客户会提供刷写流程以供支持开发,一般刷写流程分3个阶段,预编程阶段、主编程阶段、后编程阶段;

预编程阶段:主要读取ECU数据信息,比如零件号,软硬版本号等,进入扩展会话后检测刷写条件,禁止记录DTC,关闭通讯,完成主编程阶段前的的一系列准备操作;

主编程阶段:1、开始发送编程会话请求,进入编程会话后,解锁安全等级、写入指纹信息(指纹信息须存储在目标ECU的独立于应用程序的非易失性存储器中),

2、写入完成后开始Flashdriver刷写(Flashdriver刷写至目标ECU指定的RAM区域)序列(34 - 36 -  37);

3、文件刷写完成后,验签(安全签名检查,具体由31服务开启例程实现,目的是检测下载的文件是否完整和安全;);

4、刷写应用程序,上面的刷写只是将数据刷写到了RAM区域,这一步将刷写到ECU的非易失性存储区域。此步的刷写序列为:先擦除flash,再请求下载、数据传输、请求传输推出(31 - 34 - 36 - 37):在接收到擦除命令时,清0 app有效位

5、验签、检测应用程序兼容性 ,检验全通过后置app有效位

后编程阶段:主要用来恢复在预编程阶段中关闭的can网络和dtc记录功能;一般如下

开启通讯 ——重启ECU——清除故障码——开启DTC记录——整车ECU进入默认会话

 3、刷写流程【SBL形式】

3.1 SBL (second bootloader)

        为防止整车上更新Bootloader遇到意外工况,例如异常掉电导致更新失败,ecu由于bootloader损坏从而丧失更新app的能力,因此使用SBL+APP的刷写形式。

刷写文件差异点:

        SBL与Flashdriver的不同点在于,SBL是一个完整的工程,具备CAN通信和UDS服务,而Flashdriver只用来被PBL调用来操作flash的擦写;

        SBL和PBL的区别在于SBL运行在RAM里,PBL在Pflash,PBL主要功能在于检查 “ 是否有重编程请求 ” 和 “ app有效标志是否置起 ”;PBL确定有重编程请求后激活SBL,剩余的刷写步骤都由SBL来完成,直至刷写成功后重启;

使用SBL的好处在于,如果你的APP的刷写流程有改动,仅需要修改SBL就可以,即使在更新SBL时出现类似Power Off的异常工况,也不影响PBL的功能。PBL只具备刷写SBL的功能,并不具备刷写APP的功能,也就意味着PBL刷写SBL的流程从开始就是固定的,避免了异常工况导致丧失刷写能力的发生,ECU重新供电后,仍然可以使用PBL更新SBL,之后在用SBL更新APP;

  • 22
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值