Программирование ARM Zephyr: быстрый старт Mon, February 09 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Zephyr: быстрый старт Печать
Добавил(а) microsin   

Документация [1] соответствует последней ветке разработки (main) проекта Zephyr. Если Вы ищете документацию по предыдущим релизам, используйте выпадающее меню слева вверху на страничке [1], и выберите желаемую версию.

Следуйте указаниям этого руководства (перевод [1]), чтобы:

● Настроить рабочее окружение командной строки Zephyr в операционных системах Ubuntu, macOS или Windows (инструкции для других дистрибутивов Linux обсуждаются в статье, посвященной разрешению зависимостей [2]).
● Получить исходный код Zephyr.
● Собрать, прошить и запустить пример приложения.

Примечание: для дистрибутивов, которые не базируются на постоянных релизах, некоторые требования и зависимости могут не соответствовать вашему менеджеру пакетов. В таком случае следуйте дополнительным инструкциям, предоставленным для поиска ПО из других источников [2].

[Обновление операционной системы]

Ubuntu: в этом руководстве показаны команды для Ubuntu 18.04 LTS или более свежей версии.

sudo apt update
sudo apt upgrade

На macOS Mojave или более поздней версии выберите System Preferences -> Software Update. Если необходимо, то кликните Update Now. Для других версий обращайтесь к топику из техподдержки Apple:

Update macOS on Mac site:support.apple.com

Выберите Start -> Settings -> Update & Security -> Windows Update. Кликните Check for updates и установите любые доступные обновления.

[Установка зависимостей]

Далее нужно установить некоторые зависимости хоста с помощью менеджера пакетов. Текущий минимальный набор требуемых версий:

Таблица 1. Необходимые минимальные версии инструментария.

Утилита Минимальная версия
CMake 3.20.0
Python 3.8
Devicetree compiler 1.4.6

Ubuntu. Для установки/проверки текущего состояния этого инструментария выполните следующие действия.

1. Если используете Ubuntu версии более старой, чем 22.04, то необходимо добавить несколько дополнительных репозиториев, чтобы обеспечить минимальны требуемые версии для основных перечисленных выше зависимостей. В таком случае загрузите, проверьте и выполните скрипт Kitware archive (kitware-archive.sh) для добавления репозитория Kitware APT в свой список исходников. Подробное объяснение скрипта kitware-archive.sh можно найти в стороннем репозитории kitware apt [3]:

wget https://apt.kitware.com/kitware-archive.sh
sudo bash kitware-archive.sh

2. Используйте apt для установки требуемых зависимостей:

sudo apt install --no-install-recommends git cmake ninja-build gperf \
  ccache dfu-util device-tree-compiler wget \
  python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
  make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1

3. Проверьте версии основных зависимостей, установленных в системе, следующими командами:

cmake --version
python3 --version
dtc --version

Проверьте, соответствуют ли версии требованиям из таблицы 1 выше. При необходимости обновления зависимостей вручную обратитесь к руководству [2].

1. Установите Homebrew [4]:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Используйте brew для установки требуемых зависимостей:

brew install cmake ninja gperf python3 ccache qemu dtc wget libmagic

Замечание: из-за проблем с поиском готовых исполняемых файлов в настоящий момент Zephyr Project не поддерживает прошивку приложения с помощью Windows Subsystem for Linux (WSL) [5]. Поэтому для быстрого старта не рекомендуется использовать WSL.

Описываемые далее инструкции должны быть запущены в окне интерпретатора команд cmd.exe. На PowerShell требуемые команды будут другие.

Эти инструкции полагаются на менеджер пакетов Chocolatey [6]. Если использование Chocolatey для вас не вариант, то можно установить зависимости с соответствующих веб-сайтов, и далее убедиться, что необходимый инструментарий командной строки прописан в переменной окружения %PATH%.

1. Установите chocolatey [6].

2. Откройте окно cmd.exe с правами администратора. Для этого нажмите клавишу Win, введите cmd.exe, кликните правой кнопкой мыши на результат, и выберите Run as Administrator.

3. Запретите глобально подтверждения, чтобы не подтверждать установку каждой отдельной программы:

choco feature enable -n allowGlobalConfirmation

4. Используйте choco для установки требуемых зависимостей:

choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'
choco install ninja gperf python git dtc-msys2 wget unzip

5. Закройте окно интерпретатора команд, и для продолжения дальнейших действий откройте новое окно от имени обычного пользователя (на этот раз без прав администратора).

