Hi,
I've succesfully build a microblaze system with external interrupt and my own IP core (using the opb slave template in the EDK). The interrupt is connected to a dip-switch. In the ISR I'm writing some data to my own IP core (which is an OPB slave). My OPB slave is reading some other dip-switches and put the result to some LEDs (yes I'm using an evaluation board ;). So far everything is ok. Now comes the problem: the expected behaviour is dependent of the code in the ISR. If I've the following ISR:
void dip_isr(void) { *(opb_mycore_base) = 0x12345678;
// Write the value of j to the LED // XGpio_DiscreteWrite(&gp_out, 0);
#ifdef USE_INTC XIntc_mAckIntr(XPAR_MY_INTC_BASEADDR, XPAR_SYSTEM_MY_INT_MASK); #endif }
it's not working. But if I enable the XGpio write, it is working. And at last, if I do the XGpio write first and than the write to the OPB slave (opb_mycore) it's again not working anymore. In all three situations, the code is coming in the ISR (I see that, because there is no output at the uart anymore, which is done in the main program).
I don't know what is happening. Can anybody help me?!
TIA, Frank