7 years, 4 months ago.

HTTP is getting slower after a while

Hi all! I'm using HTTP GET/POST requests with STM32F746-DISCO board (HTTPClient and Dieter Graef's great F7_ETHERNET library in use). Everything works just great, but after some time (say, several hours or so) ethernet slows down. Transfer speed is still good, but getting HTTP response takes more time (can be several seconds). If I reboot the board, it's fast again.

I'm running the program with System Workbench for STM32 and tried to stop the execution while ethernet is stuck and it seems to wait semaphore in the function stm32f7_rx_task (sys_arch_sem_wait).

Does anybody have any idea what might cause the problem or how could I debug it?

Thanks in advance!

BR, -Jussi

-

posted by Jussi Vuori 11 Jan 2017

1 Answer

Jussi Vuori
poster
7 years, 3 months ago.

After long debugging, I'm answering myself. The problem is a bug in ST ethernet code.

The problem (packets get lost if there's more than one packet per rx interrupt) is explained here: https://lists.nongnu.org/archive/html/lwip-users/2012-09/msg00054.html

After moving RBUS flag set to the ethernet_watchdog function (and polling rx with while loop) as explained in the post above, F7_ethernet works great.


Assigned to Jussi Vuori 7 years, 3 months ago.

This means that the question has been accepted and is being worked on.