This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FFTC - End of Interrupt value

Hi,

I am trying to generate an end of packet interrupt on the fftc input queue 0.

The interrupt is working, but I cannot find the correct value for the EOI value. Where can I find it?

Thanks,

Sebastian

This is what my ISR looks like:

void fftc_compl_isr(uint32_t arg)
{
    /*
     * Read the FFTC_ERROR_INTERRUPT_ENABLED_STATUS_REGISTER
     * to determine the source of the interrupt
     */
    CSL_FftcRegs* fftc_regs=CSL_FFTC_A_CONFIG_REGS;

    if( CSL_FEXT(fftc_regs->ERROR_EN_STAT, FFTC_ERROR_STAT_INT_ON_EOP_STATUS_T0) )
    {
         [...]
    };

    /* After performing necessary tasks to service the interrupt
     * the application should write a ‘1’ to the bit position
     * corresponding to the interrupt source in the
     * FFTC_ERROR_INTERRUPT_CLEAR_REGISTER to clear the
     * FFTC_ERROR_INTERRUPT_RAW_STATUS_REGISTER
     */

    fftc_regs->ERROR_CLR=fftc_regs->ERROR_EN_STAT;

    /*
     * If the ‘HALTED’ bit in the FFTC_STATUS_REGISTER
     * is set then the application should set either the ‘RESET’ or
     * ‘CONTINUE’ bit of the FFTC_CONTROL_REGISTER
     */


    /*
     * Finally it should write an appropriate value to the
     * FFTC_END_OF_INTERRUPT_REGISTER to re-enable the interrupts.
     */
    Fftc_LldObj *pFFTCLldObj = Fftc_getLLDObject(hFFTC);
    Fftc_writeEoiReg (pFFTCLldObj, 1/*???????????*/);
}

  • I found the solution in the C6670 user guide.

    It is a note in Chapter 7.9.1 "Interrupt Sources and Interrupt Controller":

    Note—Modules such as FFTC, TCP3d, TCP3e, TAC, AIF, CP_MPU, BOOT_CFG, and Tracer have level
    interrupts and EOI handshaking interface. The EOI value is 0 for TCP3d, TCP3e, TAC, AIF, CP_MPU,
    BOOT_CFG, and Tracer. For FFTC, the EOI values are 0 for FFTC_x_INTD0, 1 for FFTC_x_INTD01, 2
    for FFTC_x_INTD2, and 3 for FFTC_x_INTD3 (where FFTC_x can be either FFTC_0 or FFTC_1).

    EOI value <= input queue number [0..3]