https://pub.aimind.so/diving-deep-into-embedded-systems-getting-started-with-the-bare-metal-programming-part-1-c9496a2da8fb