Google is committed to advancing racial equity for Black communities. See how.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Bangun OpenThread

Toolchain

Toolchain utama yang didukung untuk membuat OpenThread adalah GNU Autotools.

GNU Autotools

Petunjuk untuk membuat contoh dengan GNU Autotools dapat ditemukan di setiap folder platform contoh. Perhatikan bahwa maksud dari contoh-contoh ini adalah untuk menampilkan kode minimal yang diperlukan untuk menjalankan OpenThread di setiap platform masing-masing. Karena itu, mereka tidak menyoroti kemampuan penuh platform.

Konfigurasi lebih lanjut selama build mungkin diperlukan, bergantung pada kasus penggunaan Anda.

GNU Autotools - Nest Labs build

Nest Labs telah membuat kerangka kerja sistem build siap pakai yang disesuaikan, berdasarkan GNU Autotools. Ini digunakan untuk paket perangkat lunak mandiri yang perlu mendukung:

  • membangun dan menargetkan terhadap sistem host build mandiri
  • sistem target tersemat menggunakan toolchain berbasis GCC atau yang kompatibel

Build Nest Labs dari GNU Autotools direkomendasikan untuk digunakan dengan OpenThread karena beberapa sistem host build mungkin tidak memiliki GNU Autotools, atau mungkin memiliki versi dan distribusi yang berbeda. Hal ini menyebabkan keluaran Autotools primer dan sekunder yang tidak konsisten, yang menghasilkan pengalaman pengguna dan dukungan yang berbeda. Build Nest Labs menghindari hal ini dengan menyediakan set GNU Autotools yang telah dibuat sebelumnya dan memenuhi syarat dengan skrip terkait yang tidak bergantung pada versi Autotools pada sistem host build.

Proyek ini biasanya disuburkan (atau git submodul) ke dalam repositori proyek target dan berfungsi sebagai benih untuk sistem pembangunan proyek itu.

Untuk mempelajari lebih lanjut, atau menggunakan alat ini untuk build OpenThread Anda, lihat README .

Bagaimana membangun OpenThread

Langkah-langkah untuk membangun OpenThread bervariasi bergantung pada toolchain, mesin pengguna, dan platform target.

Alur kerja yang paling umum adalah:

  1. Siapkan lingkungan build dan instal toolchain yang diinginkan:
    1. Untuk membangun langsung di mesin, lihat Codelab Simulasi untuk instruksi mendetail
    2. Untuk menggunakan kontainer Docker dengan lingkungan yang telah dikonfigurasi sebelumnya, unduh dan jalankan gambar environment OpenThread:
      docker pull openthread/environment:latest
      docker run -it --rm openthread/environment bash
  2. Dalam lingkungan yang Anda pilih, kloning repositori OpenThread Git:
    git clone https://github.com/openthread/openthread
  3. Dari direktori root repositori yang digandakan:
    1. Instal toolchain GNU dan dependensi lainnya (opsional):
      ./script/bootstrap
    2. Atur lingkungan:
      ./bootstrap
    3. Konfigurasikan dan buat, menggunakan contoh platform yang telah ditentukan sebelumnya dengan penyesuaian opsional melalui sakelar umum:
      1. Ubah konstanta waktu kompilasi OpenThread di file /examples/platforms/ <platform> /openthread-core- <platform> -config.h
      2. Bangun konfigurasi:
        make -f examples/Makefile-<platform> <switches>
  4. Flash biner yang diinginkan ke platform target. Semua biner yang dihasilkan berada di /output/ <platform> /bin . Saat menggunakan Mode Lanjutan, <platform> mungkin khusus untuk mesin pengguna. Misalnya, x86_64-apple-darwin .

Petunjuk khusus tentang membangun platform yang didukung dengan GNU Autotools dapat ditemukan di setiap folder platform contoh.

Konfigurasi

Anda dapat mengonfigurasi OpenThread untuk berbagai fungsionalitas dan perilaku selama proses pembuatan. Opsi konfigurasi yang tersedia dirinci di lokasi berikut:

Tipe Lokasi
Konstanta waktu kompilasi Terdaftar di semua file header di /src/core/config
Makefile membangun switch Terdaftar di /examples/common-switches.mk

Buat contoh

Gunakan sakelar untuk mengaktifkan fungsionalitas untuk platform contoh. Misalnya, untuk membuat contoh CC2538 dengan dukungan Komisaris dan Penggabung diaktifkan:

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

Atau, untuk membuat contoh nRF52840 dengan fitur Deteksi Kemacetan diaktifkan:

make -f examples/Makefile-nrf52840 JAM_DETECTION=1

Binari

Biner berikut dibuat di /output/ <platform> /bin dari proses build. Untuk menentukan binari mana yang dibuat, gunakan tanda opsi configure dengan perintah ./configure untuk menghasilkan Makefile diperbarui untuk dibangun. Misalnya, untuk membangun OpenThread dan hanya menghasilkan biner CLI:

./configure --enable-cli
make
Biner Deskripsi Konfigurasikan tanda opsi
ot-cli-ftd Perangkat Thread Lengkap untuk desain SoC --enable-cli
--enable-ftd
ot-cli-mtd Perangkat Thread minimal untuk desain SoC --enable-cli
--enable-mtd
ot-ncp-ftd Perangkat Thread Lengkap untuk desain NCP --enable-ncp
--enable-ftd
ot-ncp-mtd Perangkat Thread minimal untuk desain NCP --enable-ncp
--enable-mtd
ot-rcp Host / 802.15.4 Desain pengontrol --enable-ncp
--enable-radio-only

Jika flag atau contoh platform ini tidak digunakan, aplikasi tidak dibuat tetapi file pustaka OpenThread masih dibuat di /output/ <platform> /lib untuk digunakan dalam proyek.

Periksa contoh Makefiles untuk setiap platform untuk melihat flag mana yang didukung setiap platform. Misalnya, TI CC2650 tidak mendukung FTD . Untuk informasi lebih lanjut tentang FTD dan MTD, lihat Thread Primer . Untuk informasi lebih lanjut tentang desain SoC dan NCP, lihat Platform .

Proses untuk mem-flash biner ini bervariasi di seluruh platform contoh. Lihat README di setiap folder contoh platform untuk petunjuk mendetail.

Bangun Paket Dukungan

Paket Dukungan Build (BSP) ditemukan di /third_party . BSP adalah kode pihak ketiga tambahan yang digunakan oleh OpenThread pada masing-masing platform, umumnya disertakan saat porting OpenThread ke platform perangkat keras baru.