I have a some questions about libusb and OpenOCD. There might be a better group to ask about these, but a number of people who comment in this group know about these sorts of things. Besides, I will want to run this stuff on RasPi so it applies.
Basically, I'm interested in learning to do low-level USB programming for talking to external USB devices. I don't want to write a device driver -- I want to do everything from Userland. From what I've read, libusb appears to be the right software for this, but it's confusing. Before I get started, I'd like to learn from others' experience. Here are some specific questions:
1. There are several versions of libusb out there, and it appears to have an interesting FLOSS history. There's libusb-0.1 which is old, but stable. There's libusb-1.0 which has a different API, but it's actively being developed. Then there's libusbx which is a fork of libusb-1.0, but it may have rejoined since libusb.org today lists libusbx-1.0.16 (2013-07-11) as the latest version. Has anyone here developed with any of version of libusb and has some tips to share? Also, does anyone here know about libusb history?
2. Is there any better libusb documentation that what's available at libusb.org? Google found me this this tutorial from Jan 2010, which seems to be a good start. I'd appreciate any pointers. There's no point doing "program by experiment" if someone has already done it and written it up.
I'm also interested in OpenOCD. Has anyone here used it at the API level? I took a quick look at the user guide and the developer documentation, and from a first impression it seems overly complex. I need to decide if it's worth delving into OpenOCD or whether I'm better off building on my own JTAG code already written.
Thank you for any comments you may have.





