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


>
> 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.

I think putting it down to the simpler FLASH has more wait states than RAM
so is slower so the ISR takes longer to run so it drops bytes? that's what
I put similiar problems on my own internal ARM board down to :-)

I made the ROMRAM patches that I contributed back for that reason
(Jonathan?? :-)

Dave.

>
> 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
> >
> >
> >
> >
> >
> >
> >
>

-- 
      David Airlie, Software Engineer, Parthus Technologies plc.,
       Mary Rosse Centre, National Tech Park, Limerick, Ireland.
   t: +353-61-508116 / f: +353-61-508101 / David.Airlie@parthus.com


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