下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。
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 源代码下载链接。

RTOS, TCP, FAT
Filezilla 将大型和小型文件 FTP 到
66MHz MCU(用于运行 FreeRTOS-Plus-TCP 和 FreeRTOS-Plus-FAT


功能
Berkeley 套接字 API
支持 IPv4、IPv6、多个网络接口、多个网络端点
可选支持 TCP 滑动窗口
完全可重入和线程安全 API
包括 ARPDHCPDNSLLMNRNBNSRANDICMP、 和 ICMPv6
免费 ARP
静态、DHCP、DHCPv6、RA 和自动 IP 地址分配
也可仅用作 UDP 堆栈
可选回调接口
可选分段传出数据包
Berkeley 套接字 API
FreeRTOS_socket()
FreeRTOS_setsockopt()
FreeRTOS_bind()
FreeRTOS_listen()
FreeRTOS_connect()
FreeRTOS_accept()
FreeRTOS_send() / FreeRTOS_sendto()
FreeRTOS_recv() / FreeRTOS_recvfrom()
等。


FreeRTOS-Plus-TCP 支持以下构建组合(默认启用 IPv4、IPv6 和 TCP):

构建组合 ipconfigUSE_IPv4 ipconfigUSE_IPv6 ipconfigUSE_TCP
IPv4 + UDP 1 00
IPv4 + UDP + TCP 1 0 1 
IPv6 + UDP0 1 0
IPv6 + UDP + TCP0 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.c2400FreeRTOS_ARP.c2094
FreeRTOS_BitConfig.c452FreeRTOS_BitConfig.c400
FreeRTOS_DHCP.c2689FreeRTOS_DHCP.c2359
FreeRTOS_DHCPv6.c2934FreeRTOS_DHCPv6.c2676
FreeRTOS_DNS.c1463FreeRTOS_DNS.c1309
FreeRTOS_DNS_Cache.c980FreeRTOS_DNS_Cache.c860
FreeRTOS_DNS_Callback.c408FreeRTOS_DNS_Callback.c396
FreeRTOS_DNS_Networking.c188FreeRTOS_DNS_Networking.c178
FreeRTOS_DNS_Parser.c910FreeRTOS_DNS_Parser.c782
FreeRTOS_ICMP.c80FreeRTOS_ICMP.c78
FreeRTOS_IP.c2584FreeRTOS_IP.c2366
FreeRTOS_IP_Timers.c756FreeRTOS_IP_Timers.c682
FreeRTOS_IP_Utils.c2495FreeRTOS_IP_Utils.c2177
FreeRTOS_IPv4.c296FreeRTOS_IPv4.c208
FreeRTOS_IPv4_Sockets.c292FreeRTOS_IPv4_Sockets.c190
FreeRTOS_IPv4_Utils.c180FreeRTOS_IPv4_Utils.c134
FreeRTOS_IPv6.c790FreeRTOS_IPv6.c644
FreeRTOS_IPv6_Sockets.c885FreeRTOS_IPv6_Sockets.c769
FreeRTOS_IPv6_Utils.c290FreeRTOS_IPv6_Utils.c292
FreeRTOS_ND.c1850FreeRTOS_ND.c1704
FreeRTOS_RA.c1228FreeRTOS_RA.c1022
FreeRTOS_Routing.c1739FreeRTOS_Routing.c1559
FreeRTOS_Sockets.c7272FreeRTOS_Sockets.c6206
FreeRTOS_Stream_Buffer.c498FreeRTOS_Stream_Buffer.c424
FreeRTOS_TCP_IP.c1186FreeRTOS_TCP_IP.c942
FreeRTOS_TCP_IP_IPV4.c608FreeRTOS_TCP_IP_IPV4.c430
FreeRTOS_TCP_IP_IPV6.c614FreeRTOS_TCP_IP_IPV6.c482
FreeRTOS_TCP_Reception.c832FreeRTOS_TCP_Reception.c678
FreeRTOS_TCP_State_Handling.c1690FreeRTOS_TCP_State_Handling.c1464
FreeRTOS_TCP_State_Handling_IPV4.c276FreeRTOS_TCP_State_Handling_IPV4.c224
FreeRTOS_TCP_State_Handling_IPV6.c304FreeRTOS_TCP_State_Handling_IPV6.c256
FreeRTOS_TCP_Transmission.c1866FreeRTOS_TCP_Transmission.c1636
FreeRTOS_TCP_Transmission_IPV4.c788FreeRTOS_TCP_Transmission_IPV4.c658
FreeRTOS_TCP_Transmission_IPV6.c996FreeRTOS_TCP_Transmission_IPV6.c918
FreeRTOS_TCP_Utils.c22FreeRTOS_TCP_Utils.c14
FreeRTOS_TCP_Utils_IPV4.c72FreeRTOS_TCP_Utils_IPV4.c46
FreeRTOS_TCP_Utils_IPV6.c50FreeRTOS_TCP_Utils_IPV6.c48
FreeRTOS_TCP_WIN.c2086FreeRTOS_TCP_WIN.c1768
FreeRTOS_Tiny_TCP.c302FreeRTOS_Tiny_TCP.c290
FreeRTOS_UDP_IP.c116FreeRTOS_UDP_IP.c112
FreeRTOS_UDP_IPv4.c620FreeRTOS_UDP_IPv4.c548
FreeRTOS_UDP_IPv6.c756FreeRTOS_UDP_IPv6.c656
合计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.c2282FreeRTOS_ARP.c1990
FreeRTOS_BitConfig.c452FreeRTOS_BitConfig.c400
FreeRTOS_DHCP.c2613FreeRTOS_DHCP.c2293
FreeRTOS_DNS.c1225FreeRTOS_DNS.c1005
FreeRTOS_DNS_Cache.c856FreeRTOS_DNS_Cache.c734
FreeRTOS_DNS_Callback.c408FreeRTOS_DNS_Callback.c396
FreeRTOS_DNS_Networking.c188FreeRTOS_DNS_Networking.c178
FreeRTOS_DNS_Parser.c910FreeRTOS_DNS_Parser.c782
FreeRTOS_ICMP.c80FreeRTOS_ICMP.c78
FreeRTOS_IP.c2316FreeRTOS_IP.c2108
FreeRTOS_IP_Timers.c734FreeRTOS_IP_Timers.c656
FreeRTOS_IP_Utils.c2243FreeRTOS_IP_Utils.c1981
FreeRTOS_IPv4.c296FreeRTOS_IPv4.c208
FreeRTOS_IPv4_Sockets.c292FreeRTOS_IPv4_Sockets.c190
FreeRTOS_IPv4_Utils.c180FreeRTOS_IPv4_Utils.c134
FreeRTOS_Routing.c1183FreeRTOS_Routing.c1019
FreeRTOS_Sockets.c6914FreeRTOS_Sockets.c5856
FreeRTOS_Stream_Buffer.c498FreeRTOS_Stream_Buffer.c424
FreeRTOS_TCP_IP.c1172FreeRTOS_TCP_IP.c930
FreeRTOS_TCP_IP_IPV4.c608FreeRTOS_TCP_IP_IPV4.c430
FreeRTOS_TCP_Reception.c808FreeRTOS_TCP_Reception.c658
FreeRTOS_TCP_State_Handling.c1676FreeRTOS_TCP_State_Handling.c1448
FreeRTOS_TCP_State_Handling_IPV4.c276FreeRTOS_TCP_State_Handling_IPV4.c224
FreeRTOS_Transmission.cTCP1788FreeRTOS_TCP_Transmission.c1548
FreeRTOS_TCP_Transmission_IPV4.c784FreeRTOS_TCP_Transmission_IPV4.c650
FreeRTOS_TCP_Utils.c18FreeRTOS_TCP_Utils.c12
FreeRTOS_TCP_Utils_IPV4.c72FreeRTOS_TCP_Utils_IPV4.c46
FreeRTOS_TCP_WIN.c2086FreeRTOS_TCP_WIN.c1768
FreeRTOS_Tiny_TCP.c302FreeRTOS_Tiny_TCP.c290
FreeRTOS_UDP_IP.c82FreeRTOS_UDP_IP.c72
FreeRTOS_UDP_IPv4.c616FreeRTOS_UDP_IPv4.c544
合计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.c1294FreeRTOS_ARP.c1090
FreeRTOS_BitConfig.c452FreeRTOS_BitConfig.c400
FreeRTOS_DHCPv6.c2934FreeRTOS_DHCPv6.c2676
FreeRTOS_ICMP.c80FreeRTOS_ICMP.c78
FreeRTOS_IP.c2274FreeRTOS_IP.c2082
FreeRTOS_IP_Timers.c648FreeRTOS_IP_Timers.c590
FreeRTOS_IP_Utils.c2411FreeRTOS_IP_Utils.c2095
FreeRTOS_IPv6.c790FreeRTOS_IPv6.c644
FreeRTOS_IPv6_Sockets.c885FreeRTOS_IPv6_Sockets.c769
FreeRTOS_IPv6_Utils.c290FreeRTOS_IPv6_Utils.c292
FreeRTOS_ND.c1850FreeRTOS_ND.c1704
FreeRTOS_RA.c1228FreeRTOS_RA.c1022
FreeRTOS_Routing.c1357FreeRTOS_Routing.c1269
FreeRTOS_Sockets.c6910FreeRTOS_Sockets.c5982
FreeRTOS_Stream_Buffer.c498FreeRTOS_Stream_Buffer.c424
FreeRTOS_TCP_IP.c1176FreeRTOS_TCP_IP.c934
FreeRTOS_TCP_IP_IPV6.c614FreeRTOS_TCP_IP_IPV6.c482
FreeRTOS_TCP_Reception.c818FreeRTOS_TCP_Reception.c666
FreeRTOS_TCP_State_Handling.c1676FreeRTOS_TCP_State_Handling.c1448
FreeRTOS_TCP_State_Handling_IPV6.c304FreeRTOS_TCP_State_Handling_IPV6.c256
FreeRTOS_TCP_Transmission.c1814FreeRTOS_TCP_Transmission.c1588
FreeRTOS_TCP_Transmission_IPV6.c996FreeRTOS_TCP_Transmission_IPV6.c918
FreeRTOS_TCP_Utils.c18FreeRTOS_TCP_Utils.c12
FreeRTOS_TCP_Utils_IPV6.c50FreeRTOS_TCP_Utils_IPV6.c48
FreeRTOS_TCP_WIN.c2086FreeRTOS_TCP_WIN.c1768
FreeRTOS_Tiny_TCP.c302FreeRTOS_Tiny_TCP.c290
FreeRTOS_UDP_IP.c94FreeRTOS_UDP_IP.c90
FreeRTOS_UDP_IPv6.c720FreeRTOS_UDP_IPv6.c616
合计34569合计30233


编译器: arm-none-eabi-gcc(适用于 STM32 的 GNU 工具)10.3.1
用于对象大小计算的版本: bb654636

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