Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


TCP Zynq performance

Posted by hannes23 on October 24, 2017

Greetings 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 receive.

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, Hannes

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner