12.7 Locating the Stack at a Specific Address

By default, the linker allocates a maximum-size stack using the largest unused block of data memory. In cases where it is necessary for the programmer to specify the location and size of the stack explicitly, the stack may be defined in assembly language, using the stack attribute:

.section my_stack, stack, address(0x1800)
.space 0x100

When the stack is allocated in this way, the usable stack space will be slightly less than 0x100 bytes, since a portion of the user-defined section will be reserved for the stack guardband.