There is an error in the rx-endpoint-interrupt-handling:
Sorry it should be: pep->buffer_size = (cyg_uint32) * ppbegin - (cyg_uint32) pep->buffer; if (!pep->halted && pep->buffer_size) { (*pep->complete_fn) (pep->complete_data, pep->buffer_size); } else { (*pep->complete_fn) (pep->complete_data, -EAGAIN); } usbs_at91_endpoint_interrupt_enable (epn, false); Regards Oliver -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss