emc is designed with a portability layer between it and the underlying
rtos.  It's called "rtapi".  There are currently implementations for
rtlinux and rtai, plus a "userspace only" one that can't control
hardware and has no realtime guarantees.  To the best of my knowledge,
only rtai and sim are used these days.

To port emc to a new realtime system, "all" you need to do is
reimplement rtapi for it.  If its realtime model is more like linux
userspace processes than linux kernel modules (for example, when using
rtai through lxrt), then you will also have to do something about
userspace access to hardware--they use standard linux kernel APIs for
this.

Xenomai, LXRT, and CONFIG_PREEMPT_RT
(http://rt.wiki.kernel.org/index.php/Main_Page ) are all interesting
possible systems for emc to potentially be ported to.

As for non-x86 systems, there are a couple of items that may be
important.  First, there are a few bits of emc that are currently
written in assembler--rtapi_get_clocks and rtapi_mutex_XXX.  Second, emc
freely uses floating point including in real-time code, and most non-x86
systems don't have floating point units.  This use of floating point
might be impossible in a real-time context, might give them unacceptably
low performance, or it might not be a problem at all---someone with
specific knowledge about these platforms might know for sure.

Jeff

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to