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问题咨询

Ti的工程师们你们好!我在6678评估板上测试C:\ti\edma3_lld_02_11_05_02\examples\CSL2_DAT_DEMO\src下的代码。在使用

EDMA3_DRV_requestChannel(DAT_EDMA3LLD_hEdma,&chaNum, &tccNum,(EDMA3_RM_EventQueue)DAT_EDMA3LLD_HW_EVT_QUEUE_ID,NULL , NULL))申请QDMA传输通道时,在申请第二个QDMA通道式出错,通道没有申请成功,程序无法运行。但在C:\ti\edma3_lld_02_11_05_02\examples\CSL2_DAT_DEMO\src\csl2_dat.c中是申请了四个QDMA通道的,在单独使用EDMA3_DRV_requestChanne申请QDMA通道测试中也只能申请一个通道成功,在申请第二个QDMA通道式返回申请出错。

  • 请单步跟进去debug一下看在哪里出错了?
  • 通道申请错误是在C:\ti\edma3_lld_02_11_05_02\examples\CSL2_DAT_DEMO\src\csl2_dat.c下的EDMA3_DRV_requestChannel()这个函数,现在只能申请一个QDMA通道,申请第二个QDMA通道时出错。
    for(i=0; i < DAT_EDMA3LLD_numAllocatedChannels; i++) {
    chaNum = EDMA3_DRV_QDMA_CHANNEL_ANY;
    tccNum = EDMA3_DRV_TCC_ANY;

    /*
    * EDMA3 DRV call to request for channel and tcc resources
    */
    if (EDMA3_DRV_SOK != EDMA3_DRV_requestChannel(DAT_EDMA3LLD_hEdma,
    &chaNum, &tccNum,
    (EDMA3_RM_EventQueue)DAT_EDMA3LLD_HW_EVT_QUEUE_ID,
    NULL /*(EDMA3_RM_TccCallback)&_transferComplete*/, NULL)) {

    /*
    * Error requesting channels, Clean up all channels requested so far
    */
    for(j = i-1; j >=0; j--) {
    EDMA3_DRV_freeChannel(DAT_EDMA3LLD_hEdma,
    DAT_allocatedChannels[j].paramNo);
    DAT_allocatedChannels[i].paramNo = DAT_INVALID_ID;
    DAT_allocatedChannels[i].tccNo = DAT_INVALID_ID;
    }

    if (EDMA3_DRV_SOK != EDMA3_DRV_close(DAT_EDMA3LLD_hEdma, NULL)){
    printf("Error closing DRV instance \n");
    }
    else {
    if (EDMA3_DRV_SOK != EDMA3_DRV_delete(DAT_EDMA3LLD_HW_INST_ID,
    NULL)){
    printf("Error deleting EDMA3 DRV\n");
    }
    }

    DAT_EDMA3LLD_openFlag = 0;
    return 0;
    }
    代码中DAT_EDMA3LLD_numAllocatedChannels为4,在第二次for循环时 EDMA3_DRV_requestChannel()返回-133,QDMA申请错误,程序进入if循环清除通道和错误位。
  • 现在想确定一下EDMA3_LLD库中的通道申请函数EDMA3_DRV_requestChannel()能不能申请2个及以上的QDMA通道,我现在测试的是QDMA申请第二个申请不成功,DMA通道在申请第三个时不成功。