I'm developing a device that doesn't really fit into the common USB classes. I might be able to get most of the functions to work under the HID class, but some will still need to run under a more vendor-defined mode.
So I've been playing with the idea of using Vendor Defined commands on the control pipe. AN56377 has a good explanation of how to set up some basic vendor commands. However, it is missing some instruction. I want to be able to send and receive data payloads with the vendor commands. The App-note says that you have to use USBFS_1_InitControlWrite() or USBFS_1_InitControlRead() as needed, but gives no explanation of how to setup or retrieve that data payload. In fact, these functions, and USBFS_1_InitNoDataControlTransfer() are not even listed as part of the USBFS datasheet.
It seems to me that some of the advanced USB functionality has not been fully documented and/or the API has not been fully fleshed out with respect to vendor-defined usage. Is there a more complete version of the API listing available? Is there any more demo code that goes deeper into using the vendor functions of the USBFS component?