[ECOS] Enable EDB7xxx interrupts

Trenton D. Adams trent.nospam@telusplanet.net
Mon Jun 25 17:51:00 GMT 2001


> > > > 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.
> 
> Is EINT1 brought out anywhere on the board? Have you scoped 
> it? I take it PCCIRRx are registers that control whether or 
> not the pc card controller trips EINT1 on a card interrupt? 
> For PCIOSR you indicate that you can switch interrupts 
> between EINT1 and the fiq, have you tried setting up a 
> handler on the fiq to see if that is catching any of your 
> interrupts? Is EINT1 shared on that board? Is it possible 
> that something else is holding it in limbo? From the cirrus 
> web page, the cl-ps6700 can only be clocked at 13 or 18mHz, i 
> take it your bus speed is adjusted appropriately? It might 
> help if you included your definitions for PCCIRR1, PCPMR, 
> PCSICR, PCIOSR, and a brief snippet of the output from your 
> program. Also, out of convention, it's a bit more clear if 
> you use the pin definitions in hal_edb7xxx.h, such as 
> SYSCON2_PCMCIA1 instead of 0x020.
> 
> In general your interrupt usage looks ok, i would be more 
> suspicious about the setup of the controller or the hardware 
> than eCos interrupt management.

Thanks for the reply

PCCIRR = PC Card Interrupt Reserved Register
	These need to be set to all 1s in order for interrupts to be
enabled.
PCIOSR = PC Card Interrupt Output Select
	This register selects which interrupts are output to what line.
Eg EINT1
PCICR = PC Card Interrupt Clear Register

I've got eCos set to 18Mhz on top of doing it manually in my code.  The
line with SYSCON3 does this.  But, as I said, eCos is set for 18Mhz
anyhow.

I'm pretty sure EINT1 is not shared.  If it is, it's eCos sharing it,
and I don't know if it is or not.

As for using the predefined values in edb7xxx header file, it's just a
testing program so I didn't bother.



More information about the Ecos-discuss mailing list