public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Grant Edwards <grante@visi.com>
To: ecos-discuss@sources.redhat.com
Subject: [ECOS]  Re: Uart missing chars when in Release
Date: Sun, 27 Jan 2008 15:55:00 -0000	[thread overview]
Message-ID: <fni9g8$5ab$1@ger.gmane.org> (raw)
In-Reply-To: <OBEELMDOHGDFDEMJCJCJGEOAMIAA.laurie.gellatly@netic.com>

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

  reply	other threads:[~2008-01-27 15:55 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 [this message]
2008-01-28  0:11             ` Laurie Gellatly
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='fni9g8$5ab$1@ger.gmane.org' \
    --to=grante@visi.com \
    --cc=ecos-discuss@sources.redhat.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).