按照UPP提供的示例:
1. 采用中断方式接受数据;
配置UPP的相关寄存器,并不使能发送通道中断、使能接受通道的中断 即为UPP中断,FPGA首先发送数据,DSP收到数据产生UPP中断,进入中断处理函数;中断处理函数中读取通道中的数据,并重新启动通道接受;FPGA间隔10us,再触发一个GPIO中断,DSP进入GPIO中断中处理之前UPP接受到的数据;再间隔1ms,依次类推,上面的过程
2. 采用轮询方式接受数据;
如1方式,配置UPP相关的寄存器,并不使能发送通道中断、不使能接受通道的中断 即为UPP中断,FPGA首先发送数据,FPGA间隔10us,再触发一个GPIO中断,DSP进入GPIO中断中处理1中的(UPP接受中断处理过程,和读取UPP接受到的数据);再间隔1ms,依次类推,上面的过程
遇到的问题为:
1.中断模式,可以正常与FPGA收发数据;
2. 轮询模式,只能正常收到FPGA发送的第一帧数据,后续FPGA发送的数据,DSP从UPP通道中取到的始终为第一帧数据???
不知道该问题是什么原因导致的?
Shine:
请问 第二次轮询接收时,UPISx寄存器的值是多少?都正确吗?
Tony Tang:
user4838224FPGA首先发送数据,FPGA间隔10us,再触发一个GPIO中断,DSP进入GPIO中断中处理1中的
你的数据多长啊?有没有超过uPP的FIFO长度?
为什么不用uPP的DMA?uPP的DMA很容易用的。