This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Enable EDB7xxx interrupts
- To: "'Jonathan Larmour'" <jlarmour at redhat dot com>
- Subject: RE: [ECOS] Enable EDB7xxx interrupts
- From: "Trenton D. Adams" <tadams at extremeeng dot com>
- Date: Mon, 25 Jun 2001 14:46:59 -0600
- Cc: "'Gary Thomas'" <gthomas at cambridge dot redhat dot com>,"'Lewin A.R.W. Edwards'" <larwe at larwe dot com>,"'eCos discussion'" <ecos-discuss at sources dot redhat dot com>
- Organization: Extreme Engineering
> > >
> > > 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