When developing bare metal applications it is required to supply some functions that we normally take for granted when developing code for mainstream OS’s. Setting the startup code is not inherently difficult but beware: some of the nastiest bugs you will ever see on bare metal can come from the startup code. What is actually needed to start the execution of the main function? Well, there are a few things that the C and C++ language specifications assume when starting a new program.| Posts on AllThingsEmbedded