[rtai] RTEMS RTAI module
Joel Sherrill
joel.sherrill at OARcorp.com
Mon Sep 3 14:15:06 UTC 2001
Bernhard Kuhn wrote:
>
> Joel Sherrill schrieb:
> >
> > I think that RTEMS can
> > be "ported" to RTAI using option 1 described below.
>
> Option 1 certainly offers minimum latencies, but
> probably takes more time to implement.
Definitely on minimum latencies but I don't know about
time to implement. It only takes a small handful of
services to port RTEMS. If they need to touch real
hardware (say special CPU instructions), I can probably
leverage the other RTEMS ports.
> Another potential problem with option 1:
> if you have to modify rtai.c, then these
> changes have to be ported to the other
> supported architectures (ppc/m68k), as well. But the
> (unmodified) rtai_sched.c probably already offers
> all services you need to get RTEMS running
> on top of it (Option 3, architecture independent).
Yep. But I am still investigating and designing so
I don't want to eliminate the most efficient version
jusy because it might be harder.
I am considering everything from a close to metal RTEMS
to something more akin to how GNAT implements Ada tasks.
It maps each Ada task to an underlying OS entity thread/
task and implements its run-time with existing OS services.
This is definitely a viable option as well. RTEMS then
would simply manage the RTAI tasks.
> But as you are the one who is willing to start
> the implementation, it's certainly up to you to
> make the decision :-)
:) I have ported RTEMS about a half dozen times now
so expect that given the list of capabilities and a
way to play with them, I can quickly figure out how
to approach the problem.
> > + simple RTAI environment under VMware, plex86, etc. for
> > testing and not crashing entire machine.
>
> I am not sure if VMware emulates all the hardware that
> is necessary ... never tried it myself along with
> RTAI - i'd like to hear your experiences :-)
>
> At least, VMware certainly won't be hard real time capable.
Doesn't matter at first. It is more than sufficient to
use printk and get a clock tick. There is a lot of
debugging to get to that point. And besides 99% of
RTEMS will work at that point. The things that won't
be proven (e.g. networking) require special drivers.
> Instead of plex86, have a look at boochs (forrunner
> of plex86): this is a "real" PC-emulator, basicaly
> capable of doing cycle exact emulation, means
> you could even do hard real time stimuli emulation.
> But IMHO, boochs isn't prepared for doing such kind
> of development on top of it ...
> (also boochs development stopped after merging with
> freemware to plex86, and i don't know if it is still
> possible to do full CPU emulation with plex86)
As Erwin mentioned, he used bochs a while back. Maybe
I should try it again.
> My suggestion: get an old and cheap Pentium class PC with a few
> megabytes of RAM and set up a remote-boot/NFS-Root environment.
I will need a real target when it works but will stick with
emulation until then. Plus there will hopefully be multiple folks
working on this and I want us all to have unlimited HW. :)
> best regards
>
> Bernhard
>
> > > Option 1: RTEMS for rtai.c
> > > --------------------------
> > >
> > > As already mentioned, rtai.c provides a lot if things
> > > you would have to re-implement in the BSP seperatly.
>
> > > Option 3: RTEMS BSP for rtai_sched.c
> > > ------------------------------------
> > >
> > > Would operate just like the POSIX scheduler on top
> > > of the RTAI scheduler.
>
> --
> Bernhard Kuhn, Software Engineer, Lineo Inc. (Where Open Meets Smart)
--
Joel Sherrill, Ph.D. Director of Research & Development
joel at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the users
mailing list