rpm at xenomai.org
Tue Oct 12 19:15:08 CEST 2004
On Tue, 2004-10-12 at 13:52, Jose Antonio Sanchez wrote:
> Should I try fusion to have this? I've read it's
> entirely based on lxrt and xenomai so there's no need
> to have kernel modules.
Code-wise, it's not based on LXRT at all. It does provide the same kind
of support for hardening a real-time task that has been stolen from the
Linux scheduler, but the scheduling core is based on Xenomai.
There is usually no need for a kernel module with fusion, the same way
you don't usually need it with LXRT.
This said, fusion still accepts that some part of your app lives in
kernel space in a module, communicating with user-space through a
real-time pipeline, which is something like an extended FIFO that
primarily works in message-oriented mode, but can also work in
byte-streaming mode from kernel to user-space. Another difference with
FIFOs is that pipes are bi-directional and also provide a blocking read
mode to kernel space threads.
If I understand correctly, your problem is to be able to have your GUI
main loop monitor a file descriptor for triggering I/O events in your
app. This is why FIFOs are useful there, the select()/poll() semantics
obviously won't match anything else than objects that can be identified
by file descriptors.
If you want to try fusion, have a look at testsuite/klatency in 0.6. The
README in the parent directory tells it all. This said, be aware that
LXRT has matured for 5 years, so it has a track record fusion does not
have yet. Additionally, if you want to go the fusion way, be prepared to
live with a more compact API.
(follow "native RTAI API")
More information about the Rtai