详细情况:linux系统下由arm控制dsp通过upp往fpga发送数据,程序运行过程中,upp数据发送正常,由arm控制dsp不停的启动,停止upp数据发送;在某一次发送时出现数据错位(通过fpga从数据总线抓取数据),然后fpga接受的数据都是错位的,重新加载dsp程序也无法恢复fpga接受正常数据,重启上电L138后再运行dsp程序upp的数据恢复正常。通过dlb寄存器进行BA回环发现错误的数据情况如下:发送缓冲的数据顺序是1~128,但是回环到A通道,收到的数据是64~128,0~63。在测试过程中仿真器查看到UPQD0-2的值跟正常时一样,发送区数据顺序正确 。
upp发送数据是开了个中断,以40us的间隔往fpga送1行512字节的数据,中断是由fpga通过gpio脚提供的但dsp可以控制fpga是否启动中断,arm通过dsp来不停的启动和停止中断送数据;
发送时钟设置为37.5M,传输为b通道16bit传输,实际测量upp发送的enable信号持续大概7us;中间fpga没送wait信号。
请教:这可能是出现什么问题了。