This is the mail archive of the ecos-discuss@sourceware.org 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]
Other format: [Raw text]

Re: how to handle missed interrupt issue?


> 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


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