[ECOS] how to handle missed interrupt issue?

Andrew Lunn andrew@lunn.ch
Thu Feb 5 15:00:00 GMT 2009


> Now I want implement function to change circular buffer pointer,
> but if I do such simple thing:
> cyg_drv_isr_lock()
> change pointer
> cyg_drv_isr_unlock()
> 
> there is probability that I lost interrupt between cyg_drv_isr_lock()
> and cyg_drv_isr_unlock(),

You should not loose the interrupt. The interrupt controller will
still capture the interrupt during the period interrupts are
disabled. Once interrupts are enabled again you then get the
interrupt. 

The only problem you have is if more than one interrupt occurs from
the same device during the time interrupts are disabled. After
interrupts are enabled again you only get one interrupt from the
interrupt controller. 

          Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list