[Загрузка Zephyr и установка зависимостей Python]

Теперь нужно выполнить клонирование Zephyr и его модулей в новое рабочее пространство west с именем zephyrproject. Также Вы установите дополнительные зависимости Python, необходимые для Zephyr.

Замечание: при установке зависимостей на уровне системы или пользователя легко столкнуться с несовместимостью пакетов Python. Такая ситуация может произойти, к примеру, если идет работа на нескольких версиях Zephyr, или другие проекты используют Python на одной и той же рабочей станции. По этой причине рекомендуется использовать виртуальные (изолированные друг от друга) рабочие среды Python [7].

Ubuntu. Выполните следующие действия по установке в виртуальном окружении Python (для глобальной установки см. врезку "Ubuntu: установка в глобальном окружении").

1. Используйте apt для установки пакета Python venv:

sudo apt install python3-venv

2. Создайте новое виртуальное окружение:

python3 -m venv ~/zephyrproject/.venv

3. Активируйте виртуальное окружение:

source ~/zephyrproject/.venv/bin/activate

После активации приглашение шелла будет с префиксом (.venv). Деактивировать виртуальное окружение можно в любой момент с помощью команды deactivate.

Примечание: помните, что перед началом работы с Zephyr нужно каждый раз активировать виртуальное окружение.

4. Установите west:

pip install west

5. Закачайте исходный код Zephyr:

west init ~/zephyrproject
cd ~/zephyrproject
west update

6. Экспортируйте пакет Zephyr CMake [8]. Это позволит CMake автоматически загружать шаблонный код, необходимый для сборки приложений Zephyr.

west zephyr-export

Основная задача команды west zephyr-export — зарегистрировать установку Zephyr RTOS в системе CMake, чтобы разработка велась независимо от конкретной файловой структуры. Это решает типичную проблему "жёстко заданного пути".

[Как это работает]

Команда вносит информацию о расположении Zephyr в реестр пакетов CMake — системную базу данных, которую CMake проверяет при сборке. Это происходит следующим образом:

Действие: `west zephyr-export` добавляет путь к вашей установке Zephyr в реестр.

Результат: CMake может найти Zephyr, даже если приложение находится за пределами стандартной рабочей области `.west`.

После выполнения этой команды типичная строка в `CMakeLists.txt` проекта:

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})

будет работать, так как `find_package` сможет обратиться к реестру, даже если переменная окружения `ZEPHYR_BASE` не задана.

Расположение реестра в разных ОС:

Windows: `HKEY_CURRENT_USER\Software\Kitware\CMake\Packages`
Linux / macOS: `~/.cmake/packages/`

[Когда использовать эту команду]

Чаще всего команду выполняют однократно при настройке окружения. Вот типичные сценарии:

● Сборка «изолированного» приложения: разработка проекта в отдельной директории, а не внутри основной рабочей области Zephyr.
● Отладка проблем с ZEPHYR_BASE: если сборка не работает из-за ошибок, связанных с поиском Zephyr.
● Создание воспроизводимой сборки: например, при использовании Docker или систем управления пакетами (Nix), где пути к зависимостям могут быть нестандартными.
● Разделение проектов: удобно, когда вы работаете с несколькими независимыми проектами на одной версии Zephyr.

[Важные замечания]

● Доступность команды: `zephyr-export` — это расширение (extension) West. Она доступна только при запуске из рабочей области Zephyr (внутри директории, где был выполнен `west init`). Если запустить её из произвольного места, West её не распознает.

● Альтернативные подходы:

- Можно напрямую задать путь, используя переменную окружения `ZEPHYR_BASE`.
- При работе строго внутри одной рабочей области `.west` эта команда обычно не нужна, так как West сам управляет путями.

Если вы настраиваете среду впервые и планируете работать с несколькими проектами в разных директориях, выполнение `west zephyr-export` — хорошая практика, которая упростит дальнейшую разработку.

Команда `west packages pip --install` предназначена для единой установки всех Python-зависимостей, необходимых для сборки проектов Zephyr RTOS. Она автоматизирует важный шаг настройки среды разработки.

Основная идея заключается в том, что Zephyr и его компоненты хранятся в виде независимых репозиториев (пакетов), и у каждого из них может быть свой собственный файл `requirements.txt`. 

Эта команда, по сути, делает следующее:

1. Автоматически находит все файлы `requirements.txt` во всех загруженных пакетах (модулях) внутри рабочей области Zephyr.
2. Одной операцией устанавливает из них все необходимые Python-библиотеки в активное виртуальное окружение.

