select on UART
paulw at omnitronics.com.au
Mon Apr 30 00:54:58 UTC 2007
Thomas Dörfler wrote:
> AFAIK select is currently limited to sockets, so there is no select
> support for serial or other devices. It would be a nice thing to add
> select support to the termios layer, but this has not yet been implemented.
The work around is to use the RTEMS specific receive call back functions
Here is a code snippet that uses the function
if ( status >= 0 )
struct ttywakeup wakeup;
rtems_task_ident( RTEMS_SELF, RTEMS_LOCAL, &task);
wakeup.sw_pfn = receive_callback;
wakeup.sw_arg = (void *) task ;
status = ioctl( fd, RTEMS_IO_RCVWAKEUP, &wakeup);
And the callback is
static void passthru_receive_callback(struct termios *tty, void * arg )
(void) rtems_event_send( (rtems_id) arg, EVENT_RS232_RX );
The sends the calling task an event when there is serial data available.
I could not find any documentation for this _non_standard_ API, so I
added a entry to the FAQ on the wiki.
Hope that helps.
The information in this e-mail is intended for the addressee only.
Unauthorised use, copying, disclosure or distribution by anyone else
is prohibited. Please let us know immediately if you receive this
e-mail in error. Thank you.
More information about the users