Re: Running "eprommed" code

"Frank Ch. Eigler" <[email protected]>
Newsgroups gmane.comp.emulators.sid.devel
Message-ID <[email protected]>
Hi -

On Thu, Apr 24, 2003 at 03:01:02PM -0400, Brandon Warhurst wrote:
> I asked a question a while back about running "precompiled" (aka, only 
> binary image, no source) code.  You gave me a good answer.  I finally 
> got sid up and running.  The question is: how do I point SID to the 
> first instruction to execute?  Is that where the insn-count option comes 
> in?  I have scoured the documentation to no avail on this point.  I've 
> only found a reference to setting the !run pin.  Am I going to have to 
> compile some sort of startup program?  

This is tricky.  In the hardware, presumably the ROM sits in a memory
range that includes the powerup-reset PC address.  If you do the same
with sid, it should just work.  If on the other hand your ROM is
not complete, you indeed need to find a way of jumping into whatever
entry point the ROM has.  A related problem is just how much
initialization does your ROM thingie assume to have taken place?


> (This may be a problem seeing as 
> I can't seem to compile a cross-compiler to save my life.  It ALWAYS 
> fails for one reason or another.  Especially the arm-elf target.  It 
> seems to not find the correct assembler (which I apparently can 
> compile).  I cannot force it through any configure options to locate the 
> assembler it should use once it has built xgcc.  Actually, if I remember 
> correctly, after stage1, it shouldn't even build stage 2 because stage 2 
> is built with stage 1 meaning I couldn't even run it anyway.  But for 
> some reason it wishes to build stage 2.

You can try building out of the sources.redhat.com "uberbaum", which
contains an integrated source tree for gcc, binutils, the lot.  The
stage2/3 thing shouldn't occur if you configured the build tree with
the usual "--target=arm-elf" option.


> Anyway, I think I'm much closer if I can just figure out how to start 
> SID running the code and get GDB in there, I'll get exactly what I want. 

With GDB, this is possible without extra startup binaries.  Start sid as
before, but add the "--gdb=PORT#" argument, and connect an arm-elf-gdb
instance there.  SID will just sit there, before startup.  Then you can
issue a PC change from within GDB, as in something like:

   (gdb) jump * 0xdeadbeef


- FChE
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.