This is the mail archive of the ecos-patches@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]

[Bug 1001024] STM32 USB driver and proposed USB API change


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001024

--- Comment #14 from John Dallaway <john@dallaway.org.uk> 2010-10-15 18:06:58 BST ---
(In reply to comment #13)

> I did the same thing like John. The result is somewhat different. I'm getting
> echo of every even character, while the odd ones are lost. When I type
> "abcdefgh" the echo is "bdfh".
> 
> Furthermore I used usb sniffer to confirm that the host correctly sends all
> characters, each in a separate out packet.
> 
> How can I further help the development? I can dedicate some of my time for
> this.

Ilija, it's good to have your support.

I was using a blocking call to read a single char:

    char rxbuf[1];
    while (1) {
      usbs_serial_rx(&usbs_ser0, rxbuf, 1);
      diag_printf("RX char: %c\n", rxbuf[0]);
    }

I have now determined that usbs_serial_rx() returns to caller on receipt of
every char but the buffer is modified only when even numbered chars are
received. Perhaps you were using a non-blocking read?

So the driver is responding to every char received but only the 2nd, 4th, 6th,
... chars are being processed correctly.

Hopefully Chris Holgate will be able to readily identify the problem from our
descriptions, otherwise your time in debugging this would be very helpful.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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