This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Serial overruns


Hi,

I have a very simple application with two threads - one that reads from a
serial port into a circular buffer (the producer), and the other that
writes the data back out to the same serial port from the buffer (the
consumer). The effect should be that any data sent over the serial line is
echoed back. Mutexes and condition variables are used to synchronise the
two threads and protect the shared buffer.

The program runs fine if send a small amount of data down the serial line.
However, if I send more than 16 characters (the size of the FIFO in the
UART), then I get buffer overruns and only receive the first 16
characters.

I've enabled hardware flow control, although I'm pretty sure the problem
is that the serial DSR is not responding in time to keep up with the data
rate (only 38400 baud), rather than the eCos buffer overflowing (it is set
to the default size of 128 bytes).

I've no idea what the problem is, so any suggestions would be much
appreciated!

thanks,
Matt








Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]