File size: 1,652 Bytes
829b19c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | /* ARM Cortex-A8 Section Definitions */
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
/* Reset vector and exception vectors */
.vector_table (NOLOAD) : {
KEEP(*(.vector_table))
. = ALIGN(32);
} > RESET_VECTOR
/* Boot code - loaded first */
.boot : ALIGN(4) {
__boot_start = .;
KEEP(*(.boot))
KEEP(*(.boot.*))
__boot_end = .;
} > SRAM AT > FLASH
/* Text section (code) */
.text : ALIGN(4) {
__text_start = .;
*(.text)
*(.text.*)
*(.gnu.linkonce.t.*)
. = ALIGN(4);
__text_end = .;
} > SRAM AT > FLASH
/* Read-only data */
.rodata : ALIGN(4) {
__rodata_start = .;
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
. = ALIGN(4);
__rodata_end = .;
} > SRAM AT > FLASH
/* Initialized data */
.data : ALIGN(4) {
__data_start = .;
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
. = ALIGN(4);
__data_end = .;
} > SRAM AT > FLASH
__data_load_start = LOADADDR(.data);
__data_load_size = SIZEOF(.data);
/* Uninitialized data (BSS) */
.bss (NOLOAD) : ALIGN(4) {
__bss_start = .;
*(.bss)
*(.bss.*)
*(COMMON)
. = ALIGN(4);
__bss_end = .;
} > SRAM
/* Stack */
.stack (NOLOAD) : ALIGN(16) {
__stack_start = .;
. += 0x4000;
. = ALIGN(16);
__stack_end = .;
} > SRAM
/* Heap */
.heap (NOLOAD) : ALIGN(16) {
__heap_start = .;
. += 0x8000;
. = ALIGN(16);
__heap_end = .;
} > SRAM
/* Discard unused sections */
/DISCARD/ : {
*(.note.GNU-stack)
*(.gnu_debuglink)
*(.gnu.lto_*)
}
}
/* Linker-defined symbols */
__etext = __data_load_start + __data_load_size;
|