FreeRTOS demo working in Linux/Ubuntu but not in Windows_Webserver on LPC1768

dviesca wrote on Tuesday, July 16, 2019:

I adapted this demo: to work on a Seeed Arch Pro board that uses an LPC1768 micro (the same one as the demo).
FreeRTOS version: 10.2.1
I was able to successfully compile the demo using a makefile and when I plug the board (both USB and Ethenet cables of course) to a Linux or an Ubuntu PC the demo works like a charm. However, when I do the same on a Windows PC the board doesn’t execute the demo.

What happens:

  • The “powered on” LED on the board turns on, this is normal.
  • My PC detects the board and lets me put the .bin file in it without (apparently) errors. This is expected.
  • The board keeps “unplugging” and “plugging” itself consistently every ~20 seconds (this doesn’t happen in a Linux or an Ubuntu machine). If I don’t put a .bin file to the board in that ~20 second window a .txt file appears with an error that reads “TIMEOUT”.
  • I programmed the board to blink an LED to see if it’s responding properly while executing the demo. The LED blinks fine in Linux/Ubuntu but it doesn’t turn on if it’s plugged in a Windows host.

I have read extensively but can’t seem to find anything that can explain why the demo works on Linux/Ubuntu but not on Windows except maybe that the stack size is not sufficient, however I don’t believe that’s the problem. Any ideas?

rtel wrote on Tuesday, July 16, 2019:

This is a really old demo so I’m not really familiar with it any more,
but you say you plugged in both the USB and the Ethernet. I presume you
tried with just the USB plugged in in case the Ethernet was causing a
crash or something - so I would guess that there was something different
between the ways Windows and Linux are attempting to enumerate the USB.
Maybe I’m just stating the obvious, which is not helpful.

dviesca wrote on Tuesday, July 16, 2019:

Yes, I have tried plugging in the USB by itself to no avail. If there is a problem enumerating the USB in the Windows host would you have any ideas or pointers as of what can be done to fix this? Thank you.