前言
Bootloader是所有支持重编程的ECU必须具备的软件功能,在ECU运行过程中,执行的是应用软件和应用数据,仅当应用软件或应用数据无效或者上电之初,或者要求对其进行升级或特殊测试的时侯,才会运行Bootloader软件。
应用软件和应用数据、标定数据、网络配置数据可以同时编程或者相互独立编程,通常在ECU在刷入bootloader后,bootloader是无法再次更新的,除非拆件,不过现在这越来越多的主机厂要求Bootloader也要支持刷写。Bootloader存储于被保护的flash区域,即使发生潜在错误时,控制器的应用软件始终可以刷新。
一、ECU启动要求
在每次上电/复位后,ECU首先执行Bootloader代码。Bootloader首先执行一些基本的初始化,然后检查刷新请求标志位是否为有效,如果刷新请求标志位有效,即使应用程序是有效的,Bootloader也会继续运行。如果当前没有刷新请求,即刷新请求标志位为无效,则检查应用软件的状态,如果应用软件是有效的,则应用软件代码将被执行,如果应用软件是无效的,则继续执行Bootloader代码,如下图所示。
二、诊断会话管理
下图描述了诊断会话管理。在应用模式下,使用了两种不同的诊断会话模式:默认会话和扩展会话。
在Bootloader模式下