v1.0.0 ReleaseNote
Этот проект представляет собой открытый источник программного обеспечения, разработанный специально для сферы Интернета вещей, на основе операционной системы реального времени Zephyr, адаптированной для процессоров серии Phytium. Наша цель — упростить использование разработчиками, предоставив документацию по развертыванию и руководства по использованию, чтобы помочь разработчикам легко расширять функциональность процессоров серии Phytium на платформе Zephyr. Этот проект подходит для всех разработчиков, желающих максимально использовать возможности процессоров серии Phytium на операционной системе реального времени Zephyr.
Zephyr Project Documentation — Zephyr Project Documentation
Zephyr — это открытая операционная система реального времени (RTOS), предназначенная для работы на ресурсоограниченных встраиваемых устройствах. Она поддерживается Фондом Linux, целью которого является предоставление легковесной, модульной системы, поддерживающей приложения Интернета вещей (IoT) и вычисления на краю сети. Проект Zephyr начался в 2016 году и быстро развился в активное сообщество открытого кода, объединяющее разработчиков и компании со всего мира, которые вносят свой вклад в код и знания.### Основные характеристики ядра
Поддержка драйверов устройств и промежуточного программного обеспечения : предоставляет обширные драйверы устройств и промежуточное программное обеспечение, поддерживающее множество протоколов и услуг, включая сеть, Bluetooth, файловые системы и другие.
Микроядро и ядро для микроконтроллеров (MCU) : разработчики могут выбрать подходящую конфигурацию ядра в зависимости от потребностей приложения, чтобы оптимально использовать ресурсы оборудования.### Особенности экосистемы
Сильная поддержка сообщества: Будучи активным открытым проектом, Zephyr имеет широкую поддержку сообщества, предоставляющую множество документов, руководств и примеров, которые помогают разработчикам быстро освоить проект.
Совместимость с основными технологиями: Zephyr может интегрироваться с множеством основных открытых технологий, таких как загрузчик MCUBOOT и библиотека безопасности Mbed TLS, что обеспечивает разработчикам возможность создания безопасных и надежных приложений.
Применение в различных отраслях: Подходит для множества сценариев использования, включая, но не ограничиваясь, умные дома, носимые устройства, промышленное управление и автомобильную электронику.
Этот открытый проект состоит из трёх репозиториев (рис. 1): Phytium-Zephyr-SDK, Zephyr OS и Standalone-For-Zephyr. Ниже приведены краткие описания этих трёх открытых репозиториев.
Phytium-Zephyr-SDK: Этот репозиторий служит входом для всего открытого проекта, предоставляя проектные описания, руководства по развертыванию, управление версиями, тестовые примеры и другие необходимые материалы, которые разработчики могут использовать в процессе отладки. Если у разработчиков возникли проблемы при развертывании проекта, они могут подать запросы в разделе issue этого репозитория.Zephyr OS: Этот репозиторий используется как зеркало официального Zephyr, содержащий деревья устройств для процессоров Phytium и соответствующие коды драйверов и конфигурационные файлы.
Standalone-For-Zephyr: Этот репозиторий служит как слой абстракции аппаратного обеспечения для модулей Zephyr, состоящий из Phytium-Standalone-SDK и слоя адаптации драйверов, предоставленных Phytium. Этот репозиторий обеспечивает программную основу для всего процесса сборки Zephyr.
Рис. 1 Схема архитектуры проекта
sudo apt update
sudo apt upgrade
3. Установите необходимые программы через 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
4. Проверьте наличие необходимых программных компонентов
- Убедитесь, что текущая версия установки соответствует минимальным требованиям:
cmake --version (минимальная требуемая версия "3.20") python3 --version (минимальная требуемая версия "3.8") dtc --version (минимальная требуемая версия "1.4.6")
5. Установите виртуальное окружение Python3
sudo apt install python3-venv
6. Установите программу west
pip install west
7. Установите Zephyr SDK
- Вы можете скачать Zephyr SDK bundle вручную с [Zephyr SDK bundle](https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v0.16.5-1) и разместить его в папке ~/ , затем продолжить выполнение с шага 3

cd ~ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5-1/zephyr-sdk-0.16.5-1_linux-x86_64.tar.xz wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5-1/sha256.sum | shasum --check --ignore-missing tar xvf zephyr-sdk-0.16.5-1_linux-x86_64.tar.xz cd zephyr-sdk-0.16.5-1 ./setup.sh
### 2.2 Развертывание программного обеспечения
1. Склонируйте код из этого репозитория в подходящую директорию, обычно имя директории будет: phytium-zephyr-sdk
2. Перейдите в директорию SDK и создайте виртуальное окружение Python
cd phytium-zephyr-sdk
python3 -m venv ./.venv
```3. Активируйте ваше виртуальное окружение с помощью команды source
source ./.venv/bin/activate
zephyr
./tools/pull_zephyr_os.sh
Если некоторые проекты обновления прерываются или не удаются, попробуйте снова использовать команду для обновления
west update
Если некоторые компоненты установки прерываются или не удаются, попробуйте снова использовать команду для установки
pip install -r zephyr/scripts/requirements.txt
Детальные методы реализации можно найти в Application Development — Zephyr Project Documentation
Пути к официальным примерам Zephyr: zephyr/samples
Пути к примерам Phytium-Zephyr-SDK: app/
Система сборки Zephyr основана на CMake.Эта система сборки ориентирована на приложения и требует запуска сборки исходного кода Zephyr для приложений, основанных на Zephyr. Управление сборкой приложения контролирует настройку и сборку как самого приложения, так и Zephyr, компилируя их в единую двоичную файлу.Основной репозиторий Zephyr включает в себя исходный код Zephyr, файлы конфигурации и систему сборки. Вы, возможно, также установили различные модули (внешние проекты), которые интегрируют сторонние исходные коды с репозиторием Zephyr.
Файлы в директории приложения связывают Zephyr и любые модули с приложением. Эта директория содержит все файлы, специфичные для приложения, такие как файлы конфигурации и исходные коды, специфичные для приложения.
Вот пример структуры файлов в простом приложении Zephyr:
<app>
├── CMakeLists.txt
├── app.overlay
├── prj.conf
├── VERSION
└── src
└── main.c
Эти файлы включают:
CMakeLists.txt: Этот файл сообщает системе сборки, где находятся другие файлы приложения, и связывает директорию приложения с системой сборки CMake Zephyr. Эта связь обеспечивает функции, предоставляемые системой сборки Zephyr, такие как файлы конфигурации, специфичные для платформы, возможность запуска и отладки двоичных файлов, скомпилированных для реального или моделированного оборудования, и т. д.
app.overlay: Это файл перекрытия дерева устройств, который определяет специфичные для приложения изменения, применяемые к базовому дереву устройств для любой платформы сборки. Цель перекрытия дерева устройств обычно состоит в том, чтобы настроить приложение для использования определенного оборудования.Система сборки по умолчанию ищет app.overlay
, но вы можете добавить дополнительные перекрытия дерева устройств и искать другие файлы по умолчанию.
prj.conf
: Это фрагмент Kconfig, который используется для указания специфичных для приложения значений одного или нескольких параметров Kconfig. Эти настройки приложения объединяются с другими настройками для создания окончательной конфигурации. Цель фрагмента Kconfig обычно состоит в том, чтобы настроить приложение для использования определенных функций программного обеспечения.
Система сборки по умолчанию ищет prj.conf
, но вы можете добавить дополнительные фрагменты Kconfig и искать другие файлы по умолчанию.
Дополнительную информацию о конфигурации Kconfig см. в разделе о конфигурации Kconfig ниже.
VERSION
: Текстовый файл, содержащий несколько полей версии. Эти поля позволяют управлять жизненным циклом приложения и автоматически предоставлять версию приложения при подписи образа приложения. Дополнительную информацию о данном файле и его использовании можно найти в разделе по управлению версиями приложения.
main.c
: файл исходного кода. Приложение обычно состоит из файлов исходного кода, написанных на C, C++ или ассемблере. В соответствии с традициями Zephyr такие файлы размещаются в поддиректории src
директории <app>
.После определения приложения вы используете CMake для создания директории сборки, содержащей файлы, необходимые для сборки приложения и Zephyr, которые затем связываются в конечный двоичный файл, который можно запустить на платформе. Самый простой способ сделать это — использовать west build
, но вы также можете использовать CMake напрямую. Артефакты сборки приложения всегда создаются в отдельной директории сборки: Zephyr не поддерживает сборку "внутри дерева".
Система сборки Zephyr компилирует и связывает все компоненты приложения в отдельное приложение-образ, которое можно запустить как на симуляторе аппаратного обеспечения, так и на реальном аппарате.
Как и в любой другой системе на основе CMake, процесс сборки состоит из двух этапов. На первом этапе с помощью командной строки инструмента CMake создаются файлы сборки (также известные как система сборки), при этом указывается генератор. Генератор определяет локальные инструменты сборки, которые будут использоваться на втором этапе. На втором этапе запускаются локальные инструменты сборки, которые фактически собирают исходные файлы и создают образ. Чтобы узнать больше о данных концепциях, обратитесь к официальной документации CMake.Хотя по умолчанию Zephyr использует west, мета-инструмент Zephyr, который в фоновом режиме вызывает CMake и базовые инструменты сборки (ninja или make), вы также можете выбрать вызов CMake напрямую, если вам это больше подходит. На Linux и macOS вы можете выбирать между генераторами make и ninja (то есть инструментами сборки), а на Windows вам необходимо использовать ninja, так как эта платформа не поддерживает make. Для упрощения, данное руководство будет использовать ninja на протяжении всего процесса, и если вы выбрали сборку приложения с помощью west build, вам следует знать, что по умолчанию он использует ninja в фоновом режиме.- В процессе сборки мы обычно используем следующий метод:
west build -b <board_name> <project_path> -DOVERLAY_CONFIG=<prj.conf>
В команде west выше <board_name>
представляет модель разработки, <project_path>
— относительный путь к проекту, который нужно скомпилировать, а <prj.conf>
— фрагмент Kconfig.
Пример конкретной команды: в директории app/system/kernel_feature/schedule
используйте команду west build -b e2000q_demo ./ -DOVERLAY_CONFIG=prj.conf
, чтобы использовать разработку e2000q_demo для сборки исходного кода в директории app/system/kernel_feature/schedule
и использовать конфигурацию prj.conf
в текущей директории.
west build -t clean
Команда clean
предназначена для удаления кэша сборки в директории <app>/build
, что позволяет восстановить систему сборки.
Аппаратная платформа | Поддерживаемые архитектуры | Примечания |
---|---|---|
E2000D/Q DEMO | aarch64 | Поддерживает SMP-режим |
E2000D/Q DEMO | aarch32 |
Вопрос: При использовании команды west update
в директории phytium-zephyr-sdk возникает ошибка загрузки репозитория. Как это исправить?Ответ: Большинство модулей Zephyr размещены на GitHub. Убедитесь, что ваша сеть имеет доступ к GitHub.
Вопрос: Как решить следующую проблему, если она возникает при загрузке Zephyr OS?
Ответ: При загрузке Zephyr OS возникает ошибка. Необходимо удалить директорию zephyr в текущей директории и повторить инициализацию Zephyr OS.
Вопрос: Как решить следующую проблему, если она возникает при выполнении команды pip install -r /zephyr/scripts/requirements.txt
?
Ответ: Вы можете добавить -i https://pypi.tuna.tsinghua.edu.cn/simple
после команды pip install -r /zephyr/scripts/requirements.txt
, чтобы использовать китайский зеркальный репозиторий PyPI.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )