1 2 3MEMORY 4{ 5 ROM (rx) : ORIGIN = 0x80000000, LENGTH = 0x00200000 6 L_TTB (rw) : ORIGIN = 0x80500000, LENGTH = 0x00005000 7 RAM (rwx) : ORIGIN = 0x80200000, LENGTH = 0x00300000 8} 9 10ENTRY(Reset_Handler) 11 12SECTIONS 13{ 14 .text : 15 { 16 17 Image$$VECTORS$$Base = .; 18 * (RESET) 19 KEEP(*(.isr_vector)) 20 Image$$VECTORS$$Limit = .; 21 22 *(SVC_TABLE) 23 *(.text*) 24 25 KEEP(*(.init)) 26 KEEP(*(.fini)) 27 28 /* .ctors */ 29 *crtbegin.o(.ctors) 30 *crtbegin?.o(.ctors) 31 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) 32 *(SORT(.ctors.*)) 33 *(.ctors) 34 35 /* .dtors */ 36 *crtbegin.o(.dtors) 37 *crtbegin?.o(.dtors) 38 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) 39 *(SORT(.dtors.*)) 40 *(.dtors) 41 42 Image$$RO_DATA$$Base = .; 43 *(.rodata*) 44 Image$$RO_DATA$$Limit = .; 45 46 KEEP(*(.eh_frame*)) 47 } > ROM 48 49 .ARM.extab : 50 { 51 *(.ARM.extab* .gnu.linkonce.armextab.*) 52 } > ROM 53 54 __exidx_start = .; 55 .ARM.exidx : 56 { 57 *(.ARM.exidx* .gnu.linkonce.armexidx.*) 58 } > ROM 59 __exidx_end = .; 60 61 62 .copy.table : 63 { 64 . = ALIGN(4); 65 __copy_table_start__ = .; 66 LONG (__etext) 67 LONG (__data_start__) 68 LONG (__data_end__ - __data_start__) 69 __copy_table_end__ = .; 70 } > ROM 71 72 .zero.table : 73 { 74 . = ALIGN(4); 75 __zero_table_start__ = .; 76 LONG (__bss_start__) 77 LONG (__bss_end__ - __bss_start__) 78 __zero_table_end__ = .; 79 } > ROM 80 81 __etext = .; 82 83 .ttb : 84 { 85 Image$$TTB$$ZI$$Base = .; 86 . += 0x00005000; 87 Image$$TTB$$ZI$$Limit = .; 88 } > L_TTB 89 90 .data : AT (__etext) 91 { 92 Image$$RW_DATA$$Base = .; 93 __data_start__ = .; 94 *(vtable) 95 *(.data*) 96 Image$$RW_DATA$$Limit = .; 97 98 . = ALIGN(4); 99 /* preinit data */ 100 PROVIDE (__preinit_array_start = .); 101 KEEP(*(.preinit_array)) 102 PROVIDE (__preinit_array_end = .); 103 104 . = ALIGN(4); 105 /* init data */ 106 PROVIDE (__init_array_start = .); 107 KEEP(*(SORT(.init_array.*))) 108 KEEP(*(.init_array)) 109 PROVIDE (__init_array_end = .); 110 111 112 . = ALIGN(4); 113 /* finit data */ 114 PROVIDE (__fini_array_start = .); 115 KEEP(*(SORT(.fini_array.*))) 116 KEEP(*(.fini_array)) 117 PROVIDE (__fini_array_end = .); 118 119 . = ALIGN(4); 120 /* All data end */ 121 __data_end__ = .; 122 123 } > RAM 124 125 126 .bss ALIGN(0x400): 127 { 128 Image$$ZI_DATA$$Base = .; 129 __bss_start__ = .; 130 *(.bss*) 131 *(COMMON) 132 __bss_end__ = .; 133 Image$$ZI_DATA$$Limit = .; 134 __end__ = .; 135 end = __end__; 136 } > RAM 137 138 .heap (NOLOAD): 139 { 140 . = ALIGN(8); 141 Image$$HEAP$$ZI$$Base = .; 142 . += 0x00100000; 143 Image$$HEAP$$ZI$$Limit = .; 144 __HeapLimit = .; 145 } > RAM 146 147 .stack (NOLOAD): 148 { 149 . = ORIGIN(RAM) + LENGTH(RAM) - 0x00002000 - 0x00000100 - 0x00000100 - 0x00000100 - 0x00000100 - 0x00000100; 150 . = ALIGN(8); 151 152 __StackTop = .; 153 Image$$SYS_STACK$$ZI$$Base = .; 154 . += 0x00002000; 155 Image$$SYS_STACK$$ZI$$Limit = .; 156 __stack = .; 157 158 Image$$FIQ_STACK$$ZI$$Base = .; 159 . += 0x00000100; 160 Image$$FIQ_STACK$$ZI$$Limit = .; 161 162 Image$$IRQ_STACK$$ZI$$Base = .; 163 . += 0x00000100; 164 Image$$IRQ_STACK$$ZI$$Limit = .; 165 166 Image$$SVC_STACK$$ZI$$Base = .; 167 . += 0x00000100; 168 Image$$SVC_STACK$$ZI$$Limit = .; 169 170 Image$$ABT_STACK$$ZI$$Base = .; 171 . += 0x00000100; 172 Image$$ABT_STACK$$ZI$$Limit = .; 173 174 Image$$UND_STACK$$ZI$$Base = .; 175 . += 0x00000100; 176 Image$$UND_STACK$$ZI$$Limit = .; 177 178 } > RAM 179} 180