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