Hello. I have a problem with use opb_intc in my projekt In mhs: # External Interrupts PORT IrqSecond_pin = IrqSecond, DIR = I, SIGIS = Interrupt, SENSITIVITY = LEVEL_HIGH PORT IrqPci_pin = IrqPci, DIR = I, SIGIS = Interrupt, SENSITIVITY = LEVEL_HIGH PORT IrqFrame_pin = IrqFrame, DIR = I, SIGIS = Interrupt, SENSITIVITY = LEVEL_HIGH
BEGIN ppc405 PARAMETER INSTANCE = ppc405_0 PARAMETER HW_VER = 2.00.c BUS_INTERFACE JTAGPPC = jtagppc_0_0 BUS_INTERFACE IPLB = plb BUS_INTERFACE DPLB = plb PORT PLBCLK = sys_clk_s PORT C405RSTCHIPRESETREQ = C405RSTCHIPRESETREQ PORT C405RSTCORERESETREQ = C405RSTCORERESETREQ PORT C405RSTSYSRESETREQ = C405RSTSYSRESETREQ PORT RSTC405RESETCHIP = RSTC405RESETCHIP PORT RSTC405RESETCORE = RSTC405RESETCORE PORT RSTC405RESETSYS = RSTC405RESETSYS PORT CPMC405CLOCK = proc_clk_s PORT EICC405EXTINPUTIRQ = opb_intc_interrupt END
BEGIN opb_iic PARAMETER INSTANCE = Generic_IIC_Bus PARAMETER HW_VER = 1.02.a PARAMETER C_CLK_FREQ = 100000000 PARAMETER C_BASEADDR = 0x40800000 PARAMETER C_HIGHADDR = 0x4080ffff BUS_INTERFACE SOPB = opb PORT Scl_O = fpga_0_Generic_IIC_Bus_Scl_O PORT Sda_I = fpga_0_Generic_IIC_Bus_Sda_I PORT Sda_O = fpga_0_Generic_IIC_Bus_Sda_O PORT IP2INTC_Irpt = irq_iic END
BEGIN opb_intc PARAMETER INSTANCE = opb_intc_0 PARAMETER HW_VER = 1.00.c PARAMETER C_BASEADDR = 0x43e14000 PARAMETER C_HIGHADDR = 0x43e140ff BUS_INTERFACE SOPB = opb PORT Irq = opb_intc_interrupt PORT Intr = irq_iic & IrqFrame & IrqPci & IrqSecond END
In mss: PARAMETER VERSION = 2.2.0 PARAMETER int_handler = ext_int_handler, int_port = IrqSecond PARAMETER int_handler = ext_int_handler, int_port = IrqPci PARAMETER int_handler = ext_int_handler, int_port = IrqFrame
In programm: /* Initialize exception handling */ XExc_Init();
/* Register external interrupt handler */ XExc_RegisterHandler(XEXC_ID_NON_CRITICAL_INT, (XExceptionHandler)XIntc_DeviceInterruptHandler, (void *)0);
/* Connect interrupt handler that will be called when an interrupt occurs */ XIntc_RegisterHandler(XPAR_OPB_INTC_0_BASEADDR,0, (XInterruptHandler)IrqSecondHandler, (void *)0); XIntc_RegisterHandler(XPAR_OPB_INTC_0_BASEADDR,1, (XInterruptHandler)IrqPciHandler, (void *)0); XIntc_RegisterHandler(XPAR_OPB_INTC_0_BASEADDR,2, (XInterruptHandler)IrqFrameHandler, (void *)0); XIntc_RegisterHandler(XPAR_OPB_INTC_0_BASEADDR,3, (XInterruptHandler)IrqIicHandler, (void *)0);
/* Start the interrupt controller */ XIntc_mMasterEnable(XPAR_OPB_INTC_0_BASEADDR);
/* Enable interrupts in the interrupt controller */ XIntc_mEnableIntr(XPAR_OPB_INTC_0_BASEADDR, 0x1|0x2|0x4|0x8);
/* Enable PPC non-critical interrupts */ XExc_mEnableExceptions(XEXC_NON_CRITICAL);
Where error?