PowerPC interrupt

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

Reply to
Joey
Loading thread data ...

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?

Reply to
00andiweb.de

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);

Reply to
Joey

Hi,

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

How does the mhs file look like?

Reply to
Andi

"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

Reply to
Joey

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.