我打算用edma3传输图像数据从内存到LL2进行处理,但是在视频数据信号的传输和处理过程中, CPU数据处理必须与EDMA数据传输保持同步,也就是要保证
在CPU访问之前EDMA把数据传输到缓冲区中,而在EDMA输出数据之前CPU完成缓冲区中的数据处理。但是我怎么能保证同步呢?假设edma数据传输非常快,而dsp速度跟不上,这么一来就会造成很多数据来不及处理。
另外edma3的传输速度有没有大致的范围?我好用来评估一下dsp处理时间和edma传输时间是不是相差太多?
zhubaojun:
回复 Tony Tang:
不好意思应该是我没有表达明白,我看论文上大部分用EDMA的pingpong操作,也就是不用手动触发,是不是这种方式的效率要比手动触发高很多,另外这种pingpong操作方式是不是需要dsp数据处理和edma数据传输需要同步
Tony Tang:
回复 zhubaojun:
你是从内存到L2是memory to memory的,没有事件来触发。
手动触发的大致流程应该是下面这样子的来达到ping pong效果。。
trigger EDMA 1 Ping
Trigger EDMA 2. Pong
while(1)
{
Wait EDMA1 complete
process Ping.
Trigger EDMA 1
Waiting EDMA 2 complete
Process Pong
Trigger EDMA 2
}