[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How do I use rtems_termios_bufsize?! No doc!
- Date: Fri, 24 Sep 2010 13:01:03 +0100
- From: freakforever at gmail.com (João Rasta)
- Subject: How do I use rtems_termios_bufsize?! No doc!
I have checked the termios configuration again, it seems ok. No software
flow control, no canonical mode. Also the same configuration works fine on a
I'm using gaisler's console driver and when i opened the rtems driver file
it said this:
* WARNING: In sis 1.6, it did not appear that the UART interrupts
* worked in a desirable fashion. Immediately upon writing
* a character into the TX buffer, an interrupt was generated.
* This did not allow enough time for the program to put more
* characters in the buffer. So every character resulted in
* "priming" the transmitter. This effectively results in
* in a polled console with a useless interrupt per character
* on output. It is reasonable to assume that input does not
* share this problem although it was not investigated.
So, can it be that some bytes are lost / not written to the hardware buffer
because each byte causes an interrupt?
On Fri, Sep 24, 2010 at 3:04 AM, Eric Norum <wenorum at lbl.gov> wrote:
> On Sep 23, 2010, at 6:29 PM, Chris Johns wrote:
> > On 23/09/10 7:52 PM, Jo?o Rasta wrote:
> >> Thanks Chris, there are still two things i don't understand:
> >> 1) When transmitting, the behaviour i expect from the rtems software
> >> buffer is that bytes are read from it one by one and passed to the uart
> >> hardware buffer and then serialized to the serial line. This software
> >> buffer is the raw_output buffer and the cooked buffer will not be used
> >> in this case. Is this correct?
> > It depends on the termios configuration you use. This link may help:
> > The section "Non-Canonical Mode Input Processing" is important for you.
> It is sometimes referred to as 'raw-mode'.
> > Some drivers can take more than one character at a time. If you have the
> output cooked it will be buffered into the cooked buffer and transferred to
> the output buffer when a LF or flush happens.
> AFAIK the cooked buffer is for input only. It's size determines the
> maximum line length that can be handled. The raw input buffer holds
> characters directly from the seial port. The cooked buffer holds the
> characters after erase/kill processing.
> Eric Norum
> wenorum at lbl.gov
-------------- next part --------------
An HTML attachment was scrubbed...