你好
我用FPGA采集图像,然后通过uPP发送至OMAPL138。一帧图像300KB,而uPP一次DMA传输最大能接收64KB的数据,因此我要多次接收才能接收一帧图像。由于FPGA不停的向OMAL138发送实时图像,为了不让每帧图像间交叉,我使用控制信号START、ENABLE。首先我编译了两次DMA寄存器设置,然后每次EOW中断我首先判断PEND位,等于0我才给UPIDX寄存器赋值
我遇到的问题是在不使用START信号的情况下,我能够无缝的接收一帧图像,但是在每帧图像的最底部(也就是最后一次DMA接收的数据)有错误。
在使用START信号的情况下(START信号为每帧图像的开始信号),我接收的图像是最顶部(也就是第一次DMA接收的数据)的层叠:我分10次接收完一帧图像,第一次接收的数据为图像最顶部分,后面9次接收的数据和第一次接收的数据时一样的。我怀疑是不是在每次START信号过来时DMA才开始接收数据,然后DMA接收一次数据后就不再接收数据,而是等待下次START信号。而我想要实现的目标是一次START信号来了之后,我能够让DMA连续接收10次。
请问这是原因?谢谢!