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