MEMORY { .Code : ORIGIN = 0x80100000, LENGTH = (30 * 1024*1024)} MEMORY { .InitData : ORIGIN = 0x81F00000, LENGTH = (4 * 1024*1024)} MEMORY { .NonInitData : ORIGIN = 0x82300000, LENGTH = (29 * 1024*1024)} MEMORY { .ConfigFiles : ORIGIN = 0x84000000, LENGTH = (4 * 1024*1024)} MEMORY { .HeapData : ORIGIN = 0x84400000, LENGTH = (32 * 1024*1024)} MEMORY { .DMAData : ORIGIN = 0x86400000, LENGTH = (1024 * 1024)} MEMORY { .TTBData : ORIGIN = 0x86500000, LENGTH = (32 * 1024)} OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS { . = 0x00000000; . = ALIGN(4); .text : { __image_copy_start = .; S:\HBS\out\start.o (.text) *(.text .text.* .gnu.linkonce.t.*) }>.Code .Config : { PROVIDE_HIDDEN (__config_start = .); . = . + 4194304; PROVIDE_HIDDEN (__config_end = .); }>.ConfigFiles .heap : { . = ALIGN(16); PROVIDE_HIDDEN (__heap_start = .); . = . + 16777216; PROVIDE_HIDDEN (__heap_end = .); }>.HeapData .ttb : { . = ALIGN(16384); PROVIDE_HIDDEN (__ttb_start = .); . = . + 16384; PROVIDE_HIDDEN (__ttb_end = .); }>.TTBData .dma : { . = ALIGN(16); PROVIDE_HIDDEN (__dma_start = .); /* . = . + 1048576; */ PROVIDE_HIDDEN (__dma_end = .); }>.DMAData .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array*)) PROVIDE_HIDDEN (__init_array_end = .); }>.InitData .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.fini_array*)) PROVIDE_HIDDEN (__fini_array_end = .); }>.InitData . = ALIGN(4); .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } >.Code . = ALIGN(4); .data : { *(.data) } >.InitData . = ALIGN(4); . = .; .dynsym : { __dynsym_start = .; *(.dynsym) } _end = .; . = ALIGN(4096); .bss : { __bss_start = .; *(.bss) . = ALIGN(4); __bss_end__ = .; }> .NonInitData }