建構 OpenThread

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

前往 GitHub 查看原始碼

如何建構 OpenThread

建構 OpenThread 的步驟會因工具鍊、使用者機器和目標平台而異。

最常見的工作流程如下:

  1. 設定建構環境並安裝所需工具鍊:
    1. 如要直接在電腦上建構,請參閱模擬程式碼研究室的詳細說明
    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. 從已複製的存放區中的 #39; 根目錄:
    1. 安裝工具鍊:
      ./script/bootstrap
      
    2. 建構設定:
      ./script/build platform-specific-args cmake-options
      
  4. 將所需二進位檔調整為目標平台。所有產生的二進位檔均位於 ./build/bin 中。

設定

您可以在建構程序中為不同的功能和行為設定 OpenThread。以下位置提供可用的設定選項:

類型 位置
編譯時間常數 列出所有 /src/core/config 標頭檔案
cmake 建構選項 列於openthread/examples/README.md

建構範例

使用 cmake 建構選項啟用平台功能。例如,如要為已啟用佣金與彙整工具支援的 CC2538 平台建構二進位檔:

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

或者,如要在存放區中啟用 Jam Detection 功能,以建立 nRF52840 平台:

./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 設計的完整 Thread 裝置 -DOT_APP_CLI=ON
-DOT_FTD=ON
ot-cli-mtd 用於 SoC 設計的最小 Thread 裝置 -DOT_APP_CLI=ON
-DOT_MTD=ON
ot-ncp-ftd 網路處理處理器 (NCP) 設計的完整 Thread 裝置 -DOT_APP_NCP=ON
-DOT_FTD=ON
ot-ncp-mtd 適用於 NCP 設計的最小 Thread 裝置 -DOT_APP_NCP=ON
-DOT_MTD=ON
ot-rcp 無線電處理機 (RCP) 設計 -DOT_APP_RCP=ON
-DOT_RCP=ON

根據預設,系統會啟用以上所有標記。如果您明確停用所有旗標,系統就不會建構應用程式,但仍會在 ./build/lib 中產生 OpenThread 程式庫檔案,以便在專案中使用。

請查看 examples/platforms 目錄,瞭解每個平台支援的旗標。如要進一步瞭解 FTD 和 MTD,請參閱 Thread Primer。如要進一步瞭解 SoC 和 NCP 設計,請參閱「平台」。

這些二進位檔的閃爍程序會因範例平台而異。如需詳細操作說明,請參閱每個平台的範例資料夾中的 README。

OpenThread Daemon (開放式執行緒 Daemon)

OpenThread Daemon (OT Daemon) 是 OpenThread POSIX 建構模式,可供執行 OpenThread 做為服務,並用於 RCP 設計。如要進一步瞭解如何建構及使用應用程式,請參閱 OpenThread Daemon

建構支援套件

/third_party 內提供建構支援套件 (BSP)。BSP 是 OpenThread 在各個平台上使用的其他第三方程式碼,通常在將 OpenThread 移植至新的硬體平台時納入。