Part Number:AM2732
你好,专家
我在使用EDMA时遇到了一些问题。我在am273x两片级联的Demo上,将sumTx的触发方式由原来的软件触发改为了立即触发后,在函数DPU_DopplerProcHWA_process中while(EDMA_readIntrStatusRegion(baseAddr,regionId,cfg->hwRes.edmaCfg.dopplerEdmaCfg.edmaSumLogAbsOut.pingpong[Ping/Pong].channel)!=-1)后去读cfg->hwRes.detMatrix.data后发现有些距离单元上的数仍然是上一帧得到的结果,但是在这一帧处理结束后,我导出了detMatrix.data,通过matlab分析该图是正确的。请问是什么原因导致在EDMA完成搬运后,对应的内存地址中的数据没有被更新?
谢谢
Gary Lu:
这可能是由于EDMA的操作还没有完全完成,导致数据没有被更新到对应的内存地址中。在使用EDMA时,需要确保在读取数据之前等待EDMA操作完成。您可以使用相应的EDMA状态寄存器或者中断来检查EDMA操作是否已经完成,然后再读取数据进行处理。
另外,您还可以检查一下EDMA配置是否正确,包括触发方式、通道配置等,确保没有配置错误导致数据没有被正确更新。