Runtime (crt0)

By default, when using my link scripts, the standard runtime is initialised by crt0 as follows:

Address Size Link Script Variable Comment
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

crt0 allocates all free memory from the end of the .bss area to the end of ram to the heap (malloc/free).

On this page
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9