|
Hi bicool,
I didn't quite understand what you mean when you say "the mean number of missing bytes is around 139 bytes computed on a queue of 32 frame but the number is not constant it can goes up to more than 350 missing bytes" please elaborate.
-> What I mean is : I set up Queue on the host, the same way that it is done in the streamer/screamer example. The buffer on the host is set to 768*576*2 bytes using SetXfersize(). The Queue length is 32 frames. The transfert are initiate with 768*576*2 bytes requested using BeginDataXfer(). Then I enter the infinite loop the same way it is done in the Streamer/Screamer. I record each time the number of bytes effectively transfered to the host before recommitting the Queue element with BeginDataXfer() after finishing it. What I see is that, above a certain Frame Rate that I set manually, there are queue elements for which the amount of bytes received is lower than the 768*576*2 requested and I save the difference between the number of bytes I requested and the number I received. I called that number "number of missing bytes". But this difference is not constant and is not necessarily a multiple of 512. For example, on some queue elements I saw a difference of 1304 bytes. I gave a temporal mean number computed on the 32 elements of the queue in the last message.
Are you seeing missing bytes in the middle of packets? Are you implementing flow control (i.e. check if a buffer is in free in FX2LP before sending packet to it from the SlaveFIFO/GPIF side)?
->No, we use a simple configuration and those issues have never occured during the developpment stage performed under XP. I am not even sure how to do that kind of flow control between the Slave FIFO and FX2LP.
Say you trigger a 884736 byte transfer, are you always receiving 884736 bytes in response to the transfer?
-> Not always, above a certain a Frame rate, fewer bytes are received by the host.
if the transfer is terminating with lesser number of bytes please let me know a few values of the "number of bytes" received in these cases.
-> For example, on some queue elements I saw a difference of 1304 bytes between the 884736 requested and what the host received (ie : 884736 - 1304 = 883432)
|