MEMORY { text : origin = 0x80004000 } SECTIONS { GROUP : { .init ALIGN(0x20):{} /* TODO: should be extab and extabindex */ extab_ ALIGN(0x20):{} extabindex_ ALIGN(0x20):{} .text ALIGN(0x20):{} .ctors ALIGN(0x20):{} .dtors ALIGN(0x20):{} .file ALIGN(0x20):{} .rodata ALIGN(0x20):{} .data ALIGN(0x20):{} .bss ALIGN(0x40):{} /* Hmm.. aligned to 0x40? Why? */ .sdata ALIGN(0x20):{} .sbss ALIGN(0x20):{} .sdata2 ALIGN(0x20):{} .sbss2 ALIGN(0x20):{} .stack ALIGN(0x100):{} } > text sz_init = SIZEOF(.init); szextab_ = SIZEOF(extab_); szextabindex_ = SIZEOF(extabindex_); sz_text = SIZEOF(.text); sz_ctors = SIZEOF(.ctors); sz_dtors = SIZEOF(.dtors); sz_file = SIZEOF(.file); sz_rodata = SIZEOF(.rodata); sz_data = SIZEOF(.data); sz_bss = SIZEOF(.bss); sz_sdata = 0x00001650; sz_sbss = SIZEOF(.sbss); sz_sdata2 = 0x00006FB0; sz_sbss2 = SIZEOF(.sbss2); _stack_addr = (_f_sbss2 + SIZEOF(.sbss2) + 65536 + 0x7) & ~0x7; _stack_end = _f_sbss2 + SIZEOF(.sbss2); _db_stack_addr = (_stack_addr + 0x2000); _db_stack_end = _stack_addr; __ArenaLo = (_db_stack_addr + 0x1f) & ~0x1f; __ArenaHi = 0x81700000; }