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]

RE: Serial overruns


I have had problems with serial overruns on the ARM Integrator platform
running at 57600 bps. Enabling flow control made no difference. Also the Rx
FIFO threshold is fixed at 8 in the ARM Prime Cell UARTs.

I added an extra interim buffer of 256 bytes between the ISR and the DSR -
this improved the situation but did not eliminate the overruns.

The problem only occurred when running out of Flash memory; I ended up
putting the problem down to the 'interesting' bus FIFO implementation which
buffers up accesses from the CPU module. The solution ended up being
bootstrapping the code to RAM first.

In your case, I would suggest perhaps trying the interim buffer approach.
What platform are you using?

Regards,

Robert Cragie
Design Engineer
Jennic Ltd.
Furnival Street
Sheffield
S1 4QT
United Kingdom
Tel: +44 (0) 114 281 4512
Fax: +44 (0) 114 281 2951
mailto:rcc@jennic.com
http://www.jennic.com


> -----Original Message-----
> From: ecos-discuss-owner@sources.redhat.com
> [mailto:ecos-discuss-owner@sources.redhat.com]On Behalf Of Matt Holgate
> Sent: 17 September 2001 18:33
> To: ecos-discuss@sources.redhat.com
> Subject: [ECOS] 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]