>> That's the problem. The supposedly synchronous function calls each return 
>> success
>> as I call them in order: OUT 1KB, IN 16B, OUT 1KB, IN 16B
>> But the bus trace shows: OUT 2KB, IN 16B, IN 16B
>> This is the case even if I add a 5 second delay after each call to 
>> libusb_bulk_transfer.
>>
>
> Which bus analyser are you using? Can you expand the transfers and see
> the timing of individual packets for that transfer?
>
> If the host isn't sending a ZLP then the bus analyser (or it's software)
> might be grouping all 4 out data packets into the same transfer as it
> has no way of knowing that they were separate transfers.
>
> Regards,
>
> Toby

OK, I feel better, stupid, but better...
I'm using Ellisys Visual USB, I had transfer grouping turned on in the trace 
display.
I assumed they would still be in chronological order.  Looking closer at the 
packet
times, I get:
OUT 512B
OUT 512B
IN  16B
OUT 512B
OUT 512B
IN  16B

Just as I sent them in my test code.

So the out-of-order mystery is solved because they aren't actually 
out-of-order.  Now
I just need to figure out how to inject a ZLP so my device will recognize the
transfers as complete.

Any advice on how to proceed?

~QSE                                      
------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to