Termios: Non-blocking read() working? .-

Sebastian E. Garcia sg-listas at slabs.com.ar
Sat Jun 9 01:16:13 UTC 2012


Hi Joris,

First of all, thanks for your kind reply.

On 06/08/2012 05:30 PM, Joris van Rantwijk wrote:
> Hello Sebastian,
>
> On 2012-06-08, Sebastian E. Garcia wrote:
>> After some tests, I'm in doubt if this feature of Termios is
>> implemented in RTEMS/LEON3_BSP.
>
> Are you using real RTEMS 4.10 from rtems.org, or the Gaisler port of
> RTEMS. There are substantial differences in hardware drivers.

I'm using the Gaisler port.

> The APBUART driver from original RTEMS 4.10 (/dev/apbuart0, etc.)
> is not based on Termios as far as I know. So VMIN/VTIME stuff will
> simply not work.

In recent years Termios was implemented into the Gaisler port, at least 
to some extent  (the documentation available is confusing/outdated). In 
fact, from simple tests it seems that the blocking configurations of 
VMIN/VTIME are working.

> I wrote a Termios driver for APBUART a few years ago which supports
> non-blocking I/O. Not sure that it still works with current RTEMS.
>
> Feel free to try this if you think you can use it
> http://jorisvr.nl/files/leon3/leonuart20100811.zip

OK, thank you very much! I'll give it a try.

> I should maybe try to get this merged in RTEMS. The problem is this
> code is not backwards compatible with the current APBUART driver,
> precisely because it is Termios based.
>
> Regards, Joris.


So, from your words I understand that the Termios version found in a 
"vanilla" RTEMS, implements OK the non-blocking operation. Of course, 
this must be verified also at the lower lever driver for a given BSP.

Thanks again and kind regards,
Sebastian.



More information about the users mailing list