UART OTA bootloader for the STM32F103C8T6, written fully bare metal (no HAL). Flash the bootloader once with an ST-Link, then update the application over serial without a debugger.