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.

AM2732: MmwDemo_combinedEOLcallback 对 ping pong地址的设置不理解,具体如下描述,请帮忙解答,多谢

Part Number: AM2732


MmwDemo_combinedEOLcallback 是在csi2接收到一个chirp数据后触发的,里面有 MmwDemo_configureTransfer函数 针对 edma 的 PaRAM进行更新,代码如下,我注意到有对2个 PaRam 进行更新,一个chirp数据用一个PaRam就可以完成到CBUFF FIFO的传输,这里为什么要第二个 PaRam 的设置 ? 而且我理解第二个PaRam是在第一个PaRam的传输完成后触发的,这样 edma 的源地址就变成ping -ping - pong - pong,与 ping - pong交替不符。是我哪里的代码理解有误吗?

static Bool pingPongSwitchFlag = true;

if(pingPongSwitchFlag)
{
   EDMA_dmaSetPaRAMEntry(CONFIG_EDMA1_BASE_ADDR, MMW_LVDS_STREAM_CBUFF_EDMA_CH_0, EDMACC_PARAM_ENTRY_SRC,
       (uint32_t) SOC_virtToPhy((void *)gConfigCsirx0ContextConfig[0].pingPongConfig.pongAddress));
   EDMA_dmaSetPaRAMEntry(CONFIG_EDMA1_BASE_ADDR, MMW_LVDS_STREAM_CBUFF_EDMA_SHADOW_CH_0, EDMACC_PARAM_ENTRY_SRC,
       (uint32_t) SOC_virtToPhy((void *)gConfigCsirx0ContextConfig[0].pingPongConfig.pongAddress));

else
{

   EDMA_dmaSetPaRAMEntry(CONFIG_EDMA1_BASE_ADDR, MMW_LVDS_STREAM_CBUFF_EDMA_CH_0, EDMACC_PARAM_ENTRY_SRC,
       (uint32_t) SOC_virtToPhy((void *)gConfigCsirx0ContextConfig[0].pingPongConfig.pingAddress));
   EDMA_dmaSetPaRAMEntry(CONFIG_EDMA1_BASE_ADDR, MMW_LVDS_STREAM_CBUFF_EDMA_SHADOW_CH_0, EDMACC_PARAM_ENTRY_SRC,
       (uint32_t) SOC_virtToPhy((void *)gConfigCsirx0ContextConfig[0].pingPongConfig.pingAddress));

}