Bootloader 相关概念理解及测试用例设计

一、什么是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程序

Bootloader 相关概念理解及测试用例设计_第1张图片

程序运行到BootManager后通过条件判断,决定进入ApplicationSoftware,(即App模式,功能可以正常运行),还是进入到Reprogramming software中(即意味着需要更新APP)

Bootloader 相关概念理解及测试用例设计_第2张图片

 

二、为什么要用bl

整车作为一个产品最终到消费者手里,如果客户要更新软件,不可能拆卸硬件去升级的,一般去到售后或4s店,利用OBD接口或者OTA云升级APP,而这两种方式均依赖于Bootloader程序,如果Bootloader程序不可用,就会导致ECU不可用。

即现在已知:为了更新app程序,需要bl程序,即目前ECU的layout内存划分如下(左图1)

Bootloader 相关概念理解及测试用例设计_第3张图片

但是会涉及一些场景:

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

Bootloader 相关概念理解及测试用例设计_第4张图片

FBL:(flash bootloader :更新刷写工具的)用于引导程序进入APP或者SBL,可以刷写SBL程序或者激活SBL,( 这个程序仅仅是出厂烧录一次,并且永不更新)

SBL:      刷写程序,用于更新app的

PBL: 位于rom中,是芯片上电后执行的真正第一行代码,在正常启动流程中,会加载SBL1;如果启动异常会虚拟出9008端口用于紧急下载

四、流程

Bootloader 相关概念理解及测试用例设计_第5张图片

 有的供应商把flash driver 成为SBL。。

5、从测试角度如何测试blBootloader 相关概念理解及测试用例设计_第6张图片

 五、致谢及其他

感谢知乎博主,csdn等前辈博主知识分享,该篇内容为整合自用,如有错误欢迎探讨及指正,感谢。

你可能感兴趣的:(汽车行业测试,单元测试)