Google 致力于为黑人社区推动种族平等。查看具体行动

构建 OpenThread

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

在 GitHub 上查看源代码

如何构建 OpenThread

构建 OpenThread 的步骤因工具链、用户机器和目标平台而异。

最常见的工作流程如下:

  1. 设置构建环境并安装所需的工具链:
    1. 如需直接在计算机上构建,请参阅模拟 Codelab,了解详细说明
    2. 如需在预配置环境中使用 Docker 容器,请下载并运行 OpenThread environment 映像:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
      
  2. 在您选择的环境中,克隆特定于平台的 OpenThread Git 代码库。以 CC2538 为例:
    git clone https://github.com/openthread/ot-cc2538.git --recursive
    
  3. 从克隆的代码库的根目录中:
    1. 安装工具链:
      ./script/bootstrap
      
    2. 构建配置:
      ./script/build platform-specific-args cmake-options
      
  4. 将所需的二进制文件刷写到目标平台。所有生成的二进制文件都位于 ./build/bin 中。

配置

您可以在构建流程中针对不同的功能和行为配置 OpenThread。可用的配置选项在以下位置详细说明:

类型 位置
编译时常量 列在 /src/core/config 中的所有头文件中
cmake 构建选项 已在openthread/examples/README.md中列出

build 示例

使用 cmake 构建选项为平台启用功能。例如,如需为启用了佣金和联接器支持的 CC2538 平台构建二进制文件,请运行以下命令:

./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON

或者,如需构建 nRF52840 平台并在其代码库中启用 Jam Detection 功能,请执行以下操作:

./script/build nrf52840 UART_trans -DOT_JAM_DETECTION=ON

二进制文件

以下二进制文件在构建过程中在 ./build/bin 中生成。如需确定生成哪些二进制文件,请将标志与 ./script/build 命令搭配使用。例如,如需构建 OpenThread 并仅生成 FTD CLI 二进制文件,请运行以下命令:

./script/build -DOT_APP_CLI=ON -DOT_FTD=ON -DOT_MTD=OFF -DOT_APP_NCP=OFF -DOT_APP_RCP=OFF -DOT_RCP=OFF
二元 说明 选项
ot-cli-ftd SoC 设计的全线程设备 -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd 用于 SoC 设计的最小线程设备 -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd 用于网络协处理器 (NCP) 设计的全线程设备 -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd 用于 NCP 设计的最小线程设备 -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp 无线装置处理器 (RCP) 设计 -DOT_APP_RCP=ON
-DOT_RCP=ON

默认情况下,上述所有标志均处于启用状态。如果您明确停用所有标志,系统不会构建应用,但仍会在 ./build/lib 中生成 OpenThread 库文件,以便在项目中使用。

查看 examples/platforms 目录,了解每个平台支持的标志。如需详细了解 FTD 和 MTD,请参阅线程基础。如需详细了解 SoC 和 NCP 设计,请参阅平台

刷写这些二进制文件的过程因示例平台而异。如需了解详细说明,请参阅各平台的示例文件夹中的自述文件。

OpenThread 守护程序

OpenThread 守护程序 (OT Daemon) 是一种 OpenThread POSIX 构建模式,它以服务形式运行 OpenThread,并与 RCP 设计搭配使用。如需详细了解如何构建和使用该工具,请参阅 OpenThread 守护程序

构建支持套餐

build 支持软件包 (BSP) 可在 /third_party 中找到。BSP 是 OpenThread 在每个相应平台上使用的额外第三方代码,通常在将 OpenThread 移植到新的硬件平台时包含在内。