Console problem update

Chris Johns chrisj at rtems.org
Thu Nov 4 21:15:05 UTC 2004


Etienne Fortin wrote:
> I don'T know why I tought that even after releasing the sempahore, I was
> still stuck in the idle thread. To the contrary! Forcing the release of
> the semaphore make the task continue to execute code and I eventually
> get out of the code with an error (that's ok since the semaphore was
> forced to be released so no valid data is there waiting)...
> 

I would make sure your receiver is turned on and data is being received.

> The question now is why the code is not notified of new characters. Is
> it possible that the termios code, being designed for "human"
> interraction (at least I presume), can't cope with sustained binary data
> transfer and so I lost data and eventually the semaphore is struck
> waiting for characters that will never come? Is it possible?
> 

It could be your termios setup if not correct. I use termios to send all 
sorts of binary data, plus I use it to implement command line console 
interfaces.

In rtems/libio.h there is a call:

rtems_status_code rtems_termios_bufsize (
   int cbufsize,     /* cooked buffer size */
   int raw_input,    /* raw input buffer size */
   int raw_output    /* raw output buffer size */
);

that lets you change the buffer size. This only works on termios devices 
opened after this call and does not update already open termios devices. 
If you think you are getting overflows try increasing the size of the 
buffers.

-- 
  Chris Johns



More information about the users mailing list