PowerPC interrupt

Jul 06, 2005 4 Replies

Hallo everyone.



I have a simple ( but strange) problem. I am making a PLB interface for a decoder and I would like to implement the readiness of an output as an interrupt. Well, in the MHS file, I have connected the interrupt port of the decoder to the external interrupt port of the PowerPC, added the Interrupt handler routine in the MSS file. And also I tried the dynamic reegistering of the interrupt handler using the Register handler function. But somehow, the interrupt is still not working.



XExc_RegisterHandler(XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler)PLB_DECODER_Intr_DefaultHandler,(void



*)XPAR_PLB_DECODER_0_BASEADDR);

Well I have read somewhere that in the Linker Script file, I have to align the vector table to a 64k boundary and I did it as well. But still its not working. Note: PLB_DECODER_Intr_DefaultHandler() function, I have it in the main program file. Could someone help



Joey PS: I am using a VirtexIIPro board from Memec


Hi,

did you call the exception init function (XExc_init() ) which assigns the vectortable to the evpr register?

How does you c-code looks like?

schrieb im Newsbeitrag news: snipped-for-privacy@webx.sUNCHnE...

vectortable to the evpr register?

Yes I did. Here is how it lokks like !! XExc_Init(); // Register external interrupt handler XExc_RegisterHandler(XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler)PLB_DECODER_Intr_DefaultHandler,(void

*)XPAR_PLB_DECODER_0_BASEADDR); // Enable PPC non-critical interrupts XExc_mEnableExceptions(XEXC_NON_CRITICAL);

enable_decoder_interrupts(XPAR_PLB_DECODER_0_BASEADDR);

Hi,

how is the interrut signal specified? As low or high activ edge/level ?

How does the mhs file look like?

"Andi" schrieb im Newsbeitrag news: snipped-for-privacy@webx.sUNCHnE...

Its level high. NO Device ISC is used and the interrupt capture mode is INTR_PASS_THRU. Here is the part of the MHS File.

BEGIN ppc405 PARAMETER INSTANCE = ppc405_0 PARAMETER HW_VER = 2.00.c BUS_INTERFACE DPLB = plb BUS_INTERFACE IPLB = plb BUS_INTERFACE JTAGPPC = jtagppc_0_0 PORT RSTC405RESETCHIP = RSTC405RESETCHIP PORT C405RSTSYSRESETREQ = C405RSTSYSRESETREQ PORT C405RSTCORERESETREQ = C405RSTCORERESETREQ PORT C405RSTCHIPRESETREQ = C405RSTCHIPRESETREQ PORT PLBCLK = sys_clk_s PORT RSTC405RESETCORE = RSTC405RESETCORE PORT RSTC405RESETSYS = RSTC405RESETSYS PORT CPMC405CLOCK = sys_clk_s PORT EICC405EXTINPUTIRQ = EICC405EXTINPUTIRQ END

BEGIN plb_decoder PARAMETER INSTANCE = plb_decoder_0 PARAMETER HW_VER = 1.00.a PARAMETER C_BASEADDR = 0x90000000 PARAMETER C_HIGHADDR = 0x900003ff BUS_INTERFACE SPLB = plb PORT PLB_Clk = sys_clk_s PORT IP2INTC_Irpt = EICC405EXTINPUTIRQ END

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required