The smxUSBD USB device stack, smxUSBH USB host stack, and smxUSBO OTG add-on have been specifically designed for embedded systems.
They are robust and offer good performance. All are written in ANSI-C, and can run on any hardware platform. Though optimized for SMX®, they can be ported to another RTOS or operated in a stand-alone mode. USB software development services are also available.
USB development kit for Windows, CDC/ACM class driver for Windows, Embedded USB device stack, host stack and mass storage host library.
WinDrivers of USB for any OS, USB device firmware, download for trial.
USB host IP-Core hardware and software concurrent development. Good paper for USB.
A lot of useful information for development host side drivers from Devicetools.
This site is the home for the libusb project. It's aim is to create a library for use by user level applications to access USB devices regardless of OS. libusb is an open source project licensed under GPL.
LibUsb-Win32 is a port of the USB library libusb to the Windows operating systems (Win98SE, WinME, Win2k, WinXP). The library allows user space applications to access any USB device on Windows in a
generic way without writing any line of kernel driver code.
USBX is Express Logic's high-performance USB host and device embedded stack. It is fully integrated with ThreadX and is available for all ThreadX supported processors. Like ThreadX, USBX is designed to have a small footprint and high-performance, making it ideal for today's deeply embedded applications that require to interface with USB devices or be connected with a Windows/Apple/Linux desktop over USB.
Firmware development and libs
Vendor dependent firmware
Basically you can get firmware source code from your chip suppliers, such as NXP, Atmel, ST, Freescale, Microchip. The code bases are very informative. Sometimes the source code is not public available. Then you have to look for general purposes resources for firmware development.
usbn2mc is an universal USB Interface for a Microcontroller which has 12 I/O Pins, a SPI Interface or a DMA Controller. The project is based on the USB Bridge from National Semiconductor USBN9602/ USBN9603 / USBN9604. The Advantages of this USB-Controller are the price, the configuration and the availability in many electronic shops. The main part of the project, is the common usb layer of the controller, which manages the communication with usbn960x. It is written in ANSI C, this means it compiles with every ANSI C Compiler.
Intra2net has a software collection for FTDI's FT232BM/245BM in bit bang mode. libftdi - A library (using libusb) to talk to FTDI's FT232BM/245BM, FT2232C/D and FT232/245R type chips including the popular bitbang mode.
A USB example for PIC18F4550. Connect your PIC18F4550 into a PC using a USB cable. A virtual RS232 COM port is created, allowing your application to print RS232 messages into HyperTerminal. Allows easy porting of legacy code that used RS232 comms.
This project is a modified form of the CDC (Communications Class Driver) available from www.microchip.com. The www.htsoft.com forum has some discussion on this code.
The PIC 18FUSB online website shows how to use Microchip 18FXXX microcontroller USB Bootloader and Learn PIC USB with a minimal USB application.
The eegeek has a good article written by Evan on Understanding the USB firmware for the PICDEM full-speed USB demo board.
This is a wiki page of development USB device based upon Microchip PIC18F microcontrollers.