[Контекст использования]

В официальном руководстве [1] по началу работы эта команда является стандартным шагом после создания виртуального окружения, установки West и получения исходного кода Zephyr. Её выполнение гарантирует, что для сборки прошивок будут доступны все требуемые инструменты (например, для работы с системой сборки, скриптами и т.д.).

Важное предупреждение: lокументация явно отмечает, что выполнение этой команды может понизить или повысить версию самого West, так как она устанавливает зависимости, указанные в пакетах, без ограничений. Если вам критически важна конкретная версия West, перед выполнением команды стоит сделать резервную копию окружения.

[Распространённые проблемы]

Из поисковых результатов видно, что пользователи могут столкнуться с двумя типичными ошибками:

Проблема Возможная причина Что проверить
west: unknown command "packages" Команда выполняется вне рабочей области Zephyr. Выполняете ли вы команду из директории `zephyrproject`, созданной командой `west init`?
Ошибка доступа `[WinError 5] Access is denied` Конфликт при обновлении пакета (например, `ruamel.yaml`), файл заблокирован. 1. Закрыть все IDE и терминалы, использующие Python.
2. Вручную удалить проблемный пакет (`pip uninstall ruamel.yaml.clib`), затем повторить команду.

Если столкнулись с ошибкой:

Usage: west [-h] [-z ZEPHYR_BASE] [-v] [-V] < command> ...
west: error: argument < command>: invalid choice: 'zephyr-export' (choose from 'init', 'update',
 'list', 'manifest', 'diff', 'status', 'forall', 'help', 'config', 'topdir', 'selfupdate')

.. то можно выполнить экспорт следующей командой, без west (см. [2]):

make -P ~/zephyrproject/zephyr/share/zephyr-package/cmake/zephyr_export.cmake

7. В файле zephyrproject/zephyr/scripts/requirements.txt декларированы дополнительные зависимости Python. Установите их с помощью pip.

pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt

1. Установите west. При этом убедитесь, что путь ~/.local/bin присутствует в переменной окружения $PATH:

pip3 install --user -U west
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc

2. Скачайте исходный код Zephyr:

west init ~/zephyrproject
cd ~/zephyrproject
west update

3. Экспортируйте пакет Zephyr CMake [8]. Это позволит CMake автоматически загружать шаблонный код, необходимый для сборки приложений Zephyr.

west zephyr-export

4. В файле zephyrproject/zephyr/scripts/requirements.txt декларированы дополнительные зависимости Python. Установите их с помощью pip.

pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt

[Установка в виртуальном окружении]

1. Создайте новое виртуальное окружение:

python3 -m venv ~/zephyrproject/.venv

2. Активируйте виртуальное окружение:

source ~/zephyrproject/.venv/bin/activate

После активации приглашение шелла будет с префиксом (.venv). Виртуальное окружение можно деактивировать в любой момент запуском команды deactivate.

Примечание: помните, что перед началом работы с Zephyr нужно каждый раз активировать виртуальное окружение.

3. Установите west:

pip install west

4. Закачайте исходный код Zephyr:

west init ~/zephyrproject
cd ~/zephyrproject
west update

5. Экспортируйте пакет Zephyr CMake [8]. Это позволит CMake автоматически загружать шаблонный код, необходимый для сборки приложений Zephyr.

west zephyr-export

6. В файле zephyrproject/zephyr/scripts/requirements.txt декларированы дополнительные зависимости Python. Установите их с помощью pip.

pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt

[Глобальная установка]

1. Установите west:

pip3 install -U west

2. Скачайте исходный код Zephyr:

west init ~/zephyrproject
cd ~/zephyrproject
west update

3. Экспортируйте пакет Zephyr CMake [8]. Это позволит CMake автоматически загружать шаблонный код, необходимый для сборки приложений Zephyr.

west zephyr-export

4. В файле zephyrproject/zephyr/scripts/requirements.txt декларированы дополнительные зависимости Python. Установите их с помощью pip3.

pip3 install -r ~/zephyrproject/zephyr/scripts/requirements.txt

[Установка в виртуальном окружении]

1. Создайте новое виртуальное окружение:

cd %HOMEPATH%
python -m venv zephyrproject\.venv

2. Активируйте виртуальное окружение в cmd.exe:

zephyrproject\.venv\Scripts\activate.bat

То же самое в PowerShell:

