SPRAB89A September 2011 – March 2014
In the most basic scenario for building a standalone program for a bare-metal environment, a program is statically linked and bound to run at a specific address. The linker simply patches all references with their final resolved address, and the program is ready to run. This scenario is simple and efficient.
Increasingly, even embedded systems consist of multiple components that are separately linked. This naturally leads to the dynamic linking model common on general-purpose systems: dynamic-link libraries (DLLs) on Windows or dynamic shared objects (DSO) on Unix-based platforms, including Linux. This section describes a set of conventions for a base-level dynamic linking and shared object mechanism for the C6000. Object file mechanisms relating to dynamic linking are covered in Section 14.4. Specific execution platforms, such as Linux, may specify additional conventions; see Chapter 15.