This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: AT91SAM7S USB corruption


Hi Erant,

It's a while since I used the Atmel device, since I switched my USB
based development to the STM32 as soon as the port was released.
However I do recall some odd behaviour which I originally put down to my
first attempt to write a Linux kernel USB driver.  Comments below:

Erant wrote:
> At first I was convinced it was either libusb or my code but after
> analyzing the outbound USB traffic with VMWare and Micah Dowty's
> excellent vusb analyzer, neither was seemingly to blame. All outbound
> USB packets from the host were fine, none of them contained
> corruptions.

This is a more in-depth look than I did at the time - I had just assumed
that my Linux driver was at fault.

> This problem seems to occur faster the higher the data
> throughput is, almost vanishing when I add a lot of debug printfs,
> slowing the system down.

Sounds familiar.  IIRC, the main symptom was that in a large bulk
transfer, a single 64-byte block would sometimes disappear from the
payload.  I'm afraid I can't give much more insight into the Atmel
driver than that.  When writing the STM32 driver I used Frank
Pagliughi's D12 driver as a reference since I found it to be the best
documented implementation.

That reminds me - the STM32 USB driver has now had quite a workout and
is looking pretty stable, so it's probably time to promote it from a
beta package to an official submission.

Chris.

-- 
Christopher J. Holgate

Thinking Of The Future @ Zynaptic Limited (www.zynaptic.com)

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]