【毫米波雷达(三)】汽车控制器启动流程——BootLoader

一、什么是Bootloader(BT)?

BT就是一段程序,一段引导程序。它包含了启动代码、中断、主程序等。
雷达启动需要由BT跳转到APP
在这里插入图片描述
它存在的意义是什么呢?
更新APP程序,因为BT和APP都是存储在flash中,BT有擦写flash的功能,将旧APP擦掉,写入新APP

二、FBL、PBL、SBL、ESS的区别

PBL(Primary BootLoader):一级boot,第一引导加载程序(FBL与PBL实际是一个)。
SBL(Second BootLoader):二级boot,第二引导加载程序。目的是更新APP
ESS(Ecu Software Structure ,ECU软件架构)是ECU软件分布结构文件,比如一个ECU有APP、HEX、配置文件config等整合成一个vbf文件,并再ESS中体现起始地址,大小,校验地址信息等。boot通过识别ESS文件,刷写APP和config等,这样可以后续动态调整ESS来实现APP和config调整分区,避免boot也需要跟着更新。
在这里插入图片描述
上图是PBL、SBL、MCU存储器的关系示意图
PBL的作用是在应用软件有效时引导它。PBL是存储在MCU的Flash中,它一般是产品出厂时一次性刷好的,上电或重启后,第一批执行的代码就是PBL。需要刷写软件时,PBL可以通过统一诊断服务(UDS),基于CAN或以太网等底层总线协议与外界诊断仪通信。在校验完诊断仪的权限后,PBL会将诊断仪上的SBL下载到MCU的内存RAM上,然后由SBL进行刷写。SBL包含PBL提供的所有服务以及闪存驱动器(Flash Driver)和一些额外的UDS服务。通过UDS触发,SBL会利用Flash Driver擦除就软件,并把新软件写到对应的存储区。具体流程如下图:
在这里插入图片描述
为了避免应用软件被意外误刷写或删除,PBL中一版不包含Flash Driver,不能直接操作闪存。每次刷写时,包含Flash Driver的SBL都会从诊断仪中重新加载到内存。这种PBL和SBL的分工方案,有如下这些好处:

  • 平时防止应用软件被误刷写
  • 提高网络安全性。每次从诊断仪下载SBL时,都可以通过安全鉴权机制,确保合法的诊断仪才能触发刷写。
  • 通过SBL还能反向刷写更新PBL,提高BootLoader的整体灵活性。

三、MCU的 A/B分区的实现

如下图所示,在A系统运行时,悄悄升级冗余的B系统,完成安装升级后再重启MCU,然后再切换到B系统
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老K聊技术

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

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

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

打赏作者

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

抵扣说明:

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

余额充值