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: ISR occurs, but DSR does not.


"Trenton D. Adams" wrote:
> 
> Whenever I enable the card by setting the card Enable bit in one of the
> CL-PS6700 registers, the system hangs.  I eject the card, and my threads
> resume.
> 
> I now have new data to add to the problem since I had a long weekend! :)
> 
> I re-insert the card, and the system hangs again.  I eject the card
> again, and my threads resume again. This occurs over and over.
> 
> Before the weekend I put CYG_TRACExx lines in my DSRs, but not in the
> ISRs because I assumed that my DSRs would always be reached.
> 
> I have now put the trace lines in my ISRs too.  My ISRs are reached but
> my DSRs are not.  I need to know what might be happening.  If no one
> knows off hand, just point me to the appropriate source code for
> interrupt handling.
> 
> This only occurs if I try to enable the card.  I don't know how working
> with the PCMCIA controller could possibly affect eCos' interrupt
> handling, but it must be some how.  Also, my interrupts occur normally
> without setting the enable bit.
> 
> Could this happen for some reason because of the fact that the CL-PS6700
> has IRQ registers as well?

At a guess the interrupt is not being acked properly causing it to loop
doing the ISR because it will keep regenerating the interrupt when
interrupts are re-enabled. 

Also you have to return CYG_ISR_HANDLED|CYG_ISR_CALL_DSR from your ISR for
it to call the DSR.

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
Come to the Red Hat TechWorld open source conference in Brussels!
Keynotes, techie talks and exhibitions    http://www.redhat-techworld.com/


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