下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
FreeRTOS-Plus-TCP 现具有统一的 IPv4 和 IPv6 功能,支持多接口。
为基于 FreeRTOS 的固件实现防砖化 MCU FOTA:
宣布停止支持 FreeRTOS 202012 LTS。
FreeRTOS 网站现已提供简体中文版本
新的 FreeRTOS Long Term Support 版本现已发布。

FreeRTOS_GetUDPPayloadBuffer_Multi()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_IP.h
void * FreeRTOS_GetUDPPayloadBuffer_Multi( size_t uxRequestedSizeBytes,
                                           TickType_t uxBlockTimeTicks,
                                           uint8_t ucIPType )

从 TCP/IP 堆栈获取缓冲区以用于零拷贝接口。 用于传输数据的零拷贝接口的描述,请参阅 请参阅 FreeRTOS_sendto() 文档页面

参数:

xRequestedSizeBytes
请求的缓冲区的大小。大小以字节为单位。

xBlockTimeTicks
如果无法立即获得缓冲区,调用 RTOS 任务将准备等待缓冲区的最长时间。 如果缓冲区不可用,则调用 RTOS 任务将处于阻塞状态(以便其他任务可以执行), 直到缓冲区可用或阻塞时间到期。
阻塞时间以滴答为单位。将毫秒时间除以 portTICK_PERIOD_MS, 即可将毫秒转换为滴答数。
为了防止死锁,最大阻塞时间上限为 ipconfigMAX_SEND_BLOCK_TIME_TICKS。 ipconfigMAX_SEND_BLOCK_TIME_TICKS 在 FreeRTOSIPConfig.h 中定义。

ucIPType
请求的缓冲区类型——ipTYPE_IPv4 (0x40) 或 ipTYPE_IPv6 (0x60)

返回:
如果获取了缓冲区,则返回指向所获缓冲区的指针。 如果无法获取缓冲区,则返回 NULL。

用法示例:
FreeRTOS_sendto() 文档页面包含一个零拷贝发送操作示例, 其中包括对 FreeRTOS_GetUDPPayloadBuffer_Multi() 的调用。

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