All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: Anisha Kaul <anisha.kaul@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-core] tasklet using Xenomai
Date: Tue, 10 Nov 2009 13:12:08 +0100	[thread overview]
Message-ID: <4AF95898.6050806@domain.hid> (raw)
In-Reply-To: <200911101454.52764.anisha.kaul@domain.hid>

Anisha Kaul wrote:
>>> Thanks for the prompt reply !
>>>
>>> The tasklet I am talking about is supposed to re-set the registers of the
>>> serial port each time an interrupt occurs ! We can do this the following
>>> way in using Linux system calls :
>>>
>>> void resetRegisters (unsigned long currentlyUnused);
>>>
>>> DECLARE_TASKLET  (rs232Tasklet, resetRegisters, 0);
>>>
>>> void resetRegisters (unsigned long currentlyUnused)
>>> {
>>>         outb (0x83, PORT + 3);
>>>         outb (0x01, PORT + 0);
>>>         outb (0x00, PORT + 1);
>>>         outb (0x03, PORT + 3);
>>>         outb (0x01, PORT + 1);
>>>         outb (0x63, PORT + 2);
>>>         outb (0x08, PORT + 4);
>>> }
>> This looks like a weird use of tasklets under mainline. Moreover, they
>> are practically deprecated there.
>>
>>> How am I supposed to do this using Xenomai ?
>> Have you considered simply using the rt_16550A driver for your purpose?
>> You didn't told us your use case from an application POV, so it's hard
>> to say if the driver meets your requirements. But it does not require
>> you fiddling with hardware directly.
>>
>> Jan
> 
> 
> " This looks like a weird use of tasklets under mainline. Moreover, they are 
> practically deprecated there."
> 
> Why do you say this ?

The function you defer from interrupt context into a tasklet is
comparably cheap, specifically on modern systems. So the management
overhead is expect to be in the same dimension as the workload (you do
not gain noticeably shorter IRQ-off times this way).

> 
> " Have you considered simply using the rt_16550A driver for your purpose? "
> 
> I was not aware that a serial port driver for real time does exist ! 
> Secondly, here we are writing a robotic application where we want to stop the 
> robot if we receive data 'x' or move the robot if we receive data 'y'. 
> Can you tell me how can we achieve this functionality with rt_16550A driver.

Check existing examples and the RTDM serial profile documentation.

> Is rt_16550A driver fully stable ?

Yes, it's used, among other things, in robotics for many years.

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux


  reply	other threads:[~2009-11-10 12:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-10  7:41 [Xenomai-core] tasklet using Xenomai Anisha Kaul
2009-11-10  8:07 ` Jan Kiszka
     [not found]   ` <200911101343.09183.anisha.kaul@domain.hid>
2009-11-10  8:36     ` [Xenomai-help] " Jan Kiszka
2009-11-10  9:24       ` [Xenomai-core] " Anisha Kaul
2009-11-10 12:12         ` Jan Kiszka [this message]
2009-11-10 12:50           ` [Xenomai-core] switches between hard real time and soft real time Anisha Kaul
2009-11-10 13:13             ` Gilles Chanteperdrix
2009-11-10 13:33             ` [Xenomai-help] " Philippe Gerum

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=4AF95898.6050806@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=anisha.kaul@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.