Fusion 0.7.5, VxWorks - __init_skin()

Gilles Chanteperdrix gilles.chanteperdrix at laposte.net
Fri Jun 10 18:09:15 CEST 2005

Eddy, Paul wrote:
 > Hello,
 > I've been following the recent "fusion0.7 + vxWorks skin + sample" thread
 > with interest, as I'm in nearly the same position; attempting to get Fusion
 > running with the vxWorks skin.  I just started seriously looking into it
 > this week, and ran into many of the same issues as Marco Cavallini.
 > However, I WAS able to get the satch example code running after discovering
 > some dumb mistakes I had made.
 > After getting the satch code running, I tried playing around with some
 > timing measurements.  The two functions I'm using are 'rt_timer_tsc()' and
 > 'rt_timer_ticks2ns()'.  When I try to call rt_timer_ticks2ns(), it always
 > returns 0.  After browsing through the code, it seems the initial cause is
 > that __rtai_muxid always has the value of -ENOSYS.  I tried following
 > through the code to figure out how __init_skin() assigns the value to
 > __rtai_muxid, but didn't have much luck.

The basic architecture of Fusion is to be able to run several real-time
APIs (called skins) over the same core, but you are not supposed to be
able to run several of these skins at the same time (think, for example,
to what would mean running in the same scheduler different tasks with
different priority ranges). The only exception to this rule are the
native RTAI and POSIX APIs, which share the same priority ranges and
hence can be run at the same time.

So, basically, the vxworks skin is one skin, the native RTAI skin (to
which rt_timer_ticks2ns belong) is another, and the UVM, which allow to
run vxworks APIs in user-space is a third skin. Only one of these skins
may be run at one time.

So, basically, if some services are missing in the vxWorks skin (i.e. in
the vxworks.h file), you should implement them for the vxWorks skin,
preferably following the interface of the genuine interface, and we will
be happy to welcome your patches. If you do not know how to do it, ask
and we will try and do it, but we can not promise that it will be in
time for your particular needs.


					    Gilles Chanteperdrix.

More information about the Rtai mailing list