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]
Other format: [Raw text]

Re: Problem with spurious interrupt on ARM


Hi

Two things to check:

Hardware problem. Your interrupt controller has caused an interrupt,
but when the SW reads the interrupt controller register to find out
what caused the interrupt, the controller does not indicate a
source. Do you have the correct type of interrupts, ie level vs edge
triggered? Is the controller configured correctly for this sort of
interrupt?

Software problem: You have a race condition somewhere, which is
causing the interrupt to be cleared between the Interrupt happening
and the SW reading the interrupt controller registers. This could
happen if rather than one interrupt, you get an interrupt storm.

Do you have de-bounce logic on your switch?

   Andrew

On Fri, Aug 30, 2002 at 11:03:20AM +0200, Morten Laursen wrote:
> Hi,
> 
> I sometimes receive a spurious interrupt (hal_IRQ_handler() returns
> CYGNUM_HAL_INTERRUPT_NONE). After that happens my DSR is no longer called,
> although it's dsr_count is 1.
> 
> More specific what happens is:
> * I press a button causing an interrupt
> * the interrupt is reconfigured to happen when the button is released.
> * I release the button
> * When the button is released I receive a spurious interrupt before the
> button's ISR is called.
> * The button's ISR is called and returns CYG_ISR_CALL_DSR
> * The DSR is NOT invoked
> 
> eCos is configured to ignore spurious interrupts. I have tried using both
> linked lists and fixed-size tables for the DSRs.
> 
> 
> Any suggestions to solutions would be much appreciated!
> 
> Venlig Hilsen / Regards 
> Morten
> 
> -- 
> Morten Laursen, M.Sc.S.E.
> RTX Telecom A/S - http://www.rtx.dk/
> Direct phone: (+45) 96 32 24 03
> 
> 
> -- 
> Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> and search the list archive: http://sources.redhat.com/ml/ecos-discuss
> 

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


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