This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: ISR's, DSR's and cyg_drv_interrupt_unmask()
- From: "David Airlie" <David dot Airlie at parthus dot com>
- To: "Recker, John" <john_recker at hp dot com>
- Cc: "'ecos-discuss at sources dot redhat dot com'" <ecos-discuss at sources dot redhat dot com>
- Date: 30 Mar 2002 18:49:48 +0000
- Subject: Re: [ECOS] ISR's, DSR's and cyg_drv_interrupt_unmask()
I worked on something similiar before, and there is an example in eCos
somewhere of putting a FIFO between the ISR and DSR, I've got a serial
driver for my internal platform that does something like this...
If you can't find the eCos one ( I think it is there) I can send you my
one.. it only modifies the 16x50 generic driver..
Dave.
On Fri, 29 Mar 2002, Recker, John wrote:
>
> I've been playing with the serial
> drivers for the EB40/AT91 recently
> trying to improve its reliability.
>
> One area that I think contributes to
> the driver dropping characters is that
> interrupts are not unmasked until both
> the ISR & DSR have completed their tasks.
> This is alot of instructions to process
> on HW that requires that interrupt response
> be within one character.
>
> However, it seems that if I call
> cyg_drv_interrupt_unmask() prior to
> exiting the ISR routine, then the DSR
> routine is never called. Is there a
> way around this? It certainly is
> straightforward to recode the DSR to
> eliminate re-entrancy problems.
>
> thanx,
>
> jr
>
>
--
David Airlie, Software Engineer, Parthus Technologies plc.,
Mary Rosse Centre, National Tech Park, Limerick, Ireland.
t: +353-61-508116 / f: +353-61-508101 / David.Airlie@parthus.com
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss