Программирование ARM Zephyr: быстрый старт Fri, April 19 2024  

Поделиться

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

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите 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

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

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 текста. В текст можно включить исходный код, команды терминала и их вывод.

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

[Ссылки]

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