This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Atmel/AT91/ARM SERIAL PORT DRIVER REWRITTEN WITHHARDWARE BUFFERING
- From: Jesper Skov <jskov at redhat dot com>
- To: psheer <psheer at icon dot co dot za>
- Cc: eCos Discuss <ecos-discuss at sources dot redhat dot com>
- Date: 16 Jan 2002 08:08:47 +0100
- Subject: Re: [ECOS] Atmel/AT91/ARM SERIAL PORT DRIVER REWRITTEN WITHHARDWARE BUFFERING
- References: <200201152340.g0FNetw21227@mail.redhat.com>
On Wed, 2002-01-16 at 02:40, psheer wrote:
> The solution is to use the PDC in both directions,
> disable RXRDY/TXRDY interrupts entirely, and insert
> some REALLY fast flip buffer routine inside eCos's
> main interrupt handler.
And because it's the _main_ (ARM) eCos interrupt handler, there's no way
we could accept that code.
The correct way to resolve the interrupt latency issue is to make the
serial interrupt a FIQ (if possible) and write a separate handler for
it. I'm sure it'll require a lot more surgery to get right (the addition
of special FIQ handling has been discussed before on this list), but
it'd have a chance of being included.
Alternatively (and properly better in the long run), we could make the
call to hal_IRQ_handler in vectors.S a macro that can be overriden by
platforms. A platform like the AT91 could then provide their own
implementation of the function.
Jesper