memcpy & VMA/LMA initilisations
Matthew Fletcher
amimjf@hotmail.com
Thu Aug 3 04:46:00 GMT 2000
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
More information about the crossgcc
mailing list