EmbeddedRelated.com
Forums
Memfault Beyond the Launch

ARM software simulator

Started by Drasko Draskovic September 30, 2007
Hi Richard,
thanks for the detailed answer.

Sill, I have one question - what if someone does not have a target board?

Is there some way to simulate a development board in software and then run
your application on this simulator, connect gdb to it, etc...

BR,
Drasko

On 9/30/07, rtstofer wrote:- Hide quoted text -

> --- In l... , "Drasko
> Draskovic"
>
> wrote:
> >
> > Hi all,
> > as a new on the list I have a few questions regarding ARM software
> > emulators.
> >
> > I recently bought development board with lpc2148, but I was wondering if
> > there is some virtual platform on which I can run software for arm and
> > examine what is happening in registers and peripherals.
> >
> > 1. Can Qemu be used for this? Does it emulate some platform, or I
> can only
> > run OS (Linux) on it? Or can I run some simple software (write/read some
> > register) and examine somehow (some debugger?) what is happening?
> > 2. Can SkyEye be used for this? What is the difference between
> SkyEye and
> > Qemu?
> > 3. Is there some other virtual platform that represents some evaluation
> > board with some ARM chip and peripherals to which I can "flash" and
> execute
> > my simple programs and watch vlues in registers, and not use the actual
> > hardware board?
> >
> > All in all, the question is how to run software for ARM if you don't
> have
> > the actual hardware evaluation board.
> >
> > Best regards,
> > Drasko
> >
> >
> >
> > Skyeye certainly looks interesting in that it simulates the Philips
> LPC22xx and apparently includes some peripherals.
>
> I can't say that I am enthusiastic about simulators. No matter how
> well they are written, they are not the hardware and they don't run in
> real time. For embedded systems, the code is all about dealing with
> the peripherals in real time.
>
> It seems to me that it is easier to just run on the hardware. That's
> especially true if you have a JTAG dongle and openocd. But, even
> lacking those, you can do a decent job by first getting the serial
> port to work and then using simple putc() and puts() functions. A few
> conversion routines to convert bytes and words to hex strings is about
> all you need.
>
> There is enough sample code around that getting started is no issue.
> In fact, since you have the 2148, I highly recommend you grab the demo
> code from www.jcwren.com/arm JC has put together a huge quantity of
> code for every peripheral in the 2148. And he has provided a file
> system and the stubs required to get newlib to work. Oh, and he also
> has USB working. Just about every possible thing you need other than
> your specialized main() function is provided.
>
> Most of the code for the ARM devices is written in C. Once the
> optimizer is turned on, there is no obvious relationship between the
> code being executed and the original source. So, forget about it.
> You don't need to deal with registers beyond working with peripherals.
> From the point of view of a C programmer, it doesn't matter how many
> general purpose registers there are or what's in them. The compiler
> writers deal with all that...
>
> Richard
>
--
Drasko DRASKOVIC

Software Developer
Elsys-DESIGN
Belgrade, Serbia
Tel. +381.11.311.5252
Fax. +381.11.311.5251
www.elsys-design.com

An Engineer's Guide to the LPC2100 Series


Memfault Beyond the Launch