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.

Clearing an Event Combiner interrupt via SYS/Bios functions

Other Parts Discussed in Thread: SYSBIOS

Hi,

I'm currently trying to rewrite interrupt functions in a C6670 project to use SYS/Bios instead of the CSL Intc .
Most of the stuff worked fine, but now I have an interrupt that gets called by an Event Combiner event.

I want to rewrite this event combiner interrupt to use SYS/Bios i.e. ti.sysbios.family.c64p.EventCombiner

static CSL_IntcRegs        *IntcRegs = (CSL_IntcRegs *) CSL_CGEM0_5_REG_BASE_ADDRESS_REGS;
// combined event to know which incoming EDMA gets triggered
interrupt void
Aif2_RadT_Sevt0_5_FSEVT2_7_ISR(  void )
{
    volatile Uint32 intFlag = IntcRegs->MEVTFLAG[3];

    while(intFlag)
    {
        IntcRegs->EVTCLR[3] = intFlag;
        AIF_fsyncEvent2_7Count
        (
            intFlag
        );
        //make sure all pending events are handled before return
        intFlag = IntcRegs->MEVTFLAG[3];
    }
}

In my understanding of SYS/Bios I do not care about the Mask Event Flag(MEVTFLAG)/ Event Clear(EVTCLR) Register, because SYS/Bios will handle that for me via the Hardware Abstraction Layer. Is this assumption correct?


Thanking you in anticipation,

Sebastian

  • Hi Sebastian,

    I believe your assumption is correct. If you look at the implementation of EventCombiner functions in the file 'bios_x_xx_xx_xx\packages\ti\sysbios\family\c64ppackagesEventCombiner.c' you will notice that the APIs handle both the Event Clear register and the Event Mask register.