Microchip Technology SW006023-1N Data Sheet

Page of 238
MPLAB
®
 XC32 C/C++ Compiler User’s Guide
DS51686E-page 186
 2012 Microchip Technology Inc.
17.4.4.12 .SBSS2 SECTION
This section collects the small uninitialized constant global and static data from all of 
the application’s input files. Because of the constant nature of the data, this section is 
also a read-only section. This section is assigned to the program memory region 
(kseg0_program_mem).
/*
 * Uninitialized constant global and static data (i.e.,
 * variables which will always be zero). Again, this is
 * different from .sbss, which contains small non-initialized,
 * non-constant global and static data.
 */
.sbss2   :
{
  *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
} > kseg0_program_mem
17.4.4.13 .DBG_DATA SECTION
This section reserves space for the data required by the debug exception handler. This 
section is only allocated if the symbol _DEBUGGER has been defined. (This symbol is 
defined if the -mdebugger command line option is specified to the shell.) This section 
is assigned to the data memory region (kseg1_data_mem). The section is marked as 
NOLOAD
 as it is only intended to ensure that application data cannot be placed at 
locations reserved for the debug executive.
.dbg_data (NOLOAD) :
{
  . += (DEFINED (_DEBUGGER) ? 0x200 : 0x0);
} > kseg1_data_mem
17.4.4.14 .DATA SECTION
The linker generates a data-initialization template that the C start-up code uses to 
initialize variables.
17.4.4.15 .GOT SECTION
This section collects the global offset table from all of the application’s input files. This 
section is assigned to the data memory region (kseg1_data_mem) with a load address 
located in the program memory region (kseg0_program_mem). A symbol is defined 
to represent the location of the Global Pointer (_gp).
  _gp = ALIGN(16) + 0x7FF0 ;
  .got   :
  {
     *(.got.plt) *(.got)
  } > kseg1_data_mem AT> kseg0_program_mem