This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Uart missing chars when in Release
On 2008-01-27, Laurie Gellatly <laurie.gellatly@netic.com> wrote:
>>At 117Kbps with no fifo, you have to service a receive
>>interrupt at a 11.7KHz or you lose bytes. That means you've
>>got to have an interrupt latency less than 85us.
>
> So I modified ser_16X5X.c to read FIFO threshold (1,4,8 or 14)
> characters worth when an RDA interrupt occurs.
What was it doing? The correct thing to do is to read all the
available characters each time an rx interrupt occurs.
> With it set to 8 that should give 8 times as long to service
> the interrupt.
Correct. If you're using a 16 byte fifo, you should have up to
(16-threshold) byte times to respond to an interrupt.
>>Does it stop dropping bytes at lower baud rates?
>
> Try that next.
If the problem goes a way an lower baud rates, that would be an
important clue.
>>Does it stop dropping bytes if there is no Ethernet traffic?
>
> Tried that. No difference.
What other interrupt sources are active? I wouldn't think the
timer tick would be an issue...
>>Running from flash is almost certainly slower, and I'd wager
>>that it increases the interrupt latency beyond what can be
>>tolerated by the serial interface's interrupt frequency.
>
> Maybe I should copy ISR or DSR to internal RAM or flash?
If it's a latency problem, you'd probably need to copy all ISRs
and DSRs to RAM (as well as any long-running functions called
by either of those).
>>> From what I've read, the OE gets cleared on each read of RBR.
>>> How can I check on this? Is there a counter of OE and other
>>> errors kept in eCos that I can access?
>
>>You've got the source code, you tell me. -- I don't know what
>>low-level driver you're using. If it doesn't have an OE
>>counter, you can add one: it's only a couple lines of code.
>
> Counted the errors - none were shown.
If there aren't any receive overrun errors, then interrupt
latency isn't the problem. There weren't any rx errors of any
sort (parity, framing, etc.)?
--
Grant Edwards grante Yow! Where's th' DAFFY
at DUCK EXHIBIT??
visi.com
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss