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