El bootloader, su nombre puede parecer raro al principio o que implique grandes cosas, pero no es mas que un programa.
En ves de iniciar el micro y correr TU programa desde comienzo, lo que hace es ejecutar primero el bootloader, en el caso mas simple de bootloader que podes esperar, es que dependiendo del estado de un pin se ejecute el bootloader o no (y que vaya al programa del usuario). Este "programita" configura la UART y espera datos desde alli en un formato, cuando recibe datos comienza la escritura de la Flash.
En si tu bootloader (pedazo de codigo que se ejecuta antes que el codigo del ususario) lo que hace es:
- Configurar la UART
- Esperar datos en el formato decidido por el creador
- Grabar datos en la Flash (Aca aplica los pasos del datasheet para rabar la flash).
Asi que lo unico que necesitas vos hacer es enviar esos datos en el formato que te pide el bootloader. El resto lo hace el bootloader.