STM32 Bootloader Design from Scratch