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