What is a bootloader?A bootloader is a program which is able to load another program (the application program). Typically, the bootloader program is not changed, and is kept in the microcontroller. That way the bootloader loads different program again and again.
The following figure shows a typical diagram of a serial bootloader:
The Bootloader Code and the Bootloader Vectors are programmed into a new part (for example, with a debugger) or, a standalone flash programmer (for example, with USBDM). Then the bootloader can be used to load or change the Application Code and Application Vectors. With this, the bootloader remains the same, while the application can be updated.