Recently I wrote a short article about setting up an environment for programming STM32 microcontrollers with the libopencm3 library. You can read it here. I wanted to write the second part as soon as possible but I found out that even though I could, I didn’t understand everything well enough. I just didn’t feel comfortable with the subject. That’s why I started this series. I want to explore what actually happens when you program a STM32 microcontroller.