FreeRTOS+TCP is still in the lab
FreeRTOS+TCP is already used in
commercial products and we encourage
you to try it yourself.
Be aware however that we are
still refining its design, and the
source code and documentation do not
yet meet Real Time Engineers Ltd's strict quality standards.
Please use the forum for support,
feedback and ideas,
or contact us directly if you have a specific business interest.
void *FreeRTOS_GetUDPPayloadBuffer( size_t xRequestedSizeBytes, TickType_t xBlockTimeTicks );
Obtains a buffer from the TCP/IP stack for use with the zero copy interface.
The zero copy interface for transmitting data is described on the
FreeRTOS_sendto() documentation page.
The size of the buffer being requested. The size is specified in
The maximum time the calling RTOS task is prepared to wait
for a buffer if one is not immediately available.
If a buffer is not available then the calling RTOS task will be
held in the Blocked state (so other tasks can execute)
until either a buffer becomes available or
the block time expires.
The block time is specified in ticks. Milliseconds can be
converted to ticks by dividing the time in milliseconds by
To prevent deadlocks the maximum block time is capped to
is defined in FreeRTOSIPConfig.h
If a buffer was obtained then a pointer to the obtained buffer is returned.
If a buffer could not be obtained then NULL is returned.
The FreeRTOS_sendto() documentation page
contains an example zero copy send operation that includes a call to FreeRTOS_GetUDPPayloadBuffer().