I'm thrilled by the recent availability of StarterWare. I'm diving into it now.
I have a deep-down question for a specialist on the TI StarterWare USB team. Does the StarterWare USB software (for C6748 or OMAP-L138) implement the HID specification (Human Interface Device specification) for "Long items" (as defined in Section 6.2.2.3, page 27, of the USB HID class definition)? [Reference: http://www.usb.org/developers/devclass_docs/HID1_11.pdf] That would be very helpful to TI developers, like me.
Background: The use of "Long items" (in the USB HID class) is the fastest, most convenient, most efficient way to occasionally transmit, say, framed blocks of 250 bytes to-and-from a USB device -- for use, say, in changing the signal processing parameters within an OMAP-L138, and for occasionally obtaining measurements from the device. The "block of bytes" is framed, with a beginning and end, where the n-th byte is immediately known to have a specific meaning. (This is unlike a "stream" of unframed bytes.) The USB spec allows for this, In effect, you are telling USB to transport, say, 250 bytes, from here to there -- and it's done. Easy and fast. Many TI developers could use this aspect of the USB specification. Does TI StarterWare support it?
Note: If TI developers are forced to use the "Short items" (defined in Section 6.2.2.2, page 26), then they are forced to insert a one-byte "tag" before every "item" in memory (at the least these occur every fifth byte, and at worst they occur every other byte), and also to publish (within the USB device itself) a tedious "report" and "usage" about how each item is to be employed, complete with minimum and maximum allowed values for each item, and so forth. As you might expect, this overhead is tedious to develop, quite wasteful of USB bandwidth, and completely pointless for many TI developers.
The solution is to use Long items -- since these do not require inter-spacing "tag" bytes, and do not require reports, nor usage, nor items, etc.
Technical note: The HID spec assigns special tag codes (0xF0 thru 0xFF) for implementing the above technique.