您好,
EDMAutil_configType1关于这种EDMA我已经确定其会在传输完成ping之后自动调用pong。我想请问一下:EDMAutil_configType2a,DMAutil_configType2b,EDMAutil_configType3这几种是否也会自动ping传输完成后自动调用pong。
下面是我以前提问所得到的答案的网址。IWR6843ISK: 关于EDMA搬移的问题 - 传感器论坛 - 传感器 - E2E 设计支持 (ti.com)。
谢谢您!
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.
您好,
EDMAutil_configType1关于这种EDMA我已经确定其会在传输完成ping之后自动调用pong。我想请问一下:EDMAutil_configType2a,DMAutil_configType2b,EDMAutil_configType3这几种是否也会自动ping传输完成后自动调用pong。
下面是我以前提问所得到的答案的网址。IWR6843ISK: 关于EDMA搬移的问题 - 传感器论坛 - 传感器 - E2E 设计支持 (ti.com)。
谢谢您!
你好,
从下面的代码里,我看到在68xx_Sense_and_Direct_HVAC_Control这个的demo获取adc buffer的edma是调用函数来触发的。关于其他几个edma的API,我建议你通过代码来了解他们是如何使用的。另,建议下次提问题的时候说明一下你看的代码的出处。
68xx_Sense_and_Direct_HVAC_Control\src\dss\dss_data_path.c
...
void MmwDemo_processChirp(MmwDemo_DSS_DataPathObj *obj)
{
uint32_t antIndx, baseIdx;
volatile uint32_t startTime;
if(obj->chirpCount > 1) //verify if ping(or pong) buffer is free for odd(or even) chirps
{
MmwDemo_dataPathWait1DOutputData (obj, pingPongId(obj->chirpCount));
}
/* Kick off DMA to fetch data from ADC buffer for first channel */
EDMA_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_A],
MMW_EDMA_CH_1D_IN_PING);
obj->rxAntennaCount = 0;
baseIdx = obj->txAntennaCount * obj->numPhyRxAntennas * obj->numChirpsPerFrame;
/* 1d fft for first antenna, followed by kicking off the DMA of fft output */
for (antIndx = 0; antIndx < obj->numPhyRxAntennas; antIndx++)
{
/* kick off DMA to fetch data for next antenna */
if (antIndx < (obj->numPhyRxAntennas - 1))
{
if (isPong(antIndx))
{
EDMA_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_A],
MMW_EDMA_CH_1D_IN_PING);
}
else
{
EDMA_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_A],
MMW_EDMA_CH_1D_IN_PONG);
}
}
...
你好,
进入MmwDemo_processChirp的时候,adc数据已经在adc buffer里了。第一个EDMA触发就是开始从adc buffer里把数据搬移到L2,然后DSP在L2上数据上做FFT,FFT的结果再由EDMA搬移到L3.