FreeRTOS-Plus-TCP v4.0.0 增加了 IPv6、多个网络接口和端点,
并提高了
FreeRTOS-Plus-TCP 库的稳健性、安全性和模块性。
请点击
此处了解更多信息。
FreeRTOS-Plus-TCP
适用于 FreeRTOS 的开源和线程安全 TCP/IP 堆栈
FreeRTOS-Plus-TCP 是一种适用于 FreeRTOS 的可扩展的开源和线程安全 TCP/IP 堆栈。
FreeRTOS-Plus-TCP 提供了一个熟悉的
基于标准 Berkeley 套接字的接口,
简单易用,便于快速学习。 高级用户
还可以使用替代回调接口。
FreeRTOS-Plus-TCP 的功能和 RAM占用空间
完全可扩展,使 FreeRTOS-Plus-TCP 既适用于较小的低吞吐量微控制器,
也适用于较大的高吞吐量
微处理器。
请参阅树形菜单(左侧)中的 FreeRTOS-Plus-TCP部分,
获取 FreeRTOS-Plus-TCP 网络教程、
移植指南、
API 文档以及
免费 TCP/IP 源代码下载链接。
|
|
功能 |
Berkeley 套接字 API |
支持 IPv4、IPv6、多个网络接口、多个网络端点 |
可选支持 TCP 滑动窗口 |
完全可重入和线程安全 API |
包括 ARP、
DHCP、
DNS、
LLMNR、
NBNS、
RA、
ND、
ICMP、
和 ICMPv6
|
免费 ARP |
静态、DHCP、DHCPv6、RA 和自动 IP 地址分配 |
也可仅用作 UDP 堆栈 |
可选回调接口 |
可选分段传出数据包 |
|
|
FreeRTOS-Plus-TCP 支持以下构建组合(默认启用 IPv4、IPv6 和 TCP):
构建组合 |
ipconfigUSE_IPv4 |
ipconfigUSE_IPv6 |
ipconfigUSE_TCP |
IPv4 + UDP | 1 | 0 | 0 |
IPv4 + UDP + TCP | 1 | 0 | 1 |
IPv6 + UDP | 0 | 1 | 0 |
IPv6 + UDP + TCP | 0 | 1 | 1 |
IPv4 + IPv6 + UDP | 1 | 1 | 0 |
IPv4 + IPv6 + UDP + TCP | 1 | 1 | 1 |
启用 IPv4 & IPv6 时的代码大小(使用 GCC for ARM Cortex-M 生成的示例) |
GCC ARM -01 [-mcpu=cortex-m4 -std=gnu11 ] |
GCC ARM -0s [-mcpu=cortex-m4 -std=gnu11 ] |
文件 |
大小(字节) |
文件 |
大小(字节) |
FreeRTOS_ARP.c | 2400 | FreeRTOS_ARP.c | 2094 |
FreeRTOS_BitConfig.c | 452 | FreeRTOS_BitConfig.c | 400 |
FreeRTOS_DHCP.c | 2689 | FreeRTOS_DHCP.c | 2359 |
FreeRTOS_DHCPv6.c | 2934 | FreeRTOS_DHCPv6.c | 2676 |
FreeRTOS_DNS.c | 1463 | FreeRTOS_DNS.c | 1309 |
FreeRTOS_DNS_Cache.c | 980 | FreeRTOS_DNS_Cache.c | 860 |
FreeRTOS_DNS_Callback.c | 408 | FreeRTOS_DNS_Callback.c | 396 |
FreeRTOS_DNS_Networking.c | 188 | FreeRTOS_DNS_Networking.c | 178 |
FreeRTOS_DNS_Parser.c | 910 | FreeRTOS_DNS_Parser.c | 782 |
FreeRTOS_ICMP.c | 80 | FreeRTOS_ICMP.c | 78 |
FreeRTOS_IP.c | 2584 | FreeRTOS_IP.c | 2366 |
FreeRTOS_IP_Timers.c | 756 | FreeRTOS_IP_Timers.c | 682 |
FreeRTOS_IP_Utils.c | 2495 | FreeRTOS_IP_Utils.c | 2177 |
FreeRTOS_IPv4.c | 296 | FreeRTOS_IPv4.c | 208 |
FreeRTOS_IPv4_Sockets.c | 292 | FreeRTOS_IPv4_Sockets.c | 190 |
FreeRTOS_IPv4_Utils.c | 180 | FreeRTOS_IPv4_Utils.c | 134 |
FreeRTOS_IPv6.c | 790 | FreeRTOS_IPv6.c | 644 |
FreeRTOS_IPv6_Sockets.c | 885 | FreeRTOS_IPv6_Sockets.c | 769 |
FreeRTOS_IPv6_Utils.c | 290 | FreeRTOS_IPv6_Utils.c | 292 |
FreeRTOS_ND.c | 1850 | FreeRTOS_ND.c | 1704 |
FreeRTOS_RA.c | 1228 | FreeRTOS_RA.c | 1022 |
FreeRTOS_Routing.c | 1739 | FreeRTOS_Routing.c | 1559 |
FreeRTOS_Sockets.c | 7272 | FreeRTOS_Sockets.c | 6206 |
FreeRTOS_Stream_Buffer.c | 498 | FreeRTOS_Stream_Buffer.c | 424 |
FreeRTOS_TCP_IP.c | 1186 | FreeRTOS_TCP_IP.c | 942 |
FreeRTOS_TCP_IP_IPV4.c | 608 | FreeRTOS_TCP_IP_IPV4.c | 430 |
FreeRTOS_TCP_IP_IPV6.c | 614 | FreeRTOS_TCP_IP_IPV6.c | 482 |
FreeRTOS_TCP_Reception.c | 832 | FreeRTOS_TCP_Reception.c | 678 |
FreeRTOS_TCP_State_Handling.c | 1690 | FreeRTOS_TCP_State_Handling.c | 1464 |
FreeRTOS_TCP_State_Handling_IPV4.c | 276 | FreeRTOS_TCP_State_Handling_IPV4.c | 224 |
FreeRTOS_TCP_State_Handling_IPV6.c | 304 | FreeRTOS_TCP_State_Handling_IPV6.c | 256 |
FreeRTOS_TCP_Transmission.c | 1866 | FreeRTOS_TCP_Transmission.c | 1636 |
FreeRTOS_TCP_Transmission_IPV4.c | 788 | FreeRTOS_TCP_Transmission_IPV4.c | 658 |
FreeRTOS_TCP_Transmission_IPV6.c | 996 | FreeRTOS_TCP_Transmission_IPV6.c | 918 |
FreeRTOS_TCP_Utils.c | 22 | FreeRTOS_TCP_Utils.c | 14 |
FreeRTOS_TCP_Utils_IPV4.c | 72 | FreeRTOS_TCP_Utils_IPV4.c | 46 |
FreeRTOS_TCP_Utils_IPV6.c | 50 | FreeRTOS_TCP_Utils_IPV6.c | 48 |
FreeRTOS_TCP_WIN.c | 2086 | FreeRTOS_TCP_WIN.c | 1768 |
FreeRTOS_Tiny_TCP.c | 302 | FreeRTOS_Tiny_TCP.c | 290 |
FreeRTOS_UDP_IP.c | 116 | FreeRTOS_UDP_IP.c | 112 |
FreeRTOS_UDP_IPv4.c | 620 | FreeRTOS_UDP_IPv4.c | 548 |
FreeRTOS_UDP_IPv6.c | 756 | FreeRTOS_UDP_IPv6.c | 656 |
合计 | 46843 | 合计 | 40679 |
仅启用 IPv4 时的代码大小(使用 GCC for ARM Cortex-M 生成的示例) |
GCC ARM -01 [-mcpu=cortex-m4 -std=gnu11 ] |
GCC ARM -0s [-mcpu=cortex-m4 -std=gnu11 ] |
文件 |
大小(字节) |
文件 |
大小(字节) |
FreeRTOS_ARP.c | 2282 | FreeRTOS_ARP.c | 1990 |
FreeRTOS_BitConfig.c | 452 | FreeRTOS_BitConfig.c | 400 |
FreeRTOS_DHCP.c | 2613 | FreeRTOS_DHCP.c | 2293 |
FreeRTOS_DNS.c | 1225 | FreeRTOS_DNS.c | 1005 |
FreeRTOS_DNS_Cache.c | 856 | FreeRTOS_DNS_Cache.c | 734 |
FreeRTOS_DNS_Callback.c | 408 | FreeRTOS_DNS_Callback.c | 396 |
FreeRTOS_DNS_Networking.c | 188 | FreeRTOS_DNS_Networking.c | 178 |
FreeRTOS_DNS_Parser.c | 910 | FreeRTOS_DNS_Parser.c | 782 |
FreeRTOS_ICMP.c | 80 | FreeRTOS_ICMP.c | 78 |
FreeRTOS_IP.c | 2316 | FreeRTOS_IP.c | 2108 |
FreeRTOS_IP_Timers.c | 734 | FreeRTOS_IP_Timers.c | 656 |
FreeRTOS_IP_Utils.c | 2243 | FreeRTOS_IP_Utils.c | 1981 |
FreeRTOS_IPv4.c | 296 | FreeRTOS_IPv4.c | 208 |
FreeRTOS_IPv4_Sockets.c | 292 | FreeRTOS_IPv4_Sockets.c | 190 |
FreeRTOS_IPv4_Utils.c | 180 | FreeRTOS_IPv4_Utils.c | 134 |
FreeRTOS_Routing.c | 1183 | FreeRTOS_Routing.c | 1019 |
FreeRTOS_Sockets.c | 6914 | FreeRTOS_Sockets.c | 5856 |
FreeRTOS_Stream_Buffer.c | 498 | FreeRTOS_Stream_Buffer.c | 424 |
FreeRTOS_TCP_IP.c | 1172 | FreeRTOS_TCP_IP.c | 930 |
FreeRTOS_TCP_IP_IPV4.c | 608 | FreeRTOS_TCP_IP_IPV4.c | 430 |
FreeRTOS_TCP_Reception.c | 808 | FreeRTOS_TCP_Reception.c | 658 |
FreeRTOS_TCP_State_Handling.c | 1676 | FreeRTOS_TCP_State_Handling.c | 1448 |
FreeRTOS_TCP_State_Handling_IPV4.c | 276 | FreeRTOS_TCP_State_Handling_IPV4.c | 224 |
FreeRTOS_Transmission.cTCP | 1788 | FreeRTOS_TCP_Transmission.c | 1548 |
FreeRTOS_TCP_Transmission_IPV4.c | 784 | FreeRTOS_TCP_Transmission_IPV4.c | 650 |
FreeRTOS_TCP_Utils.c | 18 | FreeRTOS_TCP_Utils.c | 12 |
FreeRTOS_TCP_Utils_IPV4.c | 72 | FreeRTOS_TCP_Utils_IPV4.c | 46 |
FreeRTOS_TCP_WIN.c | 2086 | FreeRTOS_TCP_WIN.c | 1768 |
FreeRTOS_Tiny_TCP.c | 302 | FreeRTOS_Tiny_TCP.c | 290 |
FreeRTOS_UDP_IP.c | 82 | FreeRTOS_UDP_IP.c | 72 |
FreeRTOS_UDP_IPv4.c | 616 | FreeRTOS_UDP_IPv4.c | 544 |
合计 | 33958 | 合计 | 29052 |
仅启用 IPv6 时的代码大小(使用 GCC for ARM Cortex-M 生成的示例) |
GCC ARM -01 [-mcpu=cortex-m4 -std=gnu11 ] |
GCC ARM -0s [-mcpu=cortex-m4 -std=gnu11 ] |
文件 |
大小(字节) |
文件 |
大小(字节) |
FreeRTOS_ARP.c | 1294 | FreeRTOS_ARP.c | 1090 |
FreeRTOS_BitConfig.c | 452 | FreeRTOS_BitConfig.c | 400 |
FreeRTOS_DHCPv6.c | 2934 | FreeRTOS_DHCPv6.c | 2676 |
FreeRTOS_ICMP.c | 80 | FreeRTOS_ICMP.c | 78 |
FreeRTOS_IP.c | 2274 | FreeRTOS_IP.c | 2082 |
FreeRTOS_IP_Timers.c | 648 | FreeRTOS_IP_Timers.c | 590 |
FreeRTOS_IP_Utils.c | 2411 | FreeRTOS_IP_Utils.c | 2095 |
FreeRTOS_IPv6.c | 790 | FreeRTOS_IPv6.c | 644 |
FreeRTOS_IPv6_Sockets.c | 885 | FreeRTOS_IPv6_Sockets.c | 769 |
FreeRTOS_IPv6_Utils.c | 290 | FreeRTOS_IPv6_Utils.c | 292 |
FreeRTOS_ND.c | 1850 | FreeRTOS_ND.c | 1704 |
FreeRTOS_RA.c | 1228 | FreeRTOS_RA.c | 1022 |
FreeRTOS_Routing.c | 1357 | FreeRTOS_Routing.c | 1269 |
FreeRTOS_Sockets.c | 6910 | FreeRTOS_Sockets.c | 5982 |
FreeRTOS_Stream_Buffer.c | 498 | FreeRTOS_Stream_Buffer.c | 424 |
FreeRTOS_TCP_IP.c | 1176 | FreeRTOS_TCP_IP.c | 934 |
FreeRTOS_TCP_IP_IPV6.c | 614 | FreeRTOS_TCP_IP_IPV6.c | 482 |
FreeRTOS_TCP_Reception.c | 818 | FreeRTOS_TCP_Reception.c | 666 |
FreeRTOS_TCP_State_Handling.c | 1676 | FreeRTOS_TCP_State_Handling.c | 1448 |
FreeRTOS_TCP_State_Handling_IPV6.c | 304 | FreeRTOS_TCP_State_Handling_IPV6.c | 256 |
FreeRTOS_TCP_Transmission.c | 1814 | FreeRTOS_TCP_Transmission.c | 1588 |
FreeRTOS_TCP_Transmission_IPV6.c | 996 | FreeRTOS_TCP_Transmission_IPV6.c | 918 |
FreeRTOS_TCP_Utils.c | 18 | FreeRTOS_TCP_Utils.c | 12 |
FreeRTOS_TCP_Utils_IPV6.c | 50 | FreeRTOS_TCP_Utils_IPV6.c | 48 |
FreeRTOS_TCP_WIN.c | 2086 | FreeRTOS_TCP_WIN.c | 1768 |
FreeRTOS_Tiny_TCP.c | 302 | FreeRTOS_Tiny_TCP.c | 290 |
FreeRTOS_UDP_IP.c | 94 | FreeRTOS_UDP_IP.c | 90 |
FreeRTOS_UDP_IPv6.c | 720 | FreeRTOS_UDP_IPv6.c | 616 |
合计 | 34569 | 合计 | 30233 |
编译器: arm-none-eabi-gcc(适用于 STM32 的 GNU 工具)10.3.1
用于对象大小计算的版本:
bb654636
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.