ARM Cortex-M Startup From Scratch: From Reset to Blinking an LED
This article starts from reset and covers everything up to blinking an LED.
It explains the vector table, linker script, memory initialization, and startup
code required to reach the main function, and finally sets up STM32 LL to blink an LED.