Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Построить OpenThread

Цепочки инструментов

Основным поддерживаемым набором инструментов для создания OpenThread является GNU Autotools.

GNU Autotools

Инструкции по созданию примеров с помощью 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 в хост-системе сборки.

Этот проект обычно добавляется в репозиторий целевого проекта и используется в качестве начального числа для системы сборки этого проекта.

Чтобы узнать больше или использовать этот инструмент для ваших сборок OpenThread, см. README .

Как собрать OpenThread

Шаги по созданию OpenThread зависят от набора инструментов, пользовательского компьютера и целевой платформы.

Наиболее распространенный рабочий процесс:

  1. Настройте среду сборки и установите желаемый набор инструментов:
    1. Чтобы построить непосредственно на машине, см. Подробные инструкции в Simulation Codelab.
    2. Чтобы использовать контейнер Docker с предварительно настроенной средой, загрузите и запустите образ environment OpenThread:
      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 файле /examples/platforms/ <platform> /openthread-core- <platform> -config.h
      2. Соберите конфигурацию:
        make -f examples/Makefile-<platform> <switches>
  4. Загрузите желаемый двоичный файл на целевую платформу. Все сгенерированные двоичные файлы находятся в /output/ <platform> /bin . При использовании расширенного режима <platform> может быть специфичной для компьютера пользователя. Например, x86_64-apple-darwin .

Конкретные инструкции по созданию поддерживаемых платформ с помощью GNU Autotools можно найти в папке платформы каждого примера.

Конфигурация

Вы можете настроить OpenThread для различных функций и поведения в процессе сборки. Доступные варианты конфигурации подробно описаны в следующих местах:

Тип Место расположения
Константы времени компиляции Перечислен во всех заголовочных файлах в /src/core/config
Переключатели сборки Makefile Перечислено в /examples/common-switches.mk

Примеры сборки

Используйте переключатель, чтобы включить функциональность для примера платформы. Например, чтобы построить пример CC2538 с включенной поддержкой Commissioner и Joiner:

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

Или, чтобы построить пример nRF52840 с включенной функцией обнаружения замятия:

make -f examples/Makefile-nrf52840 JAM_DETECTION=1

Двоичные файлы

Следующие двоичные файлы создаются в /output/ <platform> /bin в процессе сборки. Чтобы определить, какие двоичные файлы создаются, используйте флаги параметров конфигурации с командой ./configure чтобы сгенерировать обновленный Makefile для сборки. Например, чтобы собрать OpenThread и сгенерировать только двоичные файлы CLI:

./configure --enable-cli
make
Двоичный Описание Настроить флаги опций
ot-cli-ftd Устройство Full Thread для проектов SoC --enable-cli
--enable-ftd
ot-cli-mtd Устройство Minimal Thread для проектов SoC --enable-cli
--enable-mtd
ot-ncp-ftd Полнопотоковое устройство для сетевых сопроцессоров (NCP) --enable-ncp
--enable-ftd
ot-ncp-mtd Устройство с минимальной резьбой для конструкций NCP --enable-ncp
--enable-mtd
ot-rcp Конструкция радиосопроцессора (RCP) --enable-ncp
--enable-radio-only

Если ни эти флаги, ни пример платформы не используются, приложения не создаются, но файлы библиотеки OpenThread по-прежнему создаются в /output/ <platform> /lib для использования в проекте.

Проверьте пример Makefile для каждой платформы, чтобы узнать, какие флаги поддерживает каждая платформа. Например, TI CC2650 не поддерживает FTD . Для получения дополнительной информации о FTD и MTD см. Thread Primer . Для получения дополнительной информации о проектах SoC и NCP см. Платформы .

Процесс прошивки этих двоичных файлов различается на разных платформах. Подробные инструкции см. В README в папке примеров каждой платформы.

Демон OpenThread

OpenThread Daemon (OT Daemon) - это режим сборки OpenThread POSIX, который запускает OpenThread как службу и используется с дизайном RCP. Для получения дополнительной информации о том, как его создать и использовать, см. OpenThread Daemon .

Сборка пакетов поддержки

Пакеты поддержки сборки (BSP) находятся в /third_party . BSP - это дополнительный сторонний код, используемый OpenThread на каждой соответствующей платформе, обычно включаемый при переносе OpenThread на новую аппаратную платформу.