BootLoader即启动装载程序。所谓启动程序,即在MCU上电或复位后初始化芯片及基础运行环境,为应用程序的装载及运行提供条件。所谓装载程序,即从非易失性存储设备读取应用程序并跳转到应用程序运行。汽车电子ECU的BootLoader的主要作用是下载和更新产品软件的固件。
1.BootLoader通信模型
下图描述了基于UDS协议的Flash BootLoader物理层、数据链路层、传输层、应用层对应的协议标准。
2.BootLOader功能描述
1)在MCU复位后开始运行:ECU进行上电/复位后,首先执行的程序总是Bootloader。下图描述了BootLoader与应用程序在内存中的关系:
2)决定程序跳转方向(BootLoader/Application)
3)初始化MCU及运行环境,准备更新软件或者引导进入应用程序
3. BootLoader编程过程
1)编程前准备:在该阶段要停止记录诊断信息,停止非诊断报文的通信。除了标准化步骤之外,通常OEM还会有自己规定的步骤。
2)编程:在该阶段需要安全访问,完成数据的传输和编程。
3)编程后ECU复位:复位后通常进入默认会话。
4.BootLoader诊断服务
下表提供了Bootloader 需要的 UDS 诊断服务子集的概览。