SPRUIG8J January 2018 – March 2024
Even after a program is written, compiled, and linked into an executable object file, there are still many tasks that need to be performed before the program does its job. The program must be loaded onto the target, memory and registers must be initialized, and the program must be set to running.
Some of these tasks need to be built into the program itself. Many of the necessary tasks are handled for you by the compiler and linker, but if you need more control over these tasks, it helps to understand how the pieces are expected to fit together.
This chapter will introduce you to the concepts involved in program loading, initialization, and startup.
Refer to your device documentation for various device-specific aspects of bootstrapping.