[ECOS] Re: What's i386/Linux synthesis target

Bart Veer bartv@redhat.com
Tue Jan 25 06:21:00 GMT 2000


> I am new to eCos. I've checked the documentation, but I am still
> confused about what the i386/Linux target is.
 
> Is it an extension of Linux kernel?

No, the synthetic target is not an extension of the Linux kernel.
Instead it is a port of eCos to Linux.

Basically eCos has certain expectations of the hardware it is running
on, for example there should be some sort of interrupt system with
reasonable behaviour, usually there will be a timer, hopefully there
is some way of communicating back to the host machine for diagnostics
purposes e.g. via a serial line. When eCos runs on a real embedded
system it interacts directly with the hardware, e.g. the interrupt
controller. 

When eCos runs on the synthetic target it does not interact with any
hardware at all. Instead we fake up the necessary functionality. For
example, instead of having a timer chip generating interrupts we set
up an alarm signal using the equivalent of the alarm() system call,
and when the alarm goes off the eCos application receives a Unix
SIGALRM signal; the eCos synthetic target interrupt handling code
intercepts this signal and makes it appear as if there really was a
timer chip that generated a hardware interrupt. All code is compiled
for the ix86 rather than for whatever processor your final embedded
target uses.

There is a certain similarity between the synthetic target and a
simulator: both attempt to run the application in something that fakes
up real hardware. Application development is generally easier because
you do not have to mess up with real hardware all the time, thus
avoiding long download times and the like. Once the application
appears to be running happily on the simulator or the synthetic
target, then you can worry about getting it to work on the embedded
hardware your application is actually meant to run on. A simulator
will more closely resemble the embedded target, for example it will
actually target the right instruction set, but of course this makes it
slower.

Bart Veer // eCos net maintainer


More information about the Ecos-discuss mailing list