1OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 2OUTPUT_ARCH(arm) 3 4SECTIONS 5{ 6 . = 0x80100000; 7 8 __text_start = .; 9 .text : 10 { 11 *(.vectors) 12 *(.text) 13 *(.text.*) 14 15 /* section information for finsh shell */ 16 . = ALIGN(4); 17 __fsymtab_start = .; 18 KEEP(*(FSymTab)) 19 __fsymtab_end = .; 20 . = ALIGN(4); 21 __vsymtab_start = .; 22 KEEP(*(VSymTab)) 23 __vsymtab_end = .; 24 . = ALIGN(4); 25 26 /* section information for modules */ 27 . = ALIGN(4); 28 __rtmsymtab_start = .; 29 KEEP(*(RTMSymTab)) 30 __rtmsymtab_end = .; 31 32 /* section information for initialization */ 33 . = ALIGN(4); 34 __rt_init_start = .; 35 KEEP(*(SORT(.rti_fn*))) 36 __rt_init_end = .; 37 } =0 38 __text_end = .; 39 40 __rodata_start = .; 41 .rodata : { *(.rodata) *(.rodata.*) } 42 __rodata_end = .; 43 44 . = ALIGN(4); 45 .ctors : 46 { 47 PROVIDE(__ctors_start__ = .); 48 /* new GCC version uses .init_array */ 49 KEEP(*(SORT(.init_array.*))) 50 KEEP(*(.init_array)) 51 PROVIDE(__ctors_end__ = .); 52 } 53 54 .dtors : 55 { 56 PROVIDE(__dtors_start__ = .); 57 KEEP(*(SORT(.dtors.*))) 58 KEEP(*(.dtors)) 59 PROVIDE(__dtors_end__ = .); 60 } 61 62 . = ALIGN(16 * 1024); 63 .l1_page_table : 64 { 65 __l1_page_table_start = .; 66 . += 16K; 67 } 68 69 . = ALIGN(8); 70 __data_start = .; 71 .data : 72 { 73 *(.data) 74 *(.data.*) 75 } 76 __data_end = .; 77 78 . = ALIGN(8); 79 __bss_start = .; 80 .bss : 81 { 82 *(.bss) 83 *(.bss.*) 84 *(COMMON) 85 . = ALIGN(4); 86 } 87 . = ALIGN(4); 88 __bss_end = .; 89 90 .heap : 91 { 92 . = ALIGN(8); 93 __end__ = .; 94 PROVIDE(end = .); 95 __HeapBase = .; 96 . += 0x400; 97 __HeapLimit = .; 98 __heap_limit = .; /* Add for _sbrk */ 99 } 100 101 /* Stabs debugging sections. */ 102 .stab 0 : { *(.stab) } 103 .stabstr 0 : { *(.stabstr) } 104 .stab.excl 0 : { *(.stab.excl) } 105 .stab.exclstr 0 : { *(.stab.exclstr) } 106 .stab.index 0 : { *(.stab.index) } 107 .stab.indexstr 0 : { *(.stab.indexstr) } 108 .comment 0 : { *(.comment) } 109 110 _end = .; 111} 112