zephyrproject\.venv\Scripts\Activate.ps1

После активации приглашение шелла будет с префиксом (.venv). Виртуальное окружение можно деактивировать в любой момент запуском команды deactivate.

Примечание: помните, что перед началом работы с Zephyr нужно каждый раз активировать виртуальное окружение.

3. Установите west:

pip install west

4. Скачайте исходный код Zephyr:

west init zephyrproject
cd zephyrproject
west update

5. Экспортируйте пакет Zephyr CMake [8]. Это позволит CMake автоматически загружать шаблонный код, необходимый для сборки приложений Zephyr.

west zephyr-export

6. В файле scripts/requirements.txt декларированы дополнительные зависимости Python. Установите их с помощью pip.

pip install -r %HOMEPATH%\zephyrproject\zephyr\scripts\requirements.txt

[Глобальная установка]

1. Установите west:

pip3 install -U west

2. Скачайте исходный код Zephyr:

cd %HOMEPATH%
west init zephyrproject
cd zephyrproject
west update

3. Экспортируйте пакет Zephyr CMake [8]. Это позволит CMake автоматически загружать шаблонный код, необходимый для сборки приложений Zephyr.

west zephyr-export

6. В файле scripts/requirements.txt декларированы дополнительные зависимости Python. Установите их с помощью pip3.

pip3 install -r %HOMEPATH%\zephyrproject\zephyr\scripts\requirements.txt

[Установка Zephyr SDK]

Zephyr Software Development Kit (SDK) содержит инструментарии разработки для каждой поддерживаемой архитектуры, что включает компилятор, ассемблер, линкер и другие программы, требуемые для сборки приложений на основе Zephyr.

Также в Zephyr SDK содержатся дополнительные инструменты для хоста разработки, такие как кастомные сборки QEMU и OpenOCD, которые используются для эмуляции, прошивки и отладки приложений Zephyr.

Ubuntu. Для установки Zephyr SDK выполните следующие действия.

1. Загрузите и проверьте последний пакет Zephyr SDK:

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.0/zephyr-sdk-0.15.0_linux-x86_64.tar.gz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.0/sha256.sum | shasum --check
 --ignore-missing

Если на вашей рабочей станции архитектура 64-бит ARM (например, это Raspberry Pi), то замените x86_64 на aarch64 чтобы загрузить 64-bit ARM Linux SDK.

2. Распакуйте архив пакета Zephyr SDK:

tar xvf zephyr-sdk-0.15.0_linux-x86_64.tar.gz

Замечание: рекомендуется распаковать Zephyr в одну из следующих размещений на диске:

$HOME
$HOME/.local
$HOME/.local/opt
$HOME/bin
/opt
/usr/local

Архив Zephyr SDK содержит директорию zephyr-sdk-0.15.0, и когда происходит распаковка в каталоге $HOME, результирующий путь установки будет $HOME/zephyr-sdk-0.15.0.

3. Запустите скрипт настройки Zephyr SDK:

cd zephyr-sdk-0.15.0
./setup.sh

Примечание: скрипт setup.sh следует запускать только после распаковки пакета Zephyr SDK (шаг 2). Следует запускать этот скрипт заново, если вы меняете директорию Zephyr SDK после первоначальной настройки.

4. Установите правила udev, которые позволят прошивать большинство плат Zephyr под обычным пользователем:

sudo cp ~/zephyr-sdk-0.15.0/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload

1. Загрузите и проверьте последний пакет Zephyr SDK:

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.0/zephyr-sdk-0.15.0_macos-x86_64.tar.gz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.0/sha256.sum | shasum --check --ignore-missing

Если архитектура вашего хоста разработки 64-bit ARM (Apple Silicon, также известный как M1), то замените x86_64 на aarch64, чтобы загрузить 64-bit ARM macOS SDK.

2. Распакуйте архив пакета Zephyr SDK:

tar xvf zephyr-sdk-0.15.0_macos-x86_64.tar.gz

Замечание: рекомендуется распаковать пакет Zephyr SDK в следующие места на диске:

$HOME
$HOME/.local
$HOME/.local/opt
$HOME/bin
/opt
/usr/local

Архив пакета Zephyr SDK содержит директорию zephyr-sdk-0.15.0, и когда произошла распаковка в $HOME, результирующий путь установки будет $HOME/zephyr-sdk-0.15.0.

3. Запустите скрипт настройки Zephyr SDK:

cd zephyr-sdk-0.15.0
./setup.sh

