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.

AWR1843: EDMA in awr1843 mrr project

Part Number: AWR1843

HI

 Dear TI engineers, I'm developing our product by using awr1843, I use the mrr in  radar_toolbox_1_00_00_26 as the basic project.but I encounter a problem about EDMA in the project as follows:

/* using different event queue between input and output to parallelize better */
eventQueue = 1U;
/*
* EDMA configuration for storing 1d fft output in transposed manner to L3.
* It copies all Rx antennas of the chirp per trigger event.
*/


/* Ping - Copies from ping FFT output (even chirp indices) to L3 */
if (subframeIndx == 0)
{
chId = MRR_SF0_EDMA_CH_1D_OUT_PING;
}
else
{
chId = MRR_SF1_EDMA_CH_1D_OUT_PING;
}


retVal =
EDMAutil_configType2a(obj->edmaHandle[EDMA_INSTANCE_DSS],
(uint8_t *)(SOC_translateAddress((uint32_t)(&obj->fftOut1D[0]), SOC_TranslateAddr_Dir_TO_EDMA, NULL)),//cmplx16ReIm_t,fftOut1D 2 * obj->numRxAntennas * obj->numRangeBins
(uint8_t *)(&obj->radarCube[0]),
chId,
false,
shadowParam++,
BYTES_PER_SAMP_1D, //Acount
obj->numRangeBins, //Bcount //destinationBindex:numDopplerBins * numTxAnt * numRxAnt * sampleLenInBytes
obj->numTxAntennas * numChirpTypes,
obj->numRxAntennas, //Ccount //sourceCindex: (int16_t)(numRangeBins * sampleLenInBytes);
obj->numDopplerBins,
eventQueue,
NULL,
(uintptr_t)obj);
if (retVal < 0)
{
return -1;
}

/* Ping - Copies from pong FFT output (odd chirp indices) to L3 */
if (subframeIndx == 0)
{
chId = MRR_SF0_EDMA_CH_1D_OUT_PONG;
}
else
{
chId = MRR_SF1_EDMA_CH_1D_OUT_PONG;
}

retVal =
EDMAutil_configType2a(obj->edmaHandle[EDMA_INSTANCE_DSS],
(uint8_t *)(SOC_translateAddress((uint32_t)(&obj->fftOut1D[obj->numRxAntennas * obj->numRangeBins]),
SOC_TranslateAddr_Dir_TO_EDMA, NULL)),
(uint8_t *)(&obj->radarCube[0]),//??
chId,
false,
shadowParam++,
BYTES_PER_SAMP_1D,
obj->numRangeBins,
obj->numTxAntennas * numChirpTypes,
obj->numRxAntennas,
obj->numDopplerBins,
eventQueue,
NULL,
(uintptr_t)obj);
if (retVal < 0)
{
return -1;
}

in up two function about EDMAutil_configType2a, I doubt that the destination address for both ping and pong are the same "radarCube[0]", so every time pong transfers, it overwrites ping.  Is it I made a wrong unstanding?

or mybe it's a bug in the code and the dst address should be (uint8_t *)(&obj->radarCube[obj->numRxAntennas * obj->numDopplerBins]) for pong?   I'm looking forward for your replay