This document describes how the bootloader (BL) and application interact from power-up through a firmware update. The two flowcharts below form a single cycle: the startup sequence decides whether to run the application or the bootloader, and the running application can hand control back to the bootloader when a new image needs to be programmed.
On every power-on or reset, the device first checks a dedicated RAM location, BL_is_requested. If that flag is set, the bootloader runs immediately. Otherwise the device waits a short, customer-configurable window (200 ms by default) for a host request, then validates the application before launching it.
While the application runs normally, it can be commanded to enter the bootloader. This path ensures a new image is only accepted from a host that has been authenticated.
BL_is_requested tells the startup sequence to enter the bootloader instead of the application. Host_is_authenticated lets the bootloader skip the authentication step when the application already authenticated the host prior to the reset. Together they allow the application to request and pre-authorize a firmware update, which the bootloader then completes after the reset.
Global Customers
Protocol Stacks
CAN Device Drivers
Flash Bootloaders
Microcontrollers & DSPs
Real Time Operating Systems