This is the mail archive of the ecos-discuss@sourceware.cygnus.com mailing list for the eCos project. See the eCos home page for more information.


[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

[ECOS] Problem with ECOS vectors.o code



I'm porting ECOS to a board based on the MPC850.  I can now
compile and run simple test programs built using the ECOS software 
tools.  I'm running into problems though if I try to use the startup 
code defined in vectors.[So].  The target.ld linker script defines the 
program start entry as reset_vector.  I looked at this code and it appears
to simply branch to _start which actually does the set up.  If
I remove the STARTUP(vectors.o) and ENTRY(reset_vector) from the
linker script then my test code runs fine (but then of course I'm not 
actually initializing or linking in any of the ECOS code).  If I use 
reset_vector as the start entry though, my program never returns.

It is not clear if the problem is in the _start code or in the
reset_vector code itself (or both) ... or perhaps even in defining
a different start entry.  A couple of things I've tried:

- I copied vectors.S and removed all code except the reset_vector code, 
  as in:
        .globl  reset_vector
      reset_vector:
        lwi     r3,_start
        mtlr    r3
        blr
  I first tried defining an _start that simply called main.  I also tried
  changing the lwi opcode above to "lwi r3,main".  Neither one of these
  allowed my main program to be called.  The main program simply
  sets a status register and returns (and works fine if reset_vector
  is not called).
- I tried using the vectors.o that was built when I built ecos-1.1 and 
  instead of defining reset_vector as the start entry using ENTRY(_start).  
  The test program built with this change in the linker script also does not 
  return.

Any ideas what is going on or what to try?

Thanks,
Brenda Spaur
brenda@FieldHand.com