USB driver locking

Daniel O'Connor doconnor at gsoft.com.au
Tue May 24 21:48:44 UTC 2011


Hi,
I have a Cypress FX2 based USB interface board connected to our radar data acquisition chassis. It is used for configuring the hardware and getting data back to the PC.

I wrote a driver which is a very skinny wrapper around the (very handy) usb_fifo device node code.

I have several end points, all bulk. 2 are for serial comms, 2 for a low speed control bus and 1 for high speed data back to the PC.

The PC sends 10-250 byte packets out to modules on the serial bus and gets replies (after a 10-500 msec) of a similar size.

The low speed control bus is driven by the FX2 and the PC sends it 3 byte packets which is processes to read/write on the control bus, then sends a 3 byte packet back.

I find that my application has rare problems where it does not get a reply from the micro to a control bus packet, or perhaps the micro doesn't receive it (I need to add a sequence number or similar to my protocol to try and detect it I think).

I found that this problem happens much less rarely (less than once a day) on a UP machine than on an SMP one.

Given that I am wondering if it is some sort of locking issue, and if anyone has seen anything similar?

I can supply the driver code if anyone is interested :)

Thanks.

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C








More information about the freebsd-usb mailing list