大家好,
************************************************************************************************************************
我们自己设计的板卡用的是C6670,前端有FPGA通过SRIO向C6670发送数据。
FPGA每隔1.5ms,通过SWRITE包,向C6670发送400Bytes的数据,存放在C6670 L2内的A区域。
每发送完一次数据FPGA拉起C6670的GPIO,通知C6670处理这段数据。(目前还未调试Doorbell)
C6670这边,在GPIO中断处理函数中,将每次接收到的400Bytes数据搬移到B区域暂存(4KBytes,就是来10次中断后,覆盖之前的数据)。
然后使用Tools--Graph--Single Time去显示B区域的数据。
如果FPGA通过SRIO向C6670发送正弦波的数据,显示结果中能看到正弦波。
************************************************************************************************************************
但是,偶尔会出现下图情况
************************************************************************************************************************
现在怀疑出错的可能性是:
由于SRIO每次进来的400Bytes的数据都向B区域(4KB)搬移,数据是不断写入B区域的,每隔1.5ms就会向B区域中的某块写入新数据。
而使用Graph---Single TIme这样的实时观察数据形状,有时不断去读取B区域的数据。
所以,可能存在某个时间点,对B区域内部的数据,同时读或者写,这样就会出错。
************************************************************************************************************************
想请教大家,出错的可能性是不是像上面我认为的这样?
如果是,改怎么解决用Graph---Single TIme去实时显示DSP内某段不断被刷新的数据块?
我感觉,只要想去实时显示某块不断被刷新的数据块,都可能存在类似我上面遇到的这个问题,大家怎么认为?
DSP内部有FIFO吗?把数据向FIFO中送,FIFO出口接到“Graph---Single TIme”这个工具?
************************************************************************************************************************
谢谢大家了哈~~