下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。
注意:此 API 已从 FreeRTOS V4.0.0 起弃用 。请参阅 FreeRTOS_GetUDPPayloadBuffer_Multi() 了解支持 IPv6、多个端点和多个接口的新 API。如需使用已弃用的 API ,请将 FreeRTOSIPConfig.h 头文件中的 ipconfigIPv4_BACKWARD_COMPATIBLE 设置为 1。

FreeRTOS_GetUDPPayloadBuffer()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_IP.h
void *FreeRTOS_GetUDPPayloadBuffer( size_t xRequestedSizeBytes, TickType_t xBlockTimeTicks );
		

从 TCP/IP 堆栈获取缓冲区以用于零拷贝接口。

用于传输数据的零拷贝接口的描述,请参阅 请参阅 FreeRTOS_sendto() 文档页面

参数:

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

xBlockTimeTicks   调用 RTOS 任务准备为缓冲区等待的最长时间 (如果没有立即可用的缓冲区)。

如果缓冲区不可用,则调用 RTOS 任务将 保持在阻塞状态(以便执行其他任务), 直到缓冲区可用或 阻塞时间到期。

阻塞时间以 tick 为单位。 毫秒可以转换为 tick, 方法是将毫秒时间除以 portTICK_PERIOD_MS。

为了防止死锁,最大阻塞时间上限为 ipconfigMAX_SEND_BLOCK_TIME_TICKS。 ipconfigMAX_SEND_BLOCK_TIME_TICKS 在 FreeRTOSIPConfig.h 中进行定义。

返回:

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

如果无法获取缓冲区,则返回 NULL。

用法示例:

FreeRTOS_sendto() 文档页面 包含一个含有调用 FreeRTOS_GetUDPPayloadBuffer() 的示例零拷贝发送操作。

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