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 = .);
}