| `0x03fffe` | ~256k | `_STACK_SIZE` |Stack (SSP). Grows towards 0. At round about 0x0000400 it would start stomping all over the memory area used by the monitor |
| `0x040000` | n/a | `_RUN_ADDRESS` | Start of user program (.text), followed by initialised data (.data) and then unititialised data (.bss). The .bss area is initialised to all zeroes before main() is called. |
-
**Heap**
+
You can override the values at link time by using the linker option:
+
+
```
+
--defsym=<symbol_name>=<value>
+
```
+
You can use this option as many times as needed.
+
+
## Heap
`crt0` allocates all free memory from the end of the .bss area to the end of ram to the heap (malloc/free).