Примечание: скрипт setup.sh следует запускать только после распаковки пакета Zephyr SDK (шаг 2). Следует запускать этот скрипт заново, если вы меняете директорию Zephyr SDK после первоначальной настройки.

1. Откройте окно cmd.exe нажатием на клавишу Win и вводом cmd.exe.

2. Загрузите последний пакет Zephyr SDK:

cd %HOMEPATH%
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.0/zephyr-sdk-0.15.0_windows-x86_64.zip

3. Распакуйте архив пакета Zephyr SDK:

unzip zephyr-sdk-0.15.0_windows-x86_64.zip

Замечание: рекомендуется распаковать пакет Zephyr в одно из следующих мест на диске:

%HOMEPATH%
%PROGRAMFILES%

В архиве пакета Zephyr SDK находится директория zephyr-sdk-0.15.0, и когда распаковка происходит в каталоге %HOMEPATH%, результирующий путь установки будет %HOMEPATH%\zephyr-sdk-0.15.0.

4. Запустите скрипт настройки пакета Zephyr SDK:

cd zephyr-sdk-0.15.0
setup.cmd

Примечание: скрипт setup.sh следует запускать только после распаковки пакета Zephyr SDK (шаг 3). Следует запускать этот скрипт заново, если вы меняете директорию Zephyr SDK после первоначальной настройки.

[Сборка проекта примера Blinky]

Blinky совместим почти со всеми поддерживаемыми платами [9]. Если ваша плата не удовлетворяет требованиям проекта Blinky [10], то хорошей альтернативой будет проект Hello World [11].

Если нет уверенности, какое имя использует west для вашей платы, то можно получить список всех поддерживаемых плат Zephyr командой:

west boards

Сборка Blinky выполняется командой west build, с заменой your-board-name на правильное имя вашей платы. Пример команды сборки для Ubuntu и macOS:

cd ~/zephyrproject/zephyr
west build -p always -b your-board-name samples/basic/blinky

Команда сборки под Windows:

cd %HOMEPATH%\zephyrproject\zephyr
west build -p always -b your-board-name samples\basic\blinky

Опция -p always принудительно делает чистую сборку, что рекомендуется для новых пользователей. Пользователи также могут указать опцию -p auto, которая будет использовать эвристику, чтобы определить, нужна ли чистая сборка, или нет, например если делается попытка скомпилировать другой пример.

Прошивка. Подключите вашу плату к хосту разработки (обычно через USB), и включите её, если для этого есть специальный выключатель питания. Если у вас есть сомнения относительно того, что делать, то посетите страницу вашей платы [9].

Скомпилированный пример прошивается очень просто:

west flash

Для прошивки могут понадобиться дополнительные программные инструменты [12]. Если чего-то не хватает, то команда west flash выведет сообщение, какие зависимости отсутствуют.

[Что дальше]

● Попробуйте скомпилировать другие примеры и демонстрационные программы.
● Ознакомьтесь с документацией процесса разработки приложения [13] и возможности утилиты west [14].
● Ознакомьтесь с возможностями по прошивке и отладке [15], или с дополнительной информацией по инструментарию прошивки и отладки [12], а также с информацией по адаптерам отладчиков [16].
● Ознакомьтесь с дополнительной информацией по быстрому старту [17].
● Для получения поддержки от Zephyr-комьюнити см. [18].

Здесь даны несколько советов по решению некоторых проблем, связанных с процессом установки Zephyr.

При обновлении лишний раз проверьте переменные Zephyr SDK. Когда обновляете Zephyr SDK, проверьте, корректно ли установлены переменные окружения ZEPHYR_TOOLCHAIN_VARIANT или ZEPHYR_SDK_INSTALL_DIR. Для дополнительной информации см. "Updating the Zephyr SDK toolchain" в статье [17].

Дополнительную информацию по этим переменным см. раздел "Important Environment Variables" статьи [19].

[Как получить помощь]

Вы можете запросить помощь через список рассылки (mailing list) или в Discord. Сообщения об ошибках (bug reports) и запросы на добавление функций публикуйте на GitHub.

