Flash Bootloader (FBL). The FBL is a PBL with the SBL pre-loaded to flash.
PBL+SBL
In a PBL+SBL solution the PBL downloads the SBL to RAM. The SBL is started in RAM and then down- loads and flashes the application.
FBL
The flash bootloader (FBL) is actually a PBL+SBL. This means that the FBL will have a larger ROM footprint but will not have to download the SBL, since it’s already there. When the bootloader needs to program, the entire SBL is copied from ROM to RAM and executes from RAM.
Features of the bootloader
The bootloader is responsible for a number of things such as verifying the application image, transfer application code from external source into internal memory.
It can be build as:
Primary bootloader
Secondary bootloader
Flash bootloader
ISO15765 transport protocol over can
ISO14229 services
DiagnosticSessionControl, 0x10
ECUReset, 0x11
ReadDataByIdentifier, 0x22
SecurityAccess, 0x27
CommunicationControl, 0x28
RoutineControl, 0x31
RequestDownload, 0x34
TransferData, 0x36
RequestTransferExit, 0x37
TesterPresent, 0x3e
ControlDTCSetting, 0x85
Supported compilers
Codewarrior
GCC
Diab
Small footprint
Example for MPC5606B (Diab, VLE, "-XO -Xsize-opt -g3")
PBL - 7.7 KByte Flash
SBL - 9.2 KByte RAM
FBL - 7.7 + 9.2 = ~17 KByte Flash
Supported addressing formats
Normal fixed addressing
Message area for communication with application.
Watchdog support
Supported MCUs
MPC5668*
MPC5567*
MPC5606S*
MPC5606B*
SPC56EL70
Additional features that must be implemented by customer:
fingerprints
signatures
eeprom support
Self update of PBL/FBL Normally done by the application not the bootloader.