> > > > > > Did you use the create_interrupt() mechanism to attach to this > > > interrupt? If not, the system will see it, treat it as > spurious and > > > simply clear and ignore it. > > > > I do the following in cyg_user_start () > > cyg_interrupt_enable (); > > No need to do this. In fact probably best not to. It'll be > done later when the scheduler starts. > > > cyg_interrupt_create (CYGNUM_HAL_INTERRUPT_EINT1, 99, 0, > > InterruptHandler, 0, &hIntr, &intr); > > cyg_interrupt_attach (hIntr); > > cyg_interrupt_acknowledge(CYGNUM_HAL_INTERRUPT_EINT1); > > cyg_interrupt_unmask(CYGNUM_HAL_INTERRUPT_EINT1); > > > > Inside InterruptHandler () I do the following > > cyg_interrupt_mask (CYGNUM_HAL_INTERRUPT_EINT1); > > cyg_interrupt_acknowledge (CYGNUM_HAL_INTERRUPT_EINT1); > > printf ("Interrupt Occured"); > > cyg_interrupt_unmask (CYGNUM_HAL_INTERRUPT_EINT1); > > You shouldn't need to mask or unmask it because global > interrupts are disabled in ISRs. > > > Then I have a thread that continuously prints out the PCMCIA > > controller interrupt information. > > > > Anyhow, the printf () in the interrupt handler never occurs. What > > could be wrong? > > A missing \n? For an interrupt handler it is _lots_ better to > use diag_printf from . printf is not interrupt safe. It's still not working. I took everything out as you suggested. I've attached my program.