Mailing Lists: users@lists.zephyrproject.org, обычно это правильный список для запроса помощи. Покопайтесь в архивах сообщений, подпишитесь [20].
Discord: можно подключиться к группе zephyrproject через Discord invite (https://discord.com/invite/Ck7jw53nU2).
GitHub: см. раздел открытых и закрытых проблем [21] для сообщений об ошибках и запросов по добавлению функций.

Важно правильно сформулировать вопрос. Пожалуйста, предварительно поищите решение проблемы в документации и в архивах списков рассылки. Может быть, что с вашей проблемой уже кто-то сталкивался. Когда задаете вопрос, подробно опишите проблему:

● Что вы хотите сделать.
● Что вы пытаетесь сделать (какие команды вводите, и т. п.).
● Что происходит (вывод каждой команды, и т. п.).
● Вместо добавления картинок скриншотов предпочтительнее использовать Copy/Paste текста. В текст можно включить исходный код, команды терминала и их вывод.

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

Команда west sdk install предназначена для автоматической установки Zephyr SDK (Software Development Kit) — набора компиляторов и инструментов, необходимых для сборки приложений Zephyr под различные архитектуры процессоров.

Замечание: команда west sdk install без дополнительных опций установит все SDK для всех поддерживаемых архитектур процессоров. Этот процесс может занять несколько десятков минут, и займет довольно много места на диске.

[Для чего нужен Zephyr SDK]

Zephyr SDK включает в себя:

● Кросс-компиляторы (toolchains) для всех поддерживаемых Zephyr аппаратных архитектур (ARM, x86, RISC-V и др.).
● Дополнительные хост-инструменты, такие как специальные сборки QEMU (для эмуляции) и OpenOCD (для отладки и прошивки), которые используются при разработке под Linux.

Без установленного SDK вы не сможете выполнить команду west build для компиляции проекта.

[Контекст использования]

В официальном руководстве по началу работы с Zephyr [1] установка SDK является стандартным шагом после создания виртуального окружения, загрузки исходного кода и установки Python-зависимостей. Типичный рабочий процесс включает:

1. `west init` – инициализация рабочей области.
2. `west update` – загрузка исходного кода.
3. `west zephyr-export` – настройка путей для сборки.
4. `west packages pip --install` – установка Python-зависимостей.
5. `west sdk install` – установка SDK.
6. `west build` – сборка проекта.

Совет: выполняйте команду `west sdk install` из директории `~/zephyrproject/zephyr` (или аналога для вашей ОС), как рекомендовано в документации.

[Дополнительные опции команды]

Команда `west sdk install` принимает дополнительные параметры. Для их просмотра и получения справки используйте:

west sdk install --help

Например, можно указать:

● Путь для установки SDK (по умолчанию это `~/.local/zephyr-sdk-[версия]`).
● Конкретные архитектуры компиляторов для установки, если не нужны все.

[Альтернативный способ установки]

Если команда `west sdk install` недоступна или не работает, SDK можно установить вручную, скачав архив с официального сайта проекта Zephyr и следуя инструкциям.

[Установка SDK для процессора STM32G431CBU6]

Для процессора STM32G431CBU6 нужен Zephyr SDK, содержащий компилятор для архитектуры Arm Cortex-M (или `arm-none-eabi`). На самом деле, `west sdk install` — это команда-оболочка, которая автоматически загружает и устанавливает нужную версию SDK для вашей операционной системы.

Ключевая информация для STM32G431. Вот что нужно знать для успешной установки:

● Архитектура: процессор STM32G431 использует ядро Arm Cortex-M4. Компилятор Zephyr SDK, который подойдет для него, — arm-none-eabi-gcc (кросс-компилятор GNU для встроенных Arm).
● Процесс установки: основная статья о настройке для STM32 рекомендует загрузить и установить Zephyr SDK напрямую с официальной страницы релизов GitHub перед сборкой проектов. Это совпадает с действиями команды `west sdk install`.
● Официальный источник: команда `west sdk install` загружает SDK с [https://github.com/zephyrproject-rtos/sdk-ng/releases](https://github.com/zephyrproject-rtos/sdk-ng/releases), выбирая последнюю рекомендованную версию.
● Альтернатива: если вы работаете в Linux, вы можете установить компилятор из репозитория вашего дистрибутива (например, `gcc-arm-none-eabi` в Debian/Ubuntu), но Zephyr SDK рекомендуется, так как он включает не только компилятор, но и отладочные инструменты (OpenOCD, QEMU).

Как выполнить установку. Лучше всего следовать официальным инструкциям Zephyr. Основные шаги:

1. Активируйте окружение Zephyr, если вы этого еще не сделали.

2. Запустите команду из директории вашего проекта Zephyr (`zephyrproject`):

west sdk install

Команда автоматически определит вашу ОС, загрузит последнюю стабильную версию SDK в директорию `~/.local/zephyr-sdk-[версия]` и запустит скрипт установки (например, `setup.sh` в Linux).

Внимание: установка SDK обычно требует прав суперпользователя (`sudo`) для регистрации в системе, поскольку включает настройку путей и правил для работы с устройствами отладки.

После успешной установки вы можете проверить доступность компилятора с помощью команды:

arm-none-eabi-gcc --version

А также начать сборку вашего проекта для платы на основе STM32G431 (например, `west build -b < ваша_плата>`).

Альтернативные методы установки SDK. Если команда `west sdk install` недоступна или вы предпочитаете полный контроль, есть другие способы:

Метод Описание Когда использовать
Прямая загрузка с GitHub Вручную скачайте архив `.zip` или `.run` с [страницы релизов SDK](https://github.com/zephyrproject-rtos/sdk-ng/releases), распакуйте и запустите `setup.sh`. При проблемах с автоустановкой или для выбора конкретной версии.
Установка через менеджер пакетов ОС Используйте `apt-get install gcc-arm-none-eabi` (Debian/Ubuntu) или `dnf install arm-none-eabi-newlib` (Fedora/Red Hat). Быстрая установка, если нужен только компилятор, без инструментов отладки Zephyr.

 

Для процессора STM32G431CBU6 можно создать проект для плат NUCLEO [2] или WEACT [3]:

$ west boards | grep nucleo_g431
nucleo_g431rb
nucleo_g431kb

$ west boards | grep stm32g431
weact_stm32g431_core

Документация по этим платам доступна по ссылкам:

Nucleo G431RB
WeAct STM32G431 Core Board

Процесс создания проекта для платы weact_stm32g431_core по шагам в среде Ubuntu:

1. Перейдите в каталог ~/zephyrproject, где находятся папки bootloader, modules, tools, zephyr:

cd ~/zephyrproject

2. Создайте виртуальное окружение Python:

python3 -m venv .venv

3. Активируйте его:

source .venv/bin/activate

После активации строка приглашения в терминале будет начинаться с (.venv).

4. Установите west внутри активированного окружения:

pip install west

После установки проверьте версию командой:

west --version

Важное замечание: каждый раз перед работой с Zephyr (после перезапуска терминала) необходимо заново активировать виртуальное окружение, выполнив source ~/zephyrproject/.venv/bin/activate из его папки.

Альтернативный способ — глобальная установка (проще, но может вызывать конфликты)

Если нужен быстрый старт, используйте команду для Linux из официальной документации:

pip3 install --user -U west

После установки может потребоваться добавить директорию ~/.local/bin в переменную PATH. Сделайте это так:

export PATH=$PATH:~/.local/bin

Чтобы это изменение работало постоянно, добавьте эту строку в файл ~/.bashrc.

5. Создать проект Zephyr для платы weact_stm32g431_core достаточно просто. Начните с базового примера, например blinky, чтобы проверить окружение.

west build -p always -b weact_stm32g431_core zephyr/samples/basic/blinky

-p always гарантирует чистую сборку.

-b задает название платы, для которой осуществляется сборка.

zephyr/samples/basic/blinky указывает компилируемый проект примера.

6. Загрузите прошивку на плату:

west flash

После этого встроенный светодиод на плате должен начать мигать.

Способ прошивки: по умолчанию west flash использует загрузчик DFU через USB. Для прошивки:

- Подключите плату по USB-C.
- Переведите её в режим DFU, удерживая кнопку BOOT0 и нажав NRST.
- Отпустите NRST, затем BOOT0.

7. Отладка: для отладки подключите внешний отладчик (например, ST-Link) к 4-контактному SWD-заголовку на плате (3V3, GND, SWDIO, SWCLK).

[Пользовательский проект]

Для своего кода создайте папку проекта, скопируйте в неё файлы CMakeLists.txt и prj.conf из примера, а затем укажите путь к вашим исходникам:

west build -b weact_stm32g431_core /путь/к/вашему/проекту

Пример полного списка команд:

mkdir ~/blinky_g431
cd ~/blinky_g431
cp -R ~/zephyrproject/zephyr/samples/basic/blinky/* .
python3 -m venv .venv
source .venv/bin/activate
pip install west
source ~/zephyrproject/zephyr/zephyr-env.sh
west zephyr-export
west packages pip --install
west build -b weact_stm32g431_core .

[Устранение возможных ошибок]

1. ModuleNotFoundError: No module named 'jsonschema'.

Команда сборки "west build -b weact_stm32g431_core ." выдает ошибку:

CMake Error at ~/zephyrproject/zephyr/cmake/modules/boards.cmake:191 (message):
  Error finding board: weact_stm32g431_core

  Error message: Traceback (most recent call last):

    File "~/zephyrproject/zephyr/scripts/list_boards.py", line 13, in < module>
      import jsonschema

  ModuleNotFoundError: No module named 'jsonschema'

Call Stack (most recent call first):
  ~/zephyrproject/zephyr/cmake/modules/zephyr_default.cmake:129 (include)
  ~/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  ~/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)

  CMakeLists.txt:4 (find_package)

-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: /usr/bin/cmake -DWEST_PYTHON=~/blinky_g431/.venv/bin/python3 -B~/blinky_g431/build -GNinja -DBOARD=weact_stm32g431_core -S~/blinky_g431

Как устранить ошибку:

west packages pip --install

2. Не найдена утилита Ninja.

Команда сборки выдает ошибку наподобие:

...
CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.

-- Configuring incomplete, errors occurred!

FATAL ERROR: command exited with status 1: /usr/bin/cmake -DWEST_PYTHON=~/blinky_g431/.venv/bin/python3 -B~/blinky_g431/build -GNinja -S~/blinky_g431

Для установки ошибки нужно установить ninja-build:

sudo apt update
sudo apt install ninja-build

3. /usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version
 information available (required by /usr/bin/cmake)

Устраняется установкой корректной библиотеки libcurl. В моем случае понадобилось удалить символическую ссылку /usr/local/lib/libcurl.so.4:

$ ls -la /usr/local/lib/libcurl.so.4
lrwxrwxrwx 1 root root 31 янв 20 11:46 /usr/local/lib/libcurl.so.4 ->
 /usr/local/lib/libcurl.so.4.8.0
$ sudo rm /usr/local/lib/libcurl.so.4

Замечание: при необходимости восстановить ссылку обратно можно командой:

$ sudo ln -sf /usr/local/lib/libcurl.so.4.8.0 /usr/local/lib/libcurl.so.4

4. CMake Error: Generator: execution of make failed.

Команда сборки возвращает ошибку:

$ west build -b weact_stm32g431_core .
No such file or directory
CMake Error: Generator: execution of make failed. Make command was: 
FATAL ERROR: command exited with status 1: /usr/bin/cmake --build ~/blinky_g431/build

Удалите папку ~/blinky_g431/build и выполните сборку заново:

$ rm -r ./build/
$ west build -b weact_stm32g431_core .

5. Команда west flash выдает ошибку:

$ west flash
-- west flash: rebuilding
ninja: no work to do.
-- west flash: using runner dfu-util
Traceback (most recent call last):
  File "~/blinky_g431/.venv/bin/west", line 8, in < module>
    sys.exit(main())
             ~~~~^^
...
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'dfu-util'

Для устранение ошибки надо установить пакет dfu-util:

$ sudo apt update
$ sudo apt install dfu-util

[Ссылки]

1. Zephyr Getting Started Guide site:zephyrproject.org.
2. Zephyr Install Linux Host Dependencies site:zephyrproject.org.
3. Kitware APT Repository site:apt.kitware.com.
4. Install Homebrew site:brew.sh.
5. Установка Linux на Windows с помощью WSL site:microsoft.com.
6. THE PACKAGE MANAGER FOR WINDOWS site:chocolatey.org.
7. venv Creation of virtual environments site:docs.python.org.
8. Zephyr: пакет CMake.
9. Zephyr Supported Boards site:zephyrproject.org.
10. Zephyr Samples and Demos » Basic Samples » Blinky site:zephyrproject.org.
11. Zephyr Samples and Demos » Basic Samples » Hello World site:zephyrproject.org.
12. Zephyr Flash & Debug Host Tools site:zephyrproject.org.
13. Zephyr: разработка приложения.
14. Zephyr: инструментарий west.
15. west Building, Flashing and Debugging site:zephyrproject.org.
16. Debug Probes site:zephyrproject.org.
17. Beyond the Getting Started Guide site:zephyrproject.org.
18. Zephyr Community Support Resources site:zephyrproject.org.
19. Zephyr Environment Variables site:zephyrproject.org.
20. Zephyr Users users@lists.zephyrproject.org site:zephyrproject.org.
21. zephyrproject-rtos / zephyr issues site:github.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page