Google致力於提高黑人社區的種族平等。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

構建OpenThread

工具鏈

用於構建OpenThread的主要支持工具鍊是GNU Autotools。

GNU自動工具

可以在每個示例的platform文件夾中找到有關使用GNU Autotools構建示例的說明。請注意,這些示例的目的是顯示在每個相應平台上運行OpenThread所需的最少代碼。因此,它們沒有突出平台的全部功能。

根據您的用例,可能需要在構建期間進行進一步配置。

GNU Autotools-Nest Labs構建

Nest Labs基於GNU Autotools創建了一個定制的交鑰匙構建系統框架。這用於需要支持的獨立軟件包:

  • 建立並針對獨立構建主機系統
  • 使用基於GCC或兼容工具鏈的嵌入式目標系統

建議將GNU Autotools的Nest Labs構建與OpenThread一起使用,因為某些構建宿主系統可能沒有GNU Autotools,或者可能具有不同的版本和發行版。這會導致主要和輔助Autotools輸出不一致,從而導致不同的用戶和支持體驗。 Nest Labs版本通過提供一組預構建的合格GNU Autotools以及相關的腳本來避免這種情況,這些腳本不依賴於版本宿主系統上Autotools的版本。

該項目通常被細分(或git調製)到目標項目存儲庫中,並用作該項目的構建系統的種子。

要了解更多信息,或將該工具用於OpenThread構建,請參閱README

如何建立OpenThread

構建OpenThread的步驟因工具鏈,用戶計算機和目標平台而異。

最常見的工作流程是:

  1. 設置構建環境並安裝所需的工具鏈:
    1. 要直接在機器上構建,請參見Simulation Codelab了解詳細說明
    2. 要將Docker容器與預先配置的環境一起使用,請下載並運行OpenThread environment映像:
       docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash 
  2. 在您選擇的環境中,克隆OpenThread Git存儲庫:
     git clone https://github.com/openthread/openthread 
  3. 在克隆的存儲庫的根目錄中:
    1. 安裝GNU工具鍊和其他依賴項(可選):
       ./script/bootstrap 
    2. 設置環境:
       ./bootstrap 
    3. 使用預定義的平台示例進行配置和構建,並通過通用開關進行可選的自定義:
      1. 在所選平台的/examples/platforms/ <platform> /openthread-core- <platform> -config.h文件中修改OpenThread編譯/examples/platforms/ <platform> /openthread-core- <platform> -config.h
      2. 構建配置:
         make -f examples/Makefile- <platform> <switches> 
  4. 將所需的二進製文件刷新到目標平台。所有生成的二進製文件都位於/output/ <platform> /bin 。使用高級模式時, <platform>可能特定於用戶的機器。例如, x86_64-apple-darwin

在每個示例的platform文件夾中都可以找到有關使用GNU Autotools構建受支持平台的特定說明。

組態

您可以在構建過程中為不同的功能和行為配置OpenThread。在以下位置詳細介紹了可用的配置選項:

類型位置
編譯時常數/src/core/config中的所有頭文件中列出
Makefile構建開關/examples/common-switches.mk列出

建立範例

使用開關為示例平台啟用功能。例如,要構建啟用了Commissioner和Joiner支持的CC2538示例:

 make -f examples/Makefile-cc2538 COMMISSIONER=1 JOINER=1 

或者,要構建啟用了“ 卡紙檢測”功能的nRF52840示例:

 make -f examples/Makefile-nrf52840 JAM_DETECTION=1 

二進製文件

在構建過程中,以下二進製文件是在/output/ <platform> /bin中生成的。要確定生成哪些二進製文件,請在./configure命令中使用configure選項標誌,以生成用於構建的更新的Makefile 。例如,構建OpenThread並僅生成CLI二進製文件:

 ./configure --enable-cli
make 
二元描述配置選項標誌
ot-cli-ftd 用於SoC設計的全線程設備 --enable-cli
--enable-ftd
ot-cli-mtd SoC設計的最小線程設備 --enable-cli
--enable-mtd
ot-ncp-ftd 用於NCP設計的全線程設備 --enable-ncp
--enable-ftd
ot-ncp-mtd 適用於NCP設計的最小線程設備 --enable-ncp
--enable-mtd
ot-rcp 主機/802.15.4控制器設計 --enable-ncp
--enable-radio-only

如果未使用這些標誌或平台示例,則不會構建應用程序,但仍會在/output/ <platform> /lib生成OpenThread庫文件以供項目使用。

查看每個平台的示例Makefile,以查看每個平台支持哪些標誌。例如, TI CC2650不支持FTD 。有關FTD和MTD的更多信息,請參見Thread Primer 。有關SoC和NCP設計的更多信息,請參見平台

在示例平台上,刷新這些二進製文件的過程有所不同。有關詳細說明,請參見每個平台的示例文件夾中的自述文件

構建支持包

可在/third_party中找到構建支持包(BSP)。 BSP是OpenThread在每個相應平台上使用的其他第三方代碼,通常在將OpenThread移植到新的硬件平台時包括在內。