Microchip Technology SW006023-2N Data Sheet
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.
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).
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.
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.
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.