Hi,
I'm using the TMS320C6670 to process a FFT in your coprocessor. I changed the FFT_Multicore_example_Project to use a single core to transmit and receive data from FFTC.
But, I found a problem when I want to use the Fftc_txClose() function. In execution of this function the console prints this message:
ti.sysbios.heaps.HeapMem: line 339: assertion failure: A_invalidFree: Invalid free
My configuration of tx is:
memset (&txCfg, 0, sizeof (txCfg));
txCfg.txQNum = (Fftc_QueueId) txQNum;
txCfg.bManageReqBuffers = 1;
txCfg.bEnableDftSizeListCfg = 1;
txCfg.maxDftSizeListLen = pFFTAppCfg->numBlocks;
txCfg.fftQCfg = pFFTAppCfg->fftcQCfg;
txCfg.bSharedMode = 1;
txCfg.descType = Cppi_DescType_HOST;
txCfg.cppiNumDesc = 1;
txCfg.bPSInfoPresent = 0;
txCfg.bufferSize = pFFTAppCfg->numInputSamples * FFTC_SAMPLE_SIZE * pFFTAppCfg->numBlocks;
And rx is:
memset (&rxCfg, 0, sizeof (rxCfg));
rxCfg.useFlowId = -1;
rxCfg.bManageRxFlowCfg = 1;
rxCfg.rxFlowCfg.drvCfg.descType = Cppi_DescType_HOST;
rxCfg.rxFlowCfg.drvCfg.cppiNumDesc = 2;
rxCfg.rxFlowCfg.drvCfg.bufferSize = (pFFTAppCfg->numOutputSamples * FFTC_SAMPLE_SIZE + 4) * pFFTAppCfg->numBlocks + 4;
rxCfg.rxFlowCfg.drvCfg.bPSInfoPresent = 0;
rxCfg.rxFlowCfg.drvCfg.psLocation = Cppi_PSLoc_PS_IN_DESC;
rxCfg.cppiRxQNum = -1;
rxCfg.bBlockOnResult = 1;
rxCfg.bUseInterrupts = 1;
rxCfg.bManageAccumList = 1; /* Let driver do the Accum Management */
rxCfg.accumCfg.drvCfg.bEnablePacing = 0; /* Disable pacing */
rxCfg.accumCfg.drvCfg.intThreshold = 1; /* Set interrupt threshold to 1 */
Fftc_getDeviceAccumulatorConfig (CSL_FFTC_A, &rxCfg.accumCfg.drvCfg.accChannelNum, &rxCfg.cppiRxQNum);
All the program is working fine, but when try to close the tx the problem occurs.
Any idea about this problem?
thanks
Marcus