From: "Laurie Gellatly" <laurie.gellatly@netic.com>
To: "Grant Edwards" <grante@visi.com>, <ecos-discuss@sources.redhat.com>
Subject: RE: [ECOS] Re: Uart missing chars when in Release
Date: Mon, 28 Jan 2008 00:11:00 -0000 [thread overview]
Message-ID: <OBEELMDOHGDFDEMJCJCJCEOEMIAA.laurie.gellatly@netic.com> (raw)
In-Reply-To: <fni9g8$5ab$1@ger.gmane.org>
Hi Grant,
> >>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.
In the switch statement the (RDA)ISR_Rx case simply fell through
to the (CTI) ISR_RxTO case and a single character was read from RHR.
> > 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.
I'm using 8 at present so I have an additional 8 char times (to make
16 in the FIFO) to service the first 8.
>
> >>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.
Its using the generic serial driver from devs/serial/generic/16x5x
> > 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.)?
Yeah, I thought this was strange as well. After I slept on it I
found that the Rx Line Status Interrupt was not enabled....
Now I see I'm getting OE.
...Laurie:{)
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
next prev parent reply other threads:[~2008-01-28 0:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-25 4:16 [ECOS] Re: Half Duplex RS485 wangcui
2008-01-26 20:41 ` Laurie Gellatly
2008-01-28 10:34 ` wangcui
2008-01-27 4:52 ` [ECOS] Uart missing chars when in Release Laurie Gellatly
2008-01-27 5:14 ` [ECOS] " Grant Edwards
2008-01-27 6:46 ` Laurie Gellatly
2008-01-27 9:54 ` Grant Edwards
2008-01-27 11:20 ` Laurie Gellatly
2008-01-27 15:55 ` Grant Edwards
2008-01-28 0:11 ` Laurie Gellatly [this message]
2008-01-28 2:37 ` Grant Edwards
2008-01-28 5:53 ` Laurie Gellatly
2008-01-28 15:58 ` Grant Edwards
2008-01-28 20:40 ` Grant Edwards
2008-01-29 23:35 ` Byron Jacquot
2008-02-06 9:35 ` Laurie Gellatly
2008-02-06 15:25 ` Grant Edwards
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=OBEELMDOHGDFDEMJCJCJCEOEMIAA.laurie.gellatly@netic.com \
--to=laurie.gellatly@netic.com \
--cc=ecos-discuss@sources.redhat.com \
--cc=grante@visi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).