小弟我最近用多核多通道(就是每一个核控制EDMA一个通道从DDR3到L2)同时传数,现已经成功,但有个问题就是我如何让CPU知道每一个核的EDMA通道传数已经完成了?因为我需要在EDMA传数完后数据马上要被CPU的下一条指令用到。现在我用CSL_EDMA3GETchannelstate()(大概是这个样子)的函数得到每个EDMA3通道的状态,里面的错误中断的参数miss的值显示为0了,在内存地址中也看到数已经传成功了,但下一条CPU指令中只有几个核成功接收到数据,其他核没有实时的和EDMA3做到无缝链接,但在L2相应的存储空间中可以看到数据是已经都传输成功的了。
请教大神们如何正确的在多核多通道同时传数时,让每一个核的CPU都正确实时的知道EDMA3通道已经完成传数了??谢谢了
King Wang1:
配置EDMA的完成事件中断,所有核都可以响应这个中断。
具体设置方法请参看EDMA的user guider和芯片的data sheet。
JY LI:
回复 King Wang1:
谢谢King Wang1的回复,你说的EDMA的完成事件中断是不是TPCC_IPR,现在我在函数中加入了查询TPCC_IPR是否置1了。。程序中每个核的通道TPCC_IPR都置1了的,但是在接下的CPU程序指令中,还是只有一部分核实时的读到数了。这是为什么了?我在存储地址中可以看到数据是成功都传过来的,还有我把全局寄存器和局部寄存器都试了,都是一样的效果。