This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: AT91SAM7S USB corruption
- From: Erant <erantimus at gmail dot com>
- To: munz at speag dot ch
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Sat, 6 Mar 2010 09:46:28 +0100
- Subject: [ECOS] Re: AT91SAM7S USB corruption
- References: <4B740C0E.5070104@speag.ch>
I have just tried Olivers patches to the AT91 USB driver, and my problems have been fixed!
I still had to patch the patches, but only a minor fix was needed:
CLEAR_BITS (pCSR, AT91_UDP_CSR_TXCOMP | AT91_UDP_CSR_RXSETUP | AT91_UDP_CSR_ISOERROR); in usbs_at91_endpoint_isr_rx shouldn't clear the TXCOMP flag. And thus should become:
CLEAR_BITS (pCSR, AT91_UDP_CSR_RXSETUP | AT91_UDP_CSR_ISOERROR);
With this minor fix to the patches, I've managed to leave my code running for well over 8 hours without any crashes or issues!
Thanks,
-- Erant
On Feb 11, 2010, at 2:54 PM, oliver munz @ s p e a g wrote:
> 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