This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

linker script


Hi,

in an embedded application I want to run some functions from the internal
RAM of an arm7 microcontroller for faster execution. 
To do this, I have to copy these functions from external FLASH-memory to
the internal RAM. I thought it should be possible do handle this like the
.data section is handled, by copying the functions in the startup-code to the
internal RAM. But i can't figure out how to tell this to my linker script
(below is the version i use without this feature, out of my head and
incomplete as I don't have it here). Whatever I try, the linker emits an
error (most of the time about overlaping sections).
Any hints how to do this? I use gcc-3.4.2 and binutils-2.15 configured as
arm-elf.

Thanks,
Manni


--------------------------------------------------------------------------------------------------------------------

...

MEMORY
{
  FLASH : ORIGIN = ..., LENGTH = ...
  RAM : ORIGIN = ..., LENGTH = ...
  INTRAM : ORIGIN = ..., LENGTH = ...
}

SECTIONS
{
  .text :
  {
    *(.text)
    *(.rodata)
    *(.glue_7)
    *(.glue_7t)
    . = ALIGN(4);
    _etext = . ;
  } > FLASH

  .data : AT (_etext)
  {
    _data = .;
    *(.data)
    . = ALIGN(4);
    _edata = . ;
  } > RAM
 
  .bss :
  {
    _bss = . ;
    *(.bss)
    *(COMMON)
    . = ALIGN(4);
    _ebss = . ;
  } > RAM

  

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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