a bigger project, which runs on a Zynq device I have converted to FreeRTOS from another rtos.
Additionally I now have to add TCP connectivity.
Therefore I've implemented and tried LwIP-141 as well as FreeRTOS+TCP.
For the latter I used the newest Version (160919) with additions I found here in the forum (Zynqplustcpdriver2017731.7z).
The LwIP stack comes with Xilinx demo-source and they offer an app-note to test the performance.
I have to note that I'm looking for ultimate performance from device to host-PC (WIN64), That is, using the
1 gbps ethernet interface I would like to have nearly full-speed.
In the app-note for Lwip Xilinx indicates 542 Mb/s for socket-mode and 949 Mb/s for RAW-mode.
The first mode I was able to reproduce, the second not yet due to build-errors.
Because I would obviously prefer the socket-mode I thougt to test FreeRTOS+TCP.
First problem was to have a demo-project with iperf server/client for TCP.
These are not contained in the demo, so I've written them by myself taking the LWip files as template.
The result was 523 Mb/s for receive (server on device) and 620 Mb/s for transmit (client on device).
Then I've tested Hein Tibosch' iperftaskv10 and later iperftaskv30.
The first using iperf2, the latter with iperf3.
The result was similar, meaning, the best I achived, was depending of buffer-sizes etc. about 550 Mb/s for
BUT can I also use the iperf_task to test transmit-speed? How are the settings then and how
to invoke iperf3 on the host?
I tried the --reverse option but got nothing but 1 byte sent from device to PC. :-)
And secondly: What remains to improve the transmit speed?
Is zero-copy implemented for tcp-transmit and if it exists, what definition has to be set to use it?
Any other ideas to get tcp-socket-transmit running at highest speed?
I would be thankful for advice and hints, because I'd rather like the FreeRTOS version instead of LwIP.
With best regards,
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.