一、什么是Bootloader
单看单词:boot v.启动;loader n.装货设备,bootloader存在的意义就是指更新App程序,以下简称bl。在14229规范中的Boot Software 等价于bl,由两部分构成
Boot Software(Bootloader)= Boot Manager+Reprogramming Software
1、boot manager:引导程序启动
2、Reprogramming Software:更新软件程序,主要更新App程序
程序运行到BootManager后通过条件判断,决定进入ApplicationSoftware,(即App模式,功能可以正常运行),还是进入到Reprogramming software中(即意味着需要更新APP)
二、为什么要用bl
整车作为一个产品最终到消费者手里,如果客户要更新软件,不可能拆卸硬件去升级的,一般去到售后或4s店,利用OBD接口或者OTA云升级APP,而这两种方式均依赖于Bootloader程序,如果Bootloader程序不可用,就会导致ECU不可用。
即现在已知:为了更新app程序,需要bl程序,即目前ECU的layout内存划分如下(左图1)
但是会涉及一些场景:
1整车的ECU数量众多,但是刷写流程是否共用一套,随着app的版本变化,刷写流程是否变更?变更即意味bl程序不适用,需要更新;
2bl程序发现bug需要更新,如何更新程序,在更新过程中如果出现随机性power down情况,中断bl更新,即bl失效,即无法更新APP,即ECU无APP即失去相关功能;
为避免bl更新失败,有一个程序C专门更新Reprogramming Software(程序B),即可以理解为程序C把关程序B,程序B更新APP,即ECU内存划分如上右图。
三、FBL、PBL、SBL
FBL:(flash bootloader :更新刷写工具的)用于引导程序进入APP或者SBL,可以刷写SBL程序或者激活SBL,( 这个程序仅仅是出厂烧录一次,并且永不更新)
SBL: 刷写程序,用于更新app的
PBL: 位于rom中,是芯片上电后执行的真正第一行代码,在正常启动流程中,会加载SBL1;如果启动异常会虚拟出9008端口用于紧急下载
四、流程
有的供应商把flash driver 成为SBL。。
5、从测试角度如何测试bl
五、致谢及其他
感谢知乎博主,csdn等前辈博主知识分享,该篇内容为整合自用,如有错误欢迎探讨及指正,感谢。