peter at stuge.se
Mon Jan 31 15:46:32 UTC 2011
Harald Welte wrote:
> > 2. when using a usb hub, having a lot of USB traffic, or poor USB
> > signal quality (I don't know exactly), bulk read timeouts can
> > occur in host program simtrace/at91sam7/host/main.c line 230:
> > rc = usb_bulk_read(udev, SIMTRACE_IN_EP, buf, sizeof(buf), 100000);
> ok, interesting. I think its not really something we need to care
> about, if it works reliably using good cables/hubs.
The issue is probably with the fact that bulk transfers are used for
Bulk transfers have no bound latency, they will be delivered "as soon
as possible" but this can very well mean indefinite delay on a loaded
bus. Interrupt transfers and isochronous transfer both have
guaranteed bus time, the latter are lossy (think UDP) so I'd suggest
using interrupt transfer if there's a choice.
Programmatically they work very much like bulk so switching over
should be simple.
Oh, and in host programs please don't use the old libusb-0.1 API with
usb_ functions as it has been deprecated and unmaintained for years,
please start using the libusb-1.0 API with libusb_ functions instead;
it fixes bugs, has better performance and is actually being worked
More information about the baseband-devel