This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Serial overruns


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]