This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Minimal linker script for cortex M3 and M4 using gcc for c language applications


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]