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]

RE: Load error in MIPS Malta board


> > 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


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