Re: [lwip-users] ERR_MEM when sending large data, LWIP stats show no error

2017-09-14 Thread goldsi...@gmx.de
Adrian Figueroa wrote: I can see some errors in low_level_output() in ethernetif.c. This fails: if((DmaTxDesc->Status & ETH_DMATXDESC_OWN) != (uint32_t)RESET) { errval = ERR_USE; goto error; } I don't know the F7 driver, but my F4 driver seems to have

Re: [lwip-users] ERR_MEM when sending large data, LWIP stats show no error

2017-09-14 Thread Adrian Figueroa
This again suggests that the ST provided driver is flawed (which is very possible). I have a transfer rate of around 10 Mbit/s with this window size, which is not great yet. In fact, I need more than this. Can you point me to some resources with regard to writing a driver/debugging it?

Re: [lwip-users] ERR_MEM when sending large data, LWIP stats show no error

2017-09-14 Thread goldsimon
Adrian Figueroa wrote:: >I have no idea why I have no packet loss with TCP_WND and TCP_SND_BUF >set to 2xTCP_MSS. Instead, I get rare ZeroWindow errors from my PC. Because you don't fill your DMA buffers in this case and as a result, you don't drop tx segments. Implementing a zero copy driver

Re: [lwip-users] ERR_MEM when sending large data, LWIP stats show no error

2017-09-14 Thread Adrian Figueroa
I think so. At least I receive all my data intact after a few retransmissions. Also, some block transfers complete without any retransmissions (32kByte size per block). Also, the DMA error was fixed by disabling the CPU caches (I- and D-cache). Some registers are not set instantly, it seems. I

Re: [lwip-users] ERR_MEM when sending large data, LWIP stats show no error

2017-09-14 Thread Nathan Hartman
On Sep 14, 2017, at 5:09 AM, Adrian Figueroa wrote: > > I did some more testing and it does not seem to be systematic. As lwIP is not > showing errors in any of the stats, it is likely not its fault. > > Do you have any suggestions on how to find the reason for

Re: [lwip-users] ERR_MEM when sending large data, LWIP stats show no error

2017-09-14 Thread goldsimon
Adrian Figueroa wrote: >This fails: > > if((DmaTxDesc->Status & ETH_DMATXDESC_OWN) != (uint32_t)RESET) > { >errval = ERR_USE; >goto error; > } > >When DmaTxDesc->Status equals 818937856. What does this mean? Is the >DMA used by something else? I could mean your