各位老师好:
我在将例程 fftcMCK2LC66BiosExampleProject 从一个FFTC处理数据 修改为 FFTC_0和FFTC_1同时处理数据时,RX打不开,可能是RXOBJ_1配置中rxCfg_1.cppiRxQNum= myQNum; 错误,所以 FFTC_1 与DSP 之间的 QUEUE channel 是多少 ? 希望老师给够详细解答。
rxobj_1配置代码如下:
switch (coreNum)
{
case 0:
{
myQNum = 712;
destQNum = 713;
accChanNum = FFTC_RX_ACC_CHANNEL_NUM;
break;
}
case 1:
{
myQNum = 713;
destQNum = 714;
accChanNum = FFTC_RX_ACC_CHANNEL_NUM + 1;
break;
}
case 2:
{
myQNum = 714;
destQNum = 715;
accChanNum = FFTC_RX_ACC_CHANNEL_NUM + 2;
break;
}
case 3:
{
myQNum = 715;
destQNum = 712;
accChanNum = FFTC_RX_ACC_CHANNEL_NUM + 3;
break;
}
default:
goto error;
}
memset (&rxCfg_1, 0, sizeof (rxCfg_1));
rxCfg_1.useFlowId = -1;
rxCfg_1.bManageRxFlowCfg = 1; /* Let the driver do Rx FDQ management */
rxCfg_1.rxFlowCfg.drvCfg.descType = Cppi_DescType_HOST;
rxCfg_1.rxFlowCfg.drvCfg.cppiNumDesc = 2;
rxCfg_1.rxFlowCfg.drvCfg.bufferSize = (pFFTAppCfg->numOutputSamples * FFTC_SAMPLE_SIZE + 4) * pFFTAppCfg->numBlocks + 4;
rxCfg_1.rxFlowCfg.drvCfg.bPSInfoPresent = 0;
rxCfg_1.rxFlowCfg.drvCfg.psLocation = Cppi_PSLoc_PS_IN_SOP;
rxCfg_1.cppiRxQNum = myQNum;
rxCfg_1.bUseInterrupts = 1;
rxCfg_1.bManageAccumList = 1; /* Let driver do the ISR/Accum handling */
rxCfg_1.accumCfg.drvCfg.bEnablePacing = 0;
rxCfg_1.accumCfg.drvCfg.intThreshold = 1;
rxCfg_1.accumCfg.drvCfg.accChannelNum = accChanNum;
rxCfg_1.bBlockOnResult = 1;
if ((hRxObj_1 = Fftc_rxOpen (hFFTC_0, &rxCfg_1)) == NULL)
{
System_printf ("[Core %d]: 1 Rx object open failed \n", coreNum);
goto error;
}
else
{
System_printf ("[Core %d]: 1 Rx flow %d opened successfully using Rx queue %d \n", coreNum,
Fftc_rxGetFlowId (hRxObj_1), Fftc_rxGetRxQueueNumber (hRxObj_1));
}