From: Jan Kiszka <jan.kiszka@domain.hid>
To: "Doyle, Alan" <alan.doyle@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] Reading Memory Mapped IO
Date: Wed, 02 Aug 2006 14:14:05 +0200 [thread overview]
Message-ID: <44D0970D.6060008@domain.hid> (raw)
In-Reply-To: <44D09177.8080001@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 1830 bytes --]
Jan Kiszka wrote:
> Doyle, Alan wrote:
>> Hi,
>>
>> I have an application where I need to read four contiguous memory mapped
>> data registers in response to an interrupt. As its real time critical I
>> intend to implement the read in Xenomai. Having read and processed the
>> data it later needs to be passed to a Linux domain application, I am
>> hoping to use a Posix message queue for this purpose.
>>
>> I seem to have two options as to how to implement this, I could register
>> the interrupt in a Xenomai user space thread and mmap the data registers
>> so that on receiving the interrupt the registers could be read.
>> Alternatively I could write a Xenomai RTDM driver to read the registers
>> on interrupt and use the driver read call from the Xenomai user space
>> thread to access register data. In each case the data would then be
>> passed to the Linux domain via a message to a Posix queue - after some
>> further processing that is not real time critical.
>>
>> Could you enlighten me as to the pros and cons of each approach, I am
>> particularly unclear as to the implications of using mmap in the Xenomai
>> domain and what if any affect it might have on the real time
>> responsiveness (I understand mmap() to be a call back into the Linux
>> kernel rather than to the Xenomai nucleus).
>
> To call mmap from real-time code is actually a generic issue. If you
> look at the design of other time-critical, though not hard-RT drivers
> like video4linux, they also try to avoid mmap'ing on demand. Instead one
> should set up mappings ahead-of-time during device initialisation. Use
> rings of premapped buffers that cycle between the driver and the
> application.
One thing I forgot to mention: likely you want to have a look at
rtdm_mmap_to_user() for this purpose.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next prev parent reply other threads:[~2006-08-02 12:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-02 9:24 [Xenomai-help] Reading Memory Mapped IO Doyle, Alan
2006-08-02 11:50 ` Jan Kiszka
2006-08-02 12:14 ` Jan Kiszka [this message]
2006-08-02 12:27 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44D0970D.6060008@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=alan.doyle@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.