Load error in MIPS Malta board
S Sathyanarayanan
sathyas@sankhya.com
Wed May 8 04:38:00 GMT 2002
> > Hi,
> >
> > I have successfully compiled my application with mips-g++
> > compiler build
> > with newlib.but i'm not able to load it in MIPS Malta board
> > using YAMON monitor. Iam trying to load S-Record file generated using
> > mips-objcopy. The SDRAM available memory is 64mb. My file size is just
> > 600kb. Here is my linker script,
>
> What error messages do you get?
The contents of the s-record are printed in the YAMON console.
BTW, I'm able to run simple helloworld programs correctly.
>
> You can try objdump to see if all your code/data/bss is in the proper
> address range.
> You may also let ld generate a map file (ld -Map mapfile) to see if
> something is out of the address range of your target.
>
> > .text 0x80094550 :
> > {
> > _ftext = ABSOLUTE(.) ; /* Start of code and
> > read-only data */
> > start.o (.text) /* Entry point
> > */
> > *(.text)
> > _ecode = ABSOLUTE(.) ; /* End of code
> > */
> >
> > *(.rodata)
> >
> > . = ALIGN(8);
> > _etext = ABSOLUTE(.); /* End of code and read-only
> > data */
> > } = 0
> >
> > /**** Initialised data ****/
what do i have to do for the data section to follow after the text section
memory.
> >
> > .data :
> > {
> > _fdata = ABSOLUTE(.); /* Start of initialised data
> > */
> > *(.data)
> >
> > . = ALIGN(8);
> >
> > _gp = ABSOLUTE(.); /* Base of small data */
> >
> > *(.lit8)
> > *(.lit4)
> > *(.sdata)
> >
> > . = ALIGN(8);
> >
> > _edata = ABSOLUTE(.); /* End of initialised data
> > */
> > }
>
> The above looks suspicious to me. If I read the docs correctly, this
> means your data segment begins at address 0, but maybe it starts after
> the .text section?
> The same applis to the other sections below.
>
> My approach to this problem is to define the target memory layout with a
> MEMORY statement and put all sections into that memory in the desired
> order (with the ">" operator).
>
> You may take the examples from the "Using LD" doc as a starting point.
>
> Wolfgang
>
> > /**** Uninitialised data ****/
> >
> > _fbss = .; /* Start of uninitialised
> > data */
> >
> > .sbss :
> > {
> > *(.sbss)
> > *(.scommon)
> > }
> > .bss :
> > {
> > *(.bss)
> > *(COMMON)
> >
> > /* Allocate room for stack */
> > . = ALIGN(8) ;
> > . += 0x5000 ;
> > _sp = . - 16;
> > }
> >
> > _end = . ; /* End of unitialised data
> > */
> >
> > .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
> > .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
> >
> > /DISCARD/ :
> > {
> > *(.reginfo)
> > }
> >
> > PROVIDE(etext = _etext);
> > PROVIDE (edata = .);
> > PROVIDE (end = .);
> > }
> >
> > I am linking three object files along with the above libraries. one of
> > them is start.o
> >
> > Please help if you know what is going wrong.
> >
> > BTW, I have checked the memory, it is free for user application from
> > SDRAM size = 64 MByte
> > First free SDRAM address = 0x80094540
> >
> > Thanks,
> > sathya
> >
> >
> >
> > ------
> > Want more information? See the CrossGCC FAQ,
> > http://www.objsw.com/CrossGCC/
> > Want to unsubscribe? Send a note to
> > crossgcc-unsubscribe@sources.redhat.com
> >
> >
> ><
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list