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: Enable EDB7xxx interrupts


> > >
> > > 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 <cyg/infra/diag.h>. printf is not interrupt safe.
It's still not working.  I took everything out as you suggested.

I've attached my program.

pccontroller.c


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