Thanks for the great link. I've been reading up on the USB protocol but I'm still wondering why you would need a device stack on top of the firmware. In particular, why would you need the Micrium's product uC/USB Device Stack (link: http://www.micrium.com/products/usb/usb-device/overview.html ).
ohhhh... ok. I was a little confused with the word "stack".
So the USB stack product is just a a collection of general functions that deal with the USB protocal that you have to port to your hardware. Or something to that effect.