F
Frank
Guest
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
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