|FreeRTOS+UDP was removed from the FreeRTOS kernel download from FreeRTOS V10.1.0. See the FreeRTOS+TCP stack, which can be configured for UDP only use, as an alternative.|
[FreeRTOS Embedded IP Stack API]
void *FreeRTOS_GetUDPPayloadBuffer( size_t xRequestedSizeBytes, TickType_t xBlockTimeTicks );
Obtains a buffer from the 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 task is prepared to wait
for a buffer if one is not immediately available.
If a buffer is not available then the calling 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.
The FreeRTOS_sendto() documentation page contains an example zero copy send operation that includes a call to FreeRTOS_GetUDPPayloadBuffer().