Hi There

I'm trying to issue a 32k transfer over endpoint 0.

My request is

        UInt8 *pData; // Allocated, filled with correct data...
    IOUSBDeviceInterface        **deviceIntf; // Successfully passed all 
rituals to become a good IOUSBDeviceInterface...
    IOUSBDevRequest     request;
    kern_return_t       kernResult;
    request.bmRequestType = ((kUSBOut << kUSBRqDirnShift)| (kUSBVendor << 
kUSBRqTypeShift) | kUSBDevice);
    request.bRequest = 0x55;
    request.wValue = 0;
    request.wIndex = 0;
    request.wLength = 0x8000;
    request.pData = pData;
    kernResult=(*deviceIntf)->DeviceRequest(deviceIntf,&request);

The transfer starts on the bus, split in 64B packets as expected...

8 B     SETUP txn       40 55 00 00 00 00 00 80
64 B    OUT txn (NAK)   01 FF FD FD BC BC ...
64 B    OUT txn   [65 POLL]     01 FF FD FD BC BC F9 A8 ...
64 B    OUT txn 8F CC BF 87 52 A9 BB 3C 40 DE 41 01...
64 B    OUT txn 2D D3 7E 2D 74 2B 6A 19 99 A5 54 56 ...
64 B    OUT txn 5B CD E4 E5 54 94 3B 36 A9 ED 55 ...
64 B    OUT txn 43 AE 04 1C FC 05 0D 09 FF 02 97 ...
...
But at the 321st packet, I have a strange 55bytes packet, 

64 B    OUT txn F2 F6 1E 6B E8 A4 12 21 D8 03... 
55 B    OUT txn 90 D8 F8 0D C2 1C A3 6A 4A 43... 
64 B    OUT txn (NAK)   7E CB 9C 65 57 EC A3 FF...

...that stalls the pipe.

Is there a known limitation in the transfer size? What can make the OS 
(Mavericks in this case) suddenly send 55 bytes instead of 64? 

Thanks in advance
Eric Gorouben
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to