SBL PBL 与 FBL

1. ‍Bootloader

  • Bootloader 是嵌入式系统在上电或重启后执行的第一段代码,主要完成 CPU 和相关硬件的初始化,以及将操作系统 os 映像或固化的嵌入式应用程序装载到内存中,最后跳转到操作系统所在的空间,启动操作系统运行。
  • Bootloader 作为一个独立的程序,内部包含启动代码、中断、主程序(Boot_main 函数)、操作系统(非必须)等。

1.1 为什么要用 Bootloader

  • 假设这样一个场景:车辆某个 ECU 的 Application Software 出现了异常,导致车辆无法正常行驶,当软件工程师修复好 Application Software 的 bug 后,就需要利用 Bootloader 将修复好的Application Software 重新刷写进 ECU。
  • 所以 Bootloader 是为更新/修复 Application Software 而生的,那么既然是为更新/修复Application Software 而存在,Bootloader 就没有必要时常更新。当车辆下线以后,Bootloader 就固化在 ECU 指定内存区,不做更新,而 Application Software 可能会因用户的需求存在升级的可能。

1.2 Bootloader 如何更新 App Software

  • 了解 Bootloader 如何更新 Application Software 之前,我们需要先了解程序上电的执行流程。
    在这里插入图片描述
  • 上图为 ISO 14229-1 给出的程序上电后的执行流程,可以看出,一个 ECU 包含三个独立部分:Boot Manager、Application Software、Reprogramming Software。而 Boot Software = Boot Manager + Reprogramming Software。在汽车嵌入式开发中,我们常说的 Bootloader 就是指 Boot Software。
  • 当 ECU 上电或程序复位后,最先执行 Boot Manager 代码,在这个过程中检查 Application 的更新标志:ProgrammingRequest,判断应用程序是否请求升级。如果没有请求升级,那么再判断一下 ApplicationValid 标志,即检验当前应用程序是否有效,如果有效就跳转到 Application 程序,即 Application 的主程序(main 函数)。注意:如果是多核系统(英飞凌系列芯片),则跳转到 core0_main() 主程序;如果是单核系统,则跳转到单核的 main() 程序;
  • 如果 Application 请求升级,则程序跳转到 Reprogramming Software 下的非默认会话进行升级。

1.3 APP Software 程序升级步骤

  • 对于汽车 ECU 的 Application Software 升级,OEM 几乎都遵循 UDS 规范,主要分为三个阶段:Pre-Programming Step、Programming Step、Post-Programming Step。
  • Pre-Programming Step:此阶段主要​做一些 Application Software 升级前的检查,确保正式升级 Application 软件前,车辆工况的安全性。例如:
    • 车速:约束车速<3Km/h,即不允许车辆在行驶过程中进行软件升级;
    • 诊断电压:诊断电压会被约束在一定的范围内,如:9V~16V,避免升级过程中因电压过低或过高导致刷写失败;
    • KL15 信号的有效性:为确保接收到的信号质量,一般会检查 KL15 信号的有效性,有效的信号才能确保升级过程中的稳定性。
      当然,每家OEM的条件检查可能有所区别,但是,都为一个目的:安全。
  • Programming Step:完成车辆工况的安全检查后,即可进行 Application Software 的软件升级。Application Software 的软件升级遵循 UDS 协议,主要流程如下:
    在这里插入图片描述
    • Step1:进入编程会话,只有在该会话下才能进行 Application Software 升级;
    • Step2:执行 27 服务,完成安全访问解锁;
    • Step3:写指纹信息,如新的 Application 程序的软件版本号;
    • Step4:将 Flash Driver 下载到 ECU 中,为擦除旧的 Application Software 做准备,确切的说是下载内存擦除例程(Memory Erase Routine)。一般 Flash Driver 不会放在 ECU 内部,担心程序异常跑到 Flash Driver 中将有效的 Application 擦除,所以,Flash Driver 只有在 Application 程序升级/更新/修复时才下载到 ECU 的 RAM 区。
    • Step5:检查 Flash Driver 的有效性,只有 Flash Driver 下载成功,之后的 Application 程序擦除和更新才能成功。
    • Step6:将旧的 Application 擦除;
      在这里插入图片描述
    • Step7-Step8:与 Step4-Step5 过程相似,这里下载的是 Flash Driver 的内存编程例程(Memory Programming Routine)并检查该例程的有效性;
    • Step9:刷写新的 Application Software 到 ECU;
    • Step10:刷写完成后,检查下载数据的完整性,确保数据可靠;
    • Step11:检查 Application Software 的有效性,比如签名(signature)是否正确等;
    • Step12:编写配置信息,比如车辆 VIN 等。
  • Post-Programming Step:此阶段主要是 Application Software 更新后的网络恢复,即 Application Software 更新好后重新参与工作,常用的做法就是执行 ECU Reset(下左),也可以让诊断刷写的 S3 时间超时,程序重新退至默认会话状态。
    在这里插入图片描述

2. SBL PBL FBL

  • SBL(Secondary Bootloader,第二引导加载程序),对应前面所讲的 Reprogramming Software 部分,仅当应用程序无效或需要升级时使用,即专门用于更新 Application;
  • PBL(Primary Bootloader,第一引导加载程序),也称 FBL(Frist Bootloader)。前面讲述了 Application 的更新依赖于 SBL,那么当 SBL 失效后,该如何呢?这就是 PBL 的作用,专门刷写 Reprogramming Software,该程序仅在出厂前烧录一次,以后永远不更新。 PBL 仅限于刷写或激活 SBL,激活 SBL 后,再由 SBL 更新 Application Software。

参考资料:Bootloader开发:初识Bootloader

  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pbl是问题为导向学习(Problem-Based Learning)的简称,它是一种以问题为中心的学习方法。学生通过面临问题,进行探究、分析和解决问题的过程中,主动构建知识,并培养批判性思维、问题解决能力和合作精神。PBL强调学生的主动性、合作学习和跨学科的综合应用,通过团队合作、自主学习和科学探究等方式实现。 sbl是训练商务思维技巧(Story-Based Learning)的简称,它是通过故事讲述的方式来进行学习。故事是一种通俗易懂的资源,通过真实故事、案例等来传递知识和经验,激发学习者的兴趣和积极性。通过情境化教学的方式,学习者能够更好地理解抽象概念,培养商务思维和创新能力。 app是应用程序(Application)的缩写,它是一种可以在移动设备上安装和运行的软件。随着智能手机的普及,app成为了人们生活中必不可少的一部分。通过下载和安装app,我们可以轻松地访问各种功能和服务,如社交媒体、电子商务、在线学习等。app方便了我们的日常生活,提高了工作效率,并且为我们提供了更多的娱乐和学习选择。 总结来说,PBLSBL是两种不同的学习方法,前者强调问题导向的学习,后者通过故事情境来进行学习。而app是一种方便快捷的软件应用,可以在移动设备上实现各种功能和服务。这些概念都是在教育、学习和日常生活中经常涉及的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值