Re: [Xenomai-core] tasklet using Xenomai

2009-11-10 Thread Jan Kiszka
Anisha Kaul wrote:
 Dear all,
 
 How to define a tasklet using Xenomai for a serial port interrupt handler? 
 Does 'rtdm_event_init()' function work as a tasklet in Xenomai ?

An RTDM event is a binary semaphore for use inside a kernel driver -
probably not what you are looking for. What should be the semantic of
this tasklet, that of old RTAI? And what is the use case behind it?

Jan



signature.asc
Description: OpenPGP digital signature
___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] tasklet using Xenomai

2009-11-10 Thread Anisha Kaul
  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 ?

 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.
Is rt_16550A driver fully stable ?

thanks,
anisha

-
Hi-Tech Gears Limited, Gurgaon, India





___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] tasklet using Xenomai

2009-11-10 Thread Jan Kiszka
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

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


[Xenomai-core] tasklet using Xenomai

2009-11-09 Thread Anisha Kaul
Dear all,

How to define a tasklet using Xenomai for a serial port interrupt handler? 
Does 'rtdm_event_init()' function work as a tasklet in Xenomai ?

Thanking you in anticipation,
Anisha Kaul

-
Hi-Tech Gears Limited, Gurgaon, India





___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core