a usb stack for embedded system