下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

与其他开源 TCP/IP 堆栈一起使用的旧版演示

请注意,本页发布时间早于 FreeRTOS-Plus-TCP,即 FreeRTOS 自带嵌入式 TCP/IP 堆栈的 引入时间。

本页列出了旧版 FreeRTOS 演示项目,其中包括一个完全抢占式多任务环境中的嵌入式 web 服务器。 一些演示使用 uIP 和 lwIP 作为底层嵌入式 TCP/IP 堆栈——并且早于 FreeRTOS-Plus-TCP(FreeRTOS 自带的可扩展 TCP/IP 堆栈)的推出。 这些项目的开发时长不一样, 因此,所使用的堆栈版本也不尽相同。 如需了解更多信息, 请直接参考下方提供的堆栈。 演示本身 按以下微控制器制造商列出。


uIP (和主要基于 uIP 的 FreeTCPIP )

uIP 在用于合适的应用程序时是一款很好用的软件, 原因有如下几点。 它在单个任务中运行, 因此不会发生重入相关的问题。 并且它允许在非常小的 RAM 和 ROM 占用空间内实现诸多功能。

uIP 的最大缺点是在未经修改的情况下(见下文) , 在任何一个时刻网络上都只能有一个未完成的数据包。 这意味着 与台式机通信非常缓慢。这是因为台式机使用的是 ACK 延迟算法,进而导致在接收数据包和确认数据包之间产生 200 毫秒的时延。 这是非实时 TCP/IP 堆栈中将网络流量降至最低的标准做法——收到一个数据包后,堆栈将等待查看是否还有其他数据包 将到达,希望能够发出单个 ACK 来一次确认多个传入数据包。

虽然可以在不改变 桌面 TCP/IP 堆栈配置的情况下采用一些方法提高通信速度,但就像工程中的其他事物一样—— 需要进行权衡取舍。 在这种情况下,需要权衡的是:

  1. 吞吐速度。
  2. RAM 的使用。
  3. CPU 的使用。
FreeRTOS 下载包含 uIP 的修改版本,代码名为 FreeTCPIP。 与基础(未修改) 的 uIP 代码相比, 修改版本极大地提高了吞吐量性能。 虽然吞吐量仍将低于功能更全的堆栈所能实现的速度, 但对于许多基于深度嵌入式微控制器的应用程序来说, 这也绰绰有余了。

只有后来开发的 FreeRTOS uIP 演示使用的是 FreeTCPIP,未来将会继续开发 FreeTCPIP 。


lwIP

当在其预期的、内存受限的环境中使用时, lwIP 协议栈也是一个不错的选择。 相较于 uIP,它的吞吐量更高,但同时 ROM 和 RAM 占用空间也更大。 尽管占用空间比 uIP 大,但也仍然比大多数商业 TCP/IP 产品要小。 特别是,LwIP 通过将较小的缓冲区链接在一起来创建较大的数据缓冲区,从而节省 RAM 。

这里列出的大多数(即便不是全部) FreeRTOS 演示使用的 LwIP 版本非常旧 。 然而,也有人在 FreeRTOS 互动论坛贡献了有关如何使用最新 LWIP 代码库的相关演示。 欢迎大家上传投稿 lwIP 相关内容!

另一方面, lwIP 一开始操作起来的确比较复杂, 但只要投入时间使用就会在将来的项目中有所回报。 lwIP 也是一个移动式目标,因为它在不断 更新换代(这不一定是一件坏事情)。


包含 TCP/IP 功能的 FreeRTOS 演示

Atmel 微控制器示例

  1. AVR32 AT32UC3A lwIP web 和 TFTP 服务器

    此示例使用 lwIP 在 AVR32 闪存微控制器上创建简单的 web 和 TFTP 服务器。

  2. AT91SAM7X 上运行开源 uIP TCP/IP 堆栈

    包括用于 SAM7X 集成 EMAC 外设的简单中断驱动式驱动程序。

  3. 再次在 AT91SAM7X 上运行开源 uIP TCP/IP 堆栈(这一次使用 Eclipse 工具)

    提供简单的鼠标驱动程序以及 web 服务器演示。

  4. 在 AT91SAM7X 上运行开源 lwIP TCP/IP 堆栈

    包括用于 SAM7X 集成 EMAC 外设的更全面的中断驱动式驱动程序。

