【车载开发系列】BootLoader相关概念

【车载开发系列】BootLoader相关概念

BootLoader相关概念

  • 【车载开发系列】BootLoader相关概念
    • 一、Bootloader概念
    • 二、汽车ECU中的Bootloader
    • 三、FBL的概念
    • 四、BootLoader运行时点
    • 五、Boot Software
    • 六、bootloader的作用
    • 七、汽车ECU bootloader的作用
    • 八、BootLoader的启动方式
      • 1.启动加载(boot loading)模式
      • 2.下载(downloading)模式

一、Bootloader概念

bootloader是一段固化在放在FLASH中的程序加载代码 ,连接底层硬件与应用程序。它是嵌入式系统在加电后执行的第一段代码。在完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行。

二、汽车ECU中的Bootloader

ECU是MCU的一种,一般用在汽车上。ECU经常会用在汽车零部件中,零部件密封性等要求都比较苛刻,并且装车,如果想取下零部件可能需要将车拆解才可以做到,这种行为是不被允许的,成本极高,操作复杂,因此大多主机厂商要求ECU具有升级功能,并且通过多年的积淀制定了行业标准UDS。
ECU开发过程要用到它来构建bootloader,上传和下载数据,即软件刷写,控制器Reset;测试时要用它来读写存储,控制外设;产线上,要用它来校准机械件,控制例程,进行下线执行器测试,刷新软件,配置防盗,读取号码,下线配置等。在行驶过程中,要用它来监测各种故障,并记下故障码;4S店里,技师需要读取当前故障、历史故障,读取故障发生时刻环境信息状态,清除故障,判断故障发生点,还可以用来升级ECU程序。

三、FBL的概念

FBL的全称是flash bootloader。它是用来更新刷写工具的。用于引导程序进入APP或者Secondary Bootloader,可以刷写SBL程序或者激活SBL,( 这个程序仅仅是出厂烧录一次,并且永不更新)
它是嵌入式软件和PC工具的组合,旨在通过总线协议(例如 CAN)对 ECU 软件进行刷新。因此 Flash Bootloader 分为 3 个部分,Bootloader、Flash Driver 和 Flash Tool。
【车载开发系列】BootLoader相关概念_第1张图片

四、BootLoader运行时点

BootLoader是驻留在ECU非易失性存储器(Nvm None Valitale Memory)中的一段程序代码,每次ECU复位之后,都会运行BootLoader。它会检查是否有来自通信总线的远程程序加载请求,如果有这个请求的话才会进入BootLoader模式。

五、Boot Software

在14229规范中的Boot Software等价于bootloader,它由两部分构成
1、boot manager:引导程序启动
2、Reprogramming Software:更新软件程序,主要更新App程序
一般情况下Boot Software(Bootloader)= Boot Manager+reProgramming Software

六、bootloader的作用

bootloader存在的意义就是更新App程序。主要功能是完成微处理器与周边电路正常运行的初始化工作,建立内存空间的映射,将系统的软硬件环境带到一个合适的状态,加载flash中的系统程序。

七、汽车ECU bootloader的作用

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

八、BootLoader的启动方式

大多数的BootLoader都有两种不同的操作模式:“启动加载模式”和“下载模式”。但是注意BootLoader的最终目的是启动内核,因此其实这两种并没有所谓的差别。

1.启动加载(boot loading)模式

上电后,BootLoader从板子的某个固态存储设备上将操作系统加载到RAM中运行,整个过程没有用户介入。这种模式是BootLoader的正常工作模式,产品发布时候,BootLoader就工作在这种模式下。

2.下载(downloading)模式

这种模式下,开发人员使用各种命令,通过串口连接或者网络连接从主机上下载文件,将他们直接放在内存运行或者烧入flash类固态存储设备中。以后的系统更新也会使用 Boot Loader的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。
对于串口通信的方式:使用xmodem/ymodem/zmodem 协议
对于网络通信的方式:使用tftp,nfs服务等

你可能感兴趣的:(车载开发,测试工具,软件工程)