如何建構 OpenThread
建立 OpenThread 的步驟會因工具鍊、使用者機器和目標平台而有所不同。
最常見的工作流程如下:
- 設定建構環境並安裝所需工具鍊:
- 直接在機器上建構:如需詳細操作說明,請參閱模擬程式碼研究室
- 如要使用具有預先設定的環境的 Docker 容器,請下載並執行 OpenThread
environment
映像檔:docker pull openthread/environment:latest
docker run -it --rm openthread/environment bash
- 在所選環境中,複製平台專用的 OpenThread Git 存放區。以 CC2538 為例:
git clone https://github.com/openthread/ot-cc2538.git --recursive
- 從複製的存放區和根目錄:
- 安裝工具鍊:
./script/bootstrap
- 建構設定:
./script/build platform-specific-args cmake-options
- 安裝工具鍊:
- 將所需二進位檔閃爍到目標平台。所有產生的二進位檔都位於
./build/bin
。
設定
您可以在建構過程中針對 Open 和不同行為設定 OpenThread。以下為提供設定選項的詳細說明:
類型 | 位置 |
---|---|
編譯常數常數 | 列於 /src/core/config 的所有標頭檔案中 |
Cmake 建構選項 | 列於 openthread/examples/README.md |
建構範例
使用 cmake 建構選項,為平台啟用功能。舉例來說,如要為 CC2538 平台建構二進位檔,同時啟用 Commissioner 和 Contacter 支援功能:
./script/build -DOT_COMMISSIONER=ON -DOT_JOINER=ON
或者,您也可以在存放區中使用 Jam 偵測功能建立 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 設計的全執行緒裝置 | -DOT_APP_CLI=ON -DOT_FTD=ON |
ot-cli-mtd |
適用於 SoC 設計的最小 Thread 裝置 | -DOT_APP_CLI=ON -DOT_MTD=ON |
ot-ncp-ftd |
網路式處理器 (NCP) 設計的完整執行緒裝置 | -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 程式庫檔案,供專案使用。
查看每個平台的 Makefiles 範例,瞭解每個平台支援的標記。如要進一步瞭解 FTD 和 MTD,請參閱 Thread Primer。如要進一步瞭解 SoC 和 NCP 設計,請參閱 Platforms (平台)。
這些二進位檔的刷新程序會因範例平台而有所不同。如需詳細操作說明,請參閱各平台的範例資料夾。
OpenThread Daemon
OpenThread Daemon (OT Daemon) 是 OpenThread POSIX 建構模式,是以服務形式執行 OpenThread,並與 RCP 設計搭配使用。如要進一步瞭解如何建立及使用,請參閱 OpenThread Daemon。
建構支援方案
建構支援套件 (BSP) 位於 /third_party
。BSP 是 OpenThread 在各個平台上使用的額外第三方程式碼,通常在將 OpenThread 移植到新的硬體平台時會納入。