https://embetronicx.com/tutorials/microcontrollers/stm32/stm32f1-bootloader/stm32f1-firmware-update-using-custom-bootloader/
STM32F1 Firmware Update using Custom Bootloader - Bootloader Development Tutorial Part 3