This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Serial overruns
- To: Robert Cragie <rcc at jennic dot com>
- Subject: Re: [ECOS] Serial overruns
- From: Jonathan Larmour <jlarmour at redhat dot com>
- Date: Wed, 19 Sep 2001 20:38:06 +0100
- Cc: Matt Holgate <matt at dcs dot gla dot ac dot uk>,ecos-discuss at sources dot redhat dot com
- Organization: Red Hat UK Ltd.
- References: <NDBBLOIOMLKELOJBAPAGEECOCJAA.rcc@jennic.com>
Robert Cragie wrote:
>
> (Incidentally, is it supposed to return CYG_ISR_HANDLED | CYG_ISR_CALL_DSR
> or just CYG_ISR_CALL_DSR at the end? The use seems inconsistent between
> platforms)
You set CYG_ISR_HANDLED to indicate that if we have chained interrupts, no
more chained ISRs should be called - this one has handled it. On many
platforms this is irrelevant because we know we are (or should be) the only
ISR on this vector, hence the inconsistent use. Although, generally you
would set it if setting CYG_ISR_CALL_DSR (I can't think of any situation
you wouldn't in fact).
When doing interrupt chaining the ISR should check whether the device
associated with the driver really is the one that caused the interrupt. We
should do this in the generic drivers really, conditionally on chained
interrupts.
> I am in the process of applying the equivalent changes to ser_16x5x.c, but I
> have no way of testing it. It's not quite as straightforward as the ARM
> Prime Cell UART to implement. If you'd like me to send you the completed
> file, let me know.
If you are considering sending this back to Red Hat, please be sure to make
it configurable - not every platform needs the extra complexity/buffer
space required.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine