A weblog focused on interesting circuits, ideas, schematics and other information about microelectronics and microcontrollers.
Generally, a bootloader is a small program which runs at boot time and is capable of loading a complete application program into a processor's memory so that it can be executed.
In the case of AVR processors, the bootloader program is usually 256-4096 assembly instuctions long and resides in a special portion of the FLASH memory called the bootblock. At boot time (when the processor has just been reset) the bootloader starts and is capable of communicating with the outside world to retrieve a new program and program it into the processor's FLASH memory. Depending on the bootloader and the available hardware, new application code can be loaded from any source including the serial port, SPI or I2C interfaces, external memory, hard disks, flash cards, etc. Once the programming is done, the bootloader program exits or the processor is reset and begins running the newly loaded code. Only AVR processors with the self-programming memory feature (those that have an SPM assembly instruction) can run a bootloader.
Read more about bootloaders, including comparison tables, in Pascal Stang'sarticle.