Microchip Technology SW006023-2N Data Sheet

Page of 238
MPLAB
®
 XC32 C/C++ Compiler User’s Guide
DS51686E-page 188
 2012 Microchip Technology Inc.
17.4.4.19 .SBSS SECTION
This section collects the small uninitialized data from all of the application’s input files. 
This section is assigned to the data memory region (kseg1_data_mem). A symbol is 
defined to represent the virtual begin address of uninitialized data (_bss_begin). 
Symbols are also defined to represent the virtual begin (_sbss_begin) and end 
(_sbss_end) addresses of this section.
  _bss_begin = . ;
  .sbss   :
  {
    _sbss_begin = . ;
    *(.dynsbss)
    *(.sbss .sbss.* .gnu.linkonce.sb.*)
    *(.scommon)
    _sbss_end = . ;
  } > kseg1_data_mem
17.4.4.20 .BSS SECTION
This section collects the uninitialized data from all of the application’s input files. This 
section is assigned to the data memory region (kseg1_data_mem). A symbol is 
defined to represent the virtual end address of uninitialized data (_bss_end). A symbol 
is also to represent the virtual end address of data memory (_end).
.bss   :
{
  *(.dynbss)
  *(.bss .bss.* .gnu.linkonce.b.*)
  *(COMMON)
  /*
   * Align here to ensure that the .bss section occupies
   * space up to _end.  Align after .bss to ensure correct
   * alignment even if the .bss section disappears because
   * there are no input sections.
   */
  . = ALIGN(32 / 8) ;
} > kseg1_data_mem
. = ALIGN(32 / 8) ;
_end = . ;
_bss_end = . ;
17.4.4.21 .HEAP SECTION
The linker now dynamically reserves an area of memory for the heap. The .heap 
section is no longer mapped in the linker script. The linker finds the largest unused gap 
of memory after all other sections are allocated and uses that gap for both the heap and 
the stack. The minimum amount of space reserved for the heap is determined by the 
symbol _min_heap_size.
17.4.4.22 .STACK SECTION
The linker now dynamically reserves an area of memory for the stack. The .stack 
section is no longer mapped in the linker script. The linker finds the largest unused gap 
of memory after all other sections are allocated and uses that gap for both the heap and 
the stack. The minimum amount of space reserved for the stack is determined by the 
symbol _min_stack_size.