Download FreeRTOS

Quality RTOS & Embedded Software

Simplifying Authenticated Cloud Connectivity for Any Device.
Designing an energy efficient and cloud-connected IoT solution with CoAP.
Introducing FreeRTOS Kernel version 11.0.0:
FreeRTOS Roadmap and Code Contribution process.
OPC-UA over TSN with FreeRTOS.
NOTE: This API has been deprecated from FreeRTOS V4.0.0 onwards. Please refer to FreeRTOS_GetUDPPayloadBuffer_Multi() for the new APIs supporting IPv6, Multiple Endpoints and Multiple interfaces. To use the deprecated APIs please set ipconfigIPv4_BACKWARD_COMPATIBLE to 1 in the FreeRTOSIPConfig.h header file.


[FreeRTOS-Plus-TCP API Reference]

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.


xRequestedSizeBytes   The size of the buffer being requested. The size is specified in bytes.

xBlockTimeTicks   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 portTICK_PERIOD_MS.

To prevent deadlocks the maximum block time is capped to ipconfigMAX_SEND_BLOCK_TIME_TICKS. ipconfigMAX_SEND_BLOCK_TIME_TICKS 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.

Example usage:

The FreeRTOS_sendto() documentation page contains an example zero copy send operation that includes a call to FreeRTOS_GetUDPPayloadBuffer().

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