BSP and Device Driver Development Guide
As a program executable has many sections (note that the user can define their own, and that compilers define theirs without any notice), one has to specify the placement of each section as well as the type of memory (RAM or ROM) the sections will be placed into. For instance, a program compiled for a Personal Computer will see all the sections to go to RAM, while a program destined to be embedded will see some of his sections going into the ROM.
The connection between a section and where that section is loaded into memory is made at link time. One has to let the linker know where the different sections are to be placed once they are in memory.
The following example shows a simple layout of program sections. With some object formats, there are many more sections but the basic layout is conceptually similar.
+-----------------+ | .text | RAM or ROM +-----------------+ | .data | RAM +-----------------+ | .bss | RAM +-----------------+
BSP and Device Driver Development Guide
Copyright © 1988-2008 OAR Corporation