Hi list!, I'm working in a project using gcc to develop applications using c language for embedded systems based on ARM Cortex M3 and M4. I have found some linker script used by commercial tools like lpcxpresso (from NXP) or Code Composer Studio (from TI) and others frecuently used for other developers with a lot of entries not documented. Where can I find the minimal entries required to make a linker script for c language applications using segments RAM and FLASH memories? As example (because I think my english is not so good) look at the sample code attached. Where can I find information about the entries marked with ???-> Thanks a lot! Sergio MEMORY { flash(rx) : ORIGIN = 0, LENGTH = 512K ram(wx) : ORIGIN = 0x20000200, LENGTH = 64K-0x200 } SECTIONS { . = 0; .text : { KEEP(*(.isr_vector)) *(.text) *(.text.*) ???-> *(.gnu.linkonce.t.*) ???-> *(.glue_7) ???-> *(.glue_7t) ???-> *(.gcc_except_table) ???-> *(.gcc_except_table.*) ???-> *(.ARM.extab*) ???-> *(.gnu.linkonce.armextab.*) . = ALIGN(4); *(.rodata) *(.rodata.*) ???-> *(.gnu.linkonce.r.*) } > flash ???-> __exidx_start = .; ???-> .ARM.exidx : ???-> { ???-> *(.ARM.exidx* .gnu.linkonce.armexidx.*) ???-> } > flash ???-> __exidx_end = .; . = ALIGN(8); _etext = .; .data : ALIGN(8) { _data = .; *(.data) *(.data.*) ???-> *(.gnu.linkonce.d.*) . = ALIGN(8); _edata = .; } > ram AT > flash .bss : { _bss_start = .; *(.bss) *(.bss.*) ???-> *(.gnu.linkonce.b.*) . = ALIGN(8); _bss_end = .; } > ram _end = .; PROVIDE(end = .); }