Freescale 微控制器示例

  1. 使用 IAR 和 uIP 运行 Freescale Kinetis K60

    本页提供的 IAR 项目预配置为在 TWR-K60N512 控制器模块上运行。 TWR-K60N512 本身并不包含以太网连接器, 因此还需要一个 TWR-SER 外设模块 才能使用嵌入式 web 服务器的功能。 这两个模块 可以在 TWR-K60N512-KIT 塔式套件中一起购买。

  2. 在 Coldfire MCF52233 ColdFire V2 上运行开源 uIP TCP/IP 堆栈

    演示在所提供网页生成动态内容及控制目标硬件 IO。

  3. 在 Coldfire MCF51CN128 ColdFire V1 上运行开源 uIP TCP/IP 堆栈

    演示在所提供网页生成动态内容及控制目标硬件 IO,这次是在 V1 核心上操作。

Luminary Micro/Texas Instruments 微控制器示例

  1. 在 LM3S6965 和 LM3S8962 ARM Cortex-M3 上运行开源 uIP TCP/IP 堆栈

    允许从 web 浏览器向目标发送命令。 还允许显示动态生成的运行时数据。 此外,还提供了与 Eclipse 配合使用的版本

集成有 ARM Cortex-M3 微控制器子系统的 Microsemi(原 Actel )FPGA 示例

  1. 使用 IAR 和 Keil 在 SmartFusion A2F200M3 上运行开源 uIP TCP/IP 堆栈

    允许从 web 浏览器向目标发送命令。 还允许显示动态生成的运行时数据。

  2. 使用 GCC 和 SoftConsole 在 SmartFusion A2F200M3 上运行开源 uIP TCP/IP 堆栈

    允许从 web 浏览器向目标发送命令。 还允许显示动态生成的运行时数据。

NXP 微控制器示例

  1. NXP LPC17xx ARM Cortex-M3 微控制器上的 RedSuite uIP TCP/IP 堆栈

    本页的演示在 LPC1768 上开发,该微控制器安装在 Code Red 的 CRB1768 开发板上。 它显示动态生成的运行时信息,并允许从 web 浏览器向目标发送命令。

  2. NXP LPC17xx ARM Cortex-M3 微控制器上的 Rowley CrossWorks uIP TCP/IP 堆栈

    本演示与 RedSuite LPC1768 演示类似,不过使用的工具是 Rowley CrossWorks,并且是针对 Keil MCB1700 开发板。

  3. NXP LPC17xx ARM Cortex-M3 微控制器上的 IAR 嵌入式工作台 uIP TCP/IP 堆栈

    本演示与 RedSuite LPC1768 演示类似,不过使用的工具是 IAR 嵌入式工作台,并且是针对 IAR Kickstart 评估板。

  4. 在 LPC2368 上运行开源 uIP TCP/IP 堆栈

    演示对所提供网页的目标硬件 IO 的控制。

  5. 再次运行 LPC2368 项目,不过这次使用的工具是 Eclipse

    使用完全开源开发工具创建的 LPC2368 嵌入式 web 服务器示例。

  6. 在 LPC2124 上运行开源 uIP TCP/IP 堆栈

    包括轮询模式 Crystal LAN CS8900 驱动程序(在这里致谢 Paul Curtis 的贡献 )。

Renesas 处理器示例

  1. RX62N 微控制器的开源免费 FreeTCPIP (主要基于 uIP )示例:

    RX62N 微控制器有六个 FreeRTOS 演示应用程序。 一个用于 Renesas 编译器, 一个用于 GCC 编译器, 还有一个用于 IAR 编译器。 另外两个项目是为每个编译器提供的,其中一个用于 Renesas 入门套件 (RSK) ,另一个用于 Renesas 演示套件 (RDK)。 web 服务器示例包括使用 CGI 脚本显示任务和运行时统计信息。

  2. 在 SH7216 (SuperH SH-2A FPU) 上运行 uIP TCP/IP 堆栈

    web 服务器示例包括基本的 CGI 脚本功能。 用于生成页面以显示 TCP/IP 和任务运行时统计。

ST 微控制器示例

  1. 在 STR912 (ARM9) 上运行 uIP TCP/IP 堆栈和 lwIP TCP/IP 堆栈:

    此演示包括使用 uIP 或 lwIP 堆栈的选项,此次是针对 ARM9 处理器。

  2. 在 STM32 (ARM Cortex-M3) 上运行开源 uIP TCP/IP 堆栈

    Rowley CrossWorks 演示包括嵌入式 web 服务器。

使用 WizNET 接口的示例

  1. WizNET 硬件 TCP/IP 堆栈—— I2C 接口

    此示例中,TCP/IP 协处理器通过 I2C 端口生成嵌入式 web 服务器。

  2. WizNET 硬件 TCP/IP 堆栈——内存映射接口

    此示例中,使用相同的 TCP/IP 协处理器,但在 Tern E-Engine 控制器上使用内存映射接口。






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