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