There is a bug for the SDK for host controller ISO IN transfer. The USB stack invokes the transfer callback with parameter “transferSofar” equals to 0 for payload length > 0 at transport. So there is no way from the cbf's perspective to determine how many bytes the device actually sent.
Please see attached device enumeration. I hooked up KEIL debugger to inspect the transfer parameter upon call back. I armed an ISO in transfer for 96 bytes. Upon call back, the buffer the transfer points to (transfer->transferBuffer = 0x2000321B) actually contains the data the device sent (please compare to USB analyzer actual data) but transfer->transferSoFar is 0. It should be 88 instead.
Please note that this issue does not occur with Interrupt-IN transfer.
attached USB trace : AcquisitionFile0000.ufo. (please use Ellysis free viewer to inspect the trace)
1)ISO in at transport (snapshot from USB trace)
2)transfer cbf inspection
2.a) transfer structure
2.b) transfer buffer
-> The USB stack actually received the data from the device but "TransferSoFar" is 0 instead of 88 so the cbf can not determine how many bytes were actually received.
Please advise.
Hi Bob,
First of all let me apologize for the late reply.
Thanks a lot for your feedback. Could you please let me know the specific SDK project you are working on so I can report this issues?
Best regards,
Felipe
Any update on this matter?
Hi Bob,
I have sent your comments to the USB team. Thanks again for reporting this issues.
Regards,
Felipe
SDK 2.5.0. I can not give you any specific project because there is no ISO-IN example available in the SDK as far as I know.