Dear NXP USB developers,
First of all, let me just say that I'm very happy with the new KSDK 2.0 USB examples that you included. The compound keyboard + mouse example is exactly what I've been looking for. That being said, there are still a couple of issues that could be improved from the perspective of an application developer. Please let me highlight some that I noticed.
* A fair number of USB examples has a lite and non-lite (regular?) version. What is supposed to be the difference between the two? When should one be picked over the other? Is one planned to be obsoleted?
* I think the most error prone data structure is g_UsbDeviceConfigurationDescriptor by far. It's super long, weakly typed (uint8), and contains a multitude of different descriptors. Modifying it is like walking on a minefield. It'd be great to decompose it to multiple smaller (typed) data structures.
* I think that the API could be significantly nicer and easier to use. LUFA exposes the most beautiful USB API I've ever seen and it's a joy to work with.
* Regarding the usb_device_ch9.[ch] files, what ch9 is supposed to mean?
* "Device" is often mispelled as "Devcie" across the codebase.
That's pretty much all I wanted to share for now. I do understand that implementing a great API takes time and you're probably pushed to churn out features. Thank you for your hard work and keep it up!