移植 lwIP - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

移植 lwIP

lwIP 是替代的开源 TCP/IP 堆栈。有关更多信息,请参阅 lwIP-轻型TCP/IP堆栈-摘要. FreeRTOS 目前支持版本2.1.2。

Prerequisites

要将 lwIP 堆栈,您需要以下内容:

  • 包括供应商提供的网络驱动程序在内的 IDE 项目或 CMakeLists.txt 列表文件。

  • 一个 FreeRTOS 内核的经验证配置。

    有关配置 FreeRTOS 平台的内核,请参阅 配置 FreeRTOS 内核移植.

Porting

在将 lwIP 将TCP/IP堆栈连接到您的设备,检查 /libraries/3rdparty/lwip/src/portable 目录,查看到您平台的端口是否已存在。

  1. 如果移植不存在,请执行以下操作:

    低于 /libraries/3rdparty/lwip/src/portable,创建名为的目录 vendor/board/netif,其中 vendorboard 目录与您的平台匹配。

  2. 根据存根文件中的注释移植 /libraries/3rdparty/lwip/src/netif/ethernetif.c 存根文件。

  3. 在您创建移植之后,或者如果移植已存在,请在测试项目的 main.c 文件中,添加对 tcpip_init() 的调用。

  4. 英寸 /vendors/vendor/boards/board/aws_tests/config_files,创建一个名为的配置文件 lwipopts.h。此文件必须包含以下行:

    #include "arch/lwipopts_freertos.h"

    该文件还应包含任何特定于平台的配置选项。

Testing

如果使用 IDE 构建测试项目,您需要在 IDE 项目中设置库移植。

注意

没有特定于的TCP/IP移植测试 lwIP.

设置 IDE 测试项目

如果使用 IDE 进行移植和测试,您需要先将一些源文件添加到 IDE 测试项目中,然后才能测试移植的代码。

重要

在以下步骤中,请确保您将源文件从磁盘上位置添加到了 IDE 项目。请勿创建源文件的重复副本。

要设置 lwIP IDE项目中的源文件

  1. lwip/src 及其子目录中的所有源文件和标头文件添加到 aws_tests IDE 项目中。

    注意

    如果您将 .c 文件添加到 IDE 项目,然后为移植编辑该 .c 文件,则您必须将原始 .c 文件替换为在 IDE 项目中编辑过的文件。

  2. 将以下路径添加到编译器的包含路径:

    • /libraries/3rdparty/lwip/src/include

    • /libraries/3rdparty/lwip/src/portable

    • /libraries/3rdparty/lwip/src/portable/vendor/board/include

配置 CMakeLists.txt 文件

如果您正在使用 CMake 要构建测试项目,您需要为中的库定义一个便携式层目标 CMake 列表文件。

要在 CMakeLists.txt 中定义库的可移植层目标,请按照FreeRTOS 可移植层中的说明进行操作。

/vendors/vendor/boards/board/CMakeLists.txt 中的 CMakeLists.txt 模板列表文件包括示例可移植层目标定义。您可以取消注释要移植的库的定义,并对其进行修改以适合您的平台。