5.15.1.2 Data Space Psects

The following psects reside in data memory.

nv
The psects used to store variables qualified __persistent. They are not cleared or otherwise modified at startup. These psects can be linked anywhere in their targeted memory bank and should not overlap any common (unbanked) memory that the device supports.
bss
The psects that contain any uninitialized variables.
 These psects can be linked anywhere in their targeted memory bank and should not overlap any common (unbanked) memory that the device supports.
data
The psects contain the RAM image of any initialized variables. These psects can be linked anywhere in their targeted memory bank and should not overlap any common (unbanked) memory that the device supports.
cstack
The psects that contain the compiled stack. On the stack are auto and parameter variables for the entire program. These psects can be linked anywhere in their targeted memory bank and should not overlap any common (unbanked) memory that the device supports.
stack
This psect is used as a placeholder for the software stack. Objects on this stack are dynamic allocated and the total stack size is not known by the compiler. As described in 5.7.2 Data Stacks this psect is typically allocated the remainder of the free data space, so that the stack may grow as large as possible. This psect may be linked anywhere in the data memory, but it is typically allocated to any available address in the STACK linker class. Consider adjusting this linker class to change the location of this psect, noting that the class size might limit the size of the software stack. Any overflow of the software stack might cause code failure.