3 Writing a Bootloader Application
A bootloader is, in general, a short piece of code that allows reprogramming of the user application code. The new application code can be transferred using on-chip communication interfaces (UART, I2C, SPI) or using alternative download channels (wireless interface, network interface, external memory).
The current example is available for Atmel Studio 7.0 or MPLAB® X v5.30 with AVR GNU Compiler Collection (GCC) to compile the bootloader application. To keep the generated code short, AVR GCC-specific compiler/linker directives are used.