I have built up an application based on the sample code that came with the uPP Driver when I installed it. The application has been modified to do two 16 bit receives. I get the first of set interrupts (one interrupt for I and one interrupt for Q), but don't anymore interrupts after that. I reload the descriptors in the callback. Below is a code snippet from my EOW interrupt callback:
if (upp_isr_bit == CSL_UPP_UPISR_EOWI_MASK)
{
//bufferIndexA++;
if ((upp_reg_ptr->UPIS2 & CSL_UPP_UPIS2_PEND_MASK) == 0)
{
bufferIndexA++;
upp_xfer_a.windowAddr = &upp_buffer_a_16[bufferIndexA][0];
GIO_read(upph, &upp_xfer_a, NULL);
}
eowIFlag = 1;
}
if (upp_isr_bit == CSL_UPP_UPISR_EOWQ_MASK)
{
//bufferIndexB++;
if ((upp_reg_ptr->UPQS2 & CSL_UPP_UPQS2_PEND_MASK) == 0)
{
bufferIndexB++;
upp_xfer_b.windowAddr = &upp_buffer_b_16[bufferIndexB][0];
GIO_read(upph, &upp_xfer_b, NULL);
}
eowQFlag = 1;
}