1/***********************************************************/ 2/* Configure memory regions */ 3MEMORY 4{ 5 IROM (rwx) : ORIGIN = 0x08000000, LENGTH = 0x00100000 6 SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x0001A000 7 SYSSTACK (rwx) : ORIGIN = 0x2001A000, LENGTH = 0x2000 8} 9 10ENTRY(OsResetVector) 11 12SECTIONS 13{ 14 .resetzone : 15 { 16 __text_section_start = .; 17 KEEP(*(.reset)) 18 } > IROM 19 20 .text : 21 { 22 . = ALIGN(4); 23 __text_start__ = .; 24 *(.text*) 25 *(.rodata*) 26 *(.kernel*) 27 *(.rel*) 28 } > IROM 29 30 .ARM.exidx : 31 { 32 *(.ARM.exidx* .gnu.linkonce.armexidx.*) 33 . = ALIGN(4); 34 } > IROM 35 36 .data : AT(LOADADDR(.ARM.exidx) + SIZEOF(.ARM.exidx)) 37 { 38 __text_end__ = LOADADDR(.data); 39 __data_start__ = .; 40 KEEP(*(VECTOR)) 41 *(vtable) 42 *(.data*) 43 . = ALIGN(4); 44 __data_end__ = .; 45 } > SRAM 46 47 .bss : 48 { 49 . = ALIGN(4); 50 __bss_start__ = .; 51 g_bssStart = .; 52 *(.bss*) 53 *(COMMON) 54 . = ALIGN(4); 55 __bss_end__ = .; 56 g_bssEnd = .; 57 } > SRAM 58 59 .osStack : 60 { 61 g_stackStart = .; 62 . = . + 0x2000; 63 g_stackEnd = .; 64 } > SYSSTACK 65 66 .heap (COPY): 67 { 68 __end__ = .; 69 end = __end__; 70 *(.heap*) 71 __HeapLimit = .; 72 } > SYSSTACK 73} 74 75/***********************************************************/ 76 77