123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
- GROUP(libgcc.a libc.a libm.a)
- INCLUDE extra_libs.inc
- INCLUDE vector_symbols.inc
- EXTERN(__stm32_vector_table)
- EXTERN(start_c)
- EXTERN(main)
- EXTERN(__msp_init)
- PROVIDE(__msp_init = ORIGIN(ram) + LENGTH(ram));
- EXTERN(__start__)
- ENTRY(__start__)
- PROVIDE(__exc_reset = __start__);
- EXTERN(_lm_heap_start);
- EXTERN(_lm_heap_end);
- SECTIONS
- {
- .text :
- {
- __text_start__ = .;
-
- *(.stm32.interrupt_vector)
-
- *(.text .text.* .gnu.linkonce.t.*)
- *(.plt)
- *(.gnu.warning)
- *(.glue_7t) *(.glue_7) *(.vfp11_veneer)
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- *(.gcc_except_table)
- *(.eh_frame_hdr)
- *(.eh_frame)
- . = ALIGN(4);
- KEEP(*(.init))
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
- . = ALIGN(0x4);
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*crtend.o(.ctors))
- . = ALIGN(4);
- KEEP(*(.fini))
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*crtend.o(.dtors))
- } > REGION_TEXT
-
- .text.align :
- {
- . = ALIGN(8);
- __text_end__ = .;
- } > REGION_TEXT
-
- __exidx_start = .;
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > REGION_RODATA
- __exidx_end = .;
-
- .rodata :
- {
- *(.rodata .rodata.* .gnu.linkonce.r.*)
-
- *(.USER_FLASH)
-
- . = ALIGN(4);
- _lm_rom_img_cfgp = .;
- LONG(LOADADDR(.data));
-
- _lm_heap_start = DEFINED(_lm_heap_start) ? _lm_heap_start : __data_end__;
- _lm_heap_end = DEFINED(_lm_heap_end) ? _lm_heap_end : __msp_init;
- } > REGION_RODATA
-
- .data :
- {
- . = ALIGN(8);
- __data_start__ = .;
- *(.got.plt) *(.got)
- *(.data .data.* .gnu.linkonce.d.*)
- . = ALIGN(8);
- __data_end__ = .;
- } > REGION_DATA AT> REGION_RODATA
-
- .bss :
- {
- . = ALIGN(8);
- __bss_start__ = .;
- *(.bss .bss.* .gnu.linkonce.b.*)
- *(COMMON)
- . = ALIGN (8);
- __bss_end__ = .;
- _end = __bss_end__;
- } > REGION_BSS
-
- .stab 0 (NOLOAD) : { *(.stab) }
- .stabstr 0 (NOLOAD) : { *(.stabstr) }
-
-
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
-
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
-
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
-
- .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
-
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
- .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
- /DISCARD/ : { *(.note.GNU-stack) }
- }
|