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

See the CrossGCC FAQ for lots more infromation.


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

Re: memcpy & VMA/LMA initilisations


Hi,.

>Maybe with a more complete listing, i could suggest something.

Well here is the full script i am using (i presume you dident mean
a full source listing !!), anyway the overuse of new sections is to
get round the lack of support for Microtec ORG (name) command.

We have to build sections in the script in the order bellow so we
get the right memory addresses (if you had not guested, its a custom os).

Thanks for any help (or even for tying)..

   ENTRY(START)

   /* list of our memory sections */
   /* bytes, or k or mb */
   MEMORY
   {
    /* rom  : o = 0x400, l = 512k */
    _ram0          : o = 0x00200000, l = 512k  /* initalise */
    _ram1          : o = 0x00280000, l = 512k
    _modbase       : o = 0xfffff000, l = 256
    _modbase6      : o = 0xfffff600, l = 256
    _modbase7      : o = 0xfffff700, l = 256
    _new_sect40000 : o = 0x00400000, l = 8    /* watchdog_reg */
    _new_sect40004 : o = 0x00400040, l = 8    /* rtc data reg */
    _new_sect4000c : o = 0x004000c0, l = 8    /* misc out / modem ctrl */
    _new_sect40018 : o = 0x00400018, l = 8    /* geobus address */
    _new_sect40014 : o = 0x00400014, l = 8    /* misc in / LEDs */
    _new_sect4001c : o = 0x0040001c, l = 8    /* data in/out / geobus data 
*/
    _new_sect40010 : o = 0x00400010, l = 8    /* tt reset / station address 
*/
    _pr3           : o = 0x00710000, l = 1k
   }

  /* ---------------------- */
  /* main var/data sections */
  /* ---------------------- */

   SECTIONS
   {
   /* initialized data */
    .init : AT (__bdata_end) /* memcpy to init */
    {
    __data_start = .;
     *(VTABLE)   /* now, 400 bytes */
     *(STACK)    /* now, 800 bytes */
     *(EXCEPTIO) /* now, 800 bytes */
     *(USTACK)   /* now, 100 bytes */
     *(APPDATA)  /* now, 2 bytes */
     *(UNINITVA) /* 0 */
     *(.data)
     __data_end = .;
    } > _ram0


    /* application stack */
    .stack :
    {
      __stack_start = .;
     *(.stack)
      __stack_end = .;
    } > _ram1


    /* --------- */
    /* modbase`s */
    /* --------- */

    MODBASE (NOLOAD) :
    {
     *(MODBASE)
    } > _modbase

    MODBASE6 (NOLOAD) :
    {
     *(MODBASE6)
    } > _modbase6

    MODBASE7 (NOLOAD):
    {
     *(MODBASE7)
    } > _modbase7


    /* ------- */
    /* moncode */
    /* ------- */

    APPCODE :
    {
     *(APPCODE)
    } > _ram1 /* .text */


    /* ------------- */
    /* data sections */
    /* ------------- */

    /* code and constants */
    .text :
    {
     __text_start = .;
     *(.text)
     *(.strings)
      __text_end = .;
    } > _ram1

    BDATA :
    {
    __bdata_start = .;
     *(BDATA)
     *(code)
     *(const)
     *(vars)
     __bdata_end = .;
    } > _ram1


    /* uninitialized data */
    .bss :
    {
      __bss_start = . ;
     *(.bss)
     *(COMMON)
      __bss_end = . ;
    } > _ram0


    /* ---------- */
    /* work areas */
    /* ---------- */


    /* mapped to special address */
    PR3_DUAR :
    {
    *(PR3_DUAR)
    } > _pr3


    /* freeram goes after everything else */
    FREERAM  :
    {
    *(FREERAM)
    } > _ram0


    /* --------------- */
    /* custom sections */
    /* --------------- */


    sect4000 : /* watchdog_reg */
    {
     *(sect4000)
    } > _new_sect40000

    sec40004 : /* rtc data reg */
    {
     *(sec40004)
    } > _new_sect40004

    sec4000c : /* misc out / modem ctrl */
    {
     *(sec4000c)
    } > _new_sect4000c

    sec40018 : /* geobus address */
    {
     *(sec40018)
    } > _new_sect40018

    sec40014 : /* misc in / LEDs */
    {
     *(sec40014)
    } > _new_sect40014

    sec4001c : /* data in/out / geobus data */
    {
     *(sec4001c)
    } > _new_sect4001c

    sec40010 : /* tt reset / station address */
    {
     *(sec40010)
    } > _new_sect40010


   } /* end of sections */


regards

---
Matthew J Fletcher              amimjf@connectfree.co.uk
www.amimjf.connetcfree.co.uk    ICQ amimjf 44193496
Serck Controls Ltd              Programming from PIC to Java

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com


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


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