Initializing the
Execution Environment
10-1
10
This chapter describes the initialization process for the i960 processor
execution environment, including the startup assembly-language routine,
configuration files, and associated options.
Startup Code
The startup routine is a module that initializes the processor and library,
then invokes the user's program. In addition to processor initialization, the
startup routine performs some initialization specific to random-access
memory (RAM-based) or read-only memory (ROM-based) target
environments. Since RAM-based applications typically operate under a
system monitor and load to the correct addresses after powering up the
board, the startup routine must initialize system monitor requirements but
need not boot-load the program. For a ROM-based application, the startup
routine must:
• Put the initialization boot record for the i960 processor in place.
• Configure system data structures correctly.
• Make initialized data available in the RAM address space.
For any program, the startup routine must initialize the i960 processor
registers as follows:
• Provide a global entry point called
start. This symbol is the entry
point for debug monitors.
• Initialize the frame pointer and stack pointer to the correct value.
• Initialize
g14 to zero, as required by the i960 processor calling
convention.
• Fill the uninitialized
.bss data sections with zeros.