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.

关于EDMA3 例子中一段代码的疑问



    /* Interrupt enable (Bits 0-1)  for the global region interrupts */

    regionIntr.region = CSL_EDMA3_REGION_GLOBAL;

    regionIntr.intr   = 0x3;

    regionIntr.intrh  = 0x0000;

    CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_INTR_ENABLE,&regionIntr);

 

    /* Trigger channel */

    CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_SET,NULL);

 

    regionIntr.region = CSL_EDMA3_REGION_GLOBAL;

    regionIntr.intr   = 0;

    regionIntr.intrh  = 0;

 

    /* Poll on IPR bit 0 */

    do {

        CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,&regionIntr);

    } while (!(regionIntr.intr & 0x1));

 

    /* Clear the pending bit */

    CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_INTRPEND_CLEAR,&regionIntr);

 

    /* Trigger Channel */

    CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_SET,NULL);

 

    /* Poll on IPR bit 2 */

    do {

        CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,&regionIntr);

    } while (!(regionIntr.intr & 0x2);

1.首先中断使能那一块代码中.intr=0x3这表达的是什么意思,我参考手册这应该是使能你所要open的channel的中断,而这个例子里是将所有的channel都打开一遍,为什么使能的却是0,1通道。

2.差不多的问题,在Poll on IPR bit 1和Poll on IPR bit 2中,调用这个函数,我只打开了一个channel而已,为什么要poll两次,而且是第一位和第二位?