F
Frank
Guest
Hi,
I've succesfully build a microblaze system with external interrupt and my
own IP core. 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
I've succesfully build a microblaze system with external interrupt and my
own IP core. 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