2 /* Section Definitions */
6 * Vectors, code and constant data.
10 PROVIDE (pios_isr_vector_table_base = .);
11 KEEP(*(.cpu_vectors)) /* CPU exception vectors */
12 KEEP(*(.io_vectors)) /* I/O interrupt vectors */
13 *(.text .text.* .gnu.linkonce.t.*)
14 *(.glue_7t) *(.glue_7)
15 *(.rodata .rodata* .gnu.linkonce.r.*)
19 * Init section for UAVObjects.
21 .initcalluavobj.init :
24 __uavobj_initcall_start = .;
25 KEEP(*(.initcalluavobj.init))
27 __uavobj_initcall_end = .;
31 * Module init section section
33 .initcallmodule.init :
36 __module_initcall_start = .;
37 KEEP(*(.initcallmodule.init))
39 __module_initcall_end = .;
43 * C++ exception handling.
47 *(.ARM.extab* .gnu.linkonce.armextab.*)
52 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
57 * Markers for the end of the 'text' section and the in-flash start of
65 * Board info structure, normally only generated by the bootloader but can
66 * be read by the application.
68 PROVIDE(pios_board_info_blob = ORIGIN(BD_INFO));
73 . = ALIGN(ORIGIN(BD_INFO)+LENGTH(BD_INFO));
77 * Place the IRQ/bootstrap stack at the bottom of SRAM so that an overflow
78 * results in a hard fault.
90 * Non-const initialised data.
102 * Uninitialised data (BSS + commons).
110 PROVIDE ( _end = _ebss ) ;
114 * The heap consumes the remainder of the SRAM.
122 * This allows us to declare an object or objects up to the minimum acceptable
123 * heap size and receive a linker error if the space available for the heap is
128 /* extend the heap up to the top of SRAM */
129 . = ORIGIN(SRAM) + LENGTH(SRAM) - ABSOLUTE(_sheap);
134 * 'Fast' memory goes in the CCM SRAM
143 /* Stabs debugging sections. */
144 .stab 0 : { *(.stab) }
145 .stabstr 0 : { *(.stabstr) }
146 .stab.excl 0 : { *(.stab.excl) }
147 .stab.exclstr 0 : { *(.stab.exclstr) }
148 .stab.index 0 : { *(.stab.index) }
149 .stab.indexstr 0 : { *(.stab.indexstr) }
150 .comment 0 : { *(.comment) }
151 /* DWARF debug sections.
152 Symbols in the DWARF debugging sections are relative to the beginning
153 of the section so we begin them at 0. */
155 .debug 0 : { *(.debug) }
156 .line 0 : { *(.line) }
157 /* GNU DWARF 1 extensions */
158 .debug_srcinfo 0 : { *(.debug_srcinfo) }
159 .debug_sfnames 0 : { *(.debug_sfnames) }
160 /* DWARF 1.1 and DWARF 2 */
161 .debug_aranges 0 : { *(.debug_aranges) }
162 .debug_pubnames 0 : { *(.debug_pubnames) }
164 .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
165 .debug_abbrev 0 : { *(.debug_abbrev) }
166 .debug_line 0 : { *(.debug_line) }
167 .debug_frame 0 : { *(.debug_frame) }
168 .debug_str 0 : { *(.debug_str) }
169 .debug_loc 0 : { *(.debug_loc) }
170 .debug_macinfo 0 : { *(.debug_macinfo) }
171 /* SGI/MIPS DWARF 2 extensions */
172 .debug_weaknames 0 : { *(.debug_weaknames) }
173 .debug_funcnames 0 : { *(.debug_funcnames) }
174 .debug_typenames 0 : { *(.debug_typenames) }
175 .debug_varnames 0 : { *(.debug_varnames) }