/** * \file * * * \author Manuele Fanelli * * \brief Script for Cortex M3 family processors. * */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* * Allocate section memory */ SECTIONS { .text : { KEEP(*(.vectors)); . = ALIGN (4); KEEP(*(.init)); . = ALIGN (4); *(.rodata .rodata.*); . = ALIGN (4); *(.text .text.*); . = ALIGN (4); *(.glue_7t); . = ALIGN(4); *(.glue_7); . = ALIGN(4); } > ram __text_end = .; PROVIDE (__text_end = .); .data : AT (__text_end) { . = ALIGN (0x400); PROVIDE (__data_start = .); *(vtable) *(.data .data.*) . = ALIGN (4); _edata = .; PROVIDE (__data_end = .); } > ram .bss : { PROVIDE (__bss_start = .); *(.bss .bss.*) . = ALIGN(4); *(COMMON) . = ALIGN(4); PROVIDE (__bss_end = .); } > ram /* * Allocated stack at the end of bss section. * Data heap is allocate at end of stack. * STACK_SIZE variable is defined in the CPU specific linker script file. */ PROVIDE (__msp_start = .); . = ALIGN(8); . += STACK_SIZE; PROVIDE (__msp_end = .); PROVIDE (__psp_start = .); . = ALIGN(8); . += STACK_SIZE; PROVIDE (__psp_end = .); PROVIDE (__heap_start = .); . = ALIGN(8); }