Bootloader
A bootloader is a small startup program that runs on the microcontroller before the main application software and starts it. Its real value is that it allows software updates in the field without removing the board: when an update command arrives, instead of starting the application it switches to receiving the new software.
A typical bootloader follows this order at power-up: it prepares the hardware at the most basic level, checks whether there is an update request, and if there is none it jumps to the application software.
- Update request: it can be triggered by powering up with a certain button pressed, by a special command arriving over the communication line, or by a flag in memory.
- Integrity check: after the new software is received, a checksum value is verified. If verification fails the application is not started and the bootloader returns to waiting mode; this way a half-finished update does not render the board unusable.
- Size and protection: the bootloader sits in a separate section of memory and is usually write-protected; an application update does not touch its area.
On boards without a bootloader, updating requires physical access to the programming header, which means taking the board out of its enclosure. For a product widely installed in the field, this difference is one of the decisions that determines maintenance cost.
The context in which this term is used: Our Services