1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/phytium_embedded-phytium-zephyr-sdk

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Phytium-Zephyr-SDK

v1.0.0 ReleaseNote

1. Описание репозитория

1.1 Особенности данного репозитория

Этот проект представляет собой открытый источник программного обеспечения, разработанный специально для сферы Интернета вещей, на основе операционной системы реального времени Zephyr, адаптированной для процессоров серии Phytium. Наша цель — упростить использование разработчиками, предоставив документацию по развертыванию и руководства по использованию, чтобы помочь разработчикам легко расширять функциональность процессоров серии Phytium на платформе Zephyr. Этот проект подходит для всех разработчиков, желающих максимально использовать возможности процессоров серии Phytium на операционной системе реального времени Zephyr.

1.2 Введение в Zephyr

Zephyr Project Documentation — Zephyr Project Documentation

Zephyr — это открытая операционная система реального времени (RTOS), предназначенная для работы на ресурсоограниченных встраиваемых устройствах. Она поддерживается Фондом Linux, целью которого является предоставление легковесной, модульной системы, поддерживающей приложения Интернета вещей (IoT) и вычисления на краю сети. Проект Zephyr начался в 2016 году и быстро развился в активное сообщество открытого кода, объединяющее разработчиков и компании со всего мира, которые вносят свой вклад в код и знания.### Основные характеристики ядра

  1. Легковесность и высокая модульность : Zephyr спроектирован так, чтобы быть настраиваемым и расширяемым, позволяя разработчикам выбирать компоненты, которые будут включены в конечный бинарный файл, что помогает сократить потребление ресурсов.
  2. Реальное время : как RTOS, Zephyr обеспечивает реальное время расписание задач, гарантируя, что критические задачи будут выполняться своевременно и точно.
  3. Поддержка множества платформ : поддерживает множество различных архитектур процессоров, включая ARM, Intel x86, RISC-V и другие, охватывая устройства от низкоэнергетических микроконтроллеров до более сложных систем на чипе (SoC).
  4. Безопасность : предоставляет множество безопасных функций, включая шифрование данных и безопасное запуск, чтобы защитить устройства от атак.

Разработка приложений1. Гибкая среда разработки : Zephyr может быть разработан с помощью его SDK и интегрированных сред разработки (IDE), поддерживающих множество языков программирования, включая C и C++.

  1. Поддержка драйверов устройств и промежуточного программного обеспечения : предоставляет обширные драйверы устройств и промежуточное программное обеспечение, поддерживающее множество протоколов и услуг, включая сеть, Bluetooth, файловые системы и другие.

  2. Микроядро и ядро для микроконтроллеров (MCU) : разработчики могут выбрать подходящую конфигурацию ядра в зависимости от потребностей приложения, чтобы оптимально использовать ресурсы оборудования.### Особенности экосистемы

  3. Сильная поддержка сообщества: Будучи активным открытым проектом, Zephyr имеет широкую поддержку сообщества, предоставляющую множество документов, руководств и примеров, которые помогают разработчикам быстро освоить проект.

  4. Совместимость с основными технологиями: Zephyr может интегрироваться с множеством основных открытых технологий, таких как загрузчик MCUBOOT и библиотека безопасности Mbed TLS, что обеспечивает разработчикам возможность создания безопасных и надежных приложений.

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

1.3 Поддержка фреймворков

Этот открытый проект состоит из трёх репозиториев (рис. 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.

1712020444273

Рис. 1 Схема архитектуры проекта

2. Инструкции по использованию репозиториев

  • Этот пример предназначен только для среды разработки Ubuntu
  • Этот модуль состоит из трех основных разделов: 1. Настройка среды разработки; 2. Развертывание программного обеспечения; 3. Использование примеров;

2.1 Настройка среды разработки

  1. Обновите среду Ubuntu, рекомендуется использовать версию Ubuntu 22.04
sudo apt update
sudo apt upgrade
  1. Если используется версия Ubuntu, ранняя чем 22.04, для удовлетворения минимальных версий основных зависимостей, необходимо добавить дополнительные репозитории программного обеспечения. В этом случае скачайте, проверьте и выполните скрипт Kitware Archive, чтобы добавить репозиторий Kitware APT в список ваших источников программного обеспечения. Подробное объяснение скрипта kitware-archive.sh можно найти здесь: kitware сторонний apt репозиторий.``` sudo bash ./tools/kitware-archive.sh

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
![zephy_sdk_install](figs/readme/zephy_sdk_install.png)

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
  1. Выполните следующую команду в текущей директории для инициализации Zephyr OS, Zephyr OS будет сохранен в директории zephyr
./tools/pull_zephyr_os.sh 
  1. Обновите другие проекты в Zephyr OS, этот процесс может занять некоторое время, пожалуйста, будьте терпеливы

Если некоторые проекты обновления прерываются или не удаются, попробуйте снова использовать команду для обновления

west update
  1. Установите необходимые компоненты в виртуальное окружение Python, этот процесс может занять некоторое время, пожалуйста, будьте терпеливы

Если некоторые компоненты установки прерываются или не удаются, попробуйте снова использовать команду для установки

pip install -r zephyr/scripts/requirements.txt

3. Как развернуть программное обеспечение

Детальные методы реализации можно найти в Application Development — Zephyr Project Documentation

  • Лучший способ развертывания программного обеспечения — начать с примеров Phytium-Zephyr-SDK или официальных примеров Zephyr.

Пути к официальным примерам Zephyr: zephyr/samples Пути к примерам Phytium-Zephyr-SDK: app/

3.1 Описание приложения

Система сборки 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 не поддерживает сборку "внутри дерева".

3.2 Сборка и пересборка приложения

Система сборки 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, что позволяет восстановить систему сборки.

4. Поддержка аппаратного обеспечения

Аппаратная платформа Поддерживаемые архитектуры Примечания
E2000D/Q DEMO aarch64 Поддерживает SMP-режим
E2000D/Q DEMO aarch32

5. Примеры

5.1 Тест ядра

schedule interrupt smp_test

5.2 Тест периферий

echo telnet tf_test

Описание примеров

FIQ

Вопрос: При использовании команды west update в директории phytium-zephyr-sdk возникает ошибка загрузки репозитория. Как это исправить?Ответ: Большинство модулей Zephyr размещены на GitHub. Убедитесь, что ваша сеть имеет доступ к GitHub.

Вопрос: Как решить следующую проблему, если она возникает при загрузке Zephyr OS?

1712058336378

Ответ: При загрузке Zephyr OS возникает ошибка. Необходимо удалить директорию zephyr в текущей директории и повторить инициализацию Zephyr OS.

Вопрос: Как решить следующую проблему, если она возникает при выполнении команды pip install -r /zephyr/scripts/requirements.txt?

1712107861173

Ответ: Вы можете добавить -i https://pypi.tuna.tsinghua.edu.cn/simple после команды pip install -r /zephyr/scripts/requirements.txt, чтобы использовать китайский зеркальный репозиторий PyPI.

Комментарии ( 0 )

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

Введение

Этот проект является открытым программным обеспечением, предназначенным для сферы Интернета вещей, основан на реального времени операционной системе Zephyr и адаптирован и разработан для приложений с процессорами серии Phytium. Исправленный текст: Этот проект является открытым программным обеспечением, предназначенным для сферы Интернета вещей,... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/phytium_embedded-phytium-zephyr-sdk.git
git@api.gitlife.ru:oschina-mirror/phytium_embedded-phytium-zephyr-sdk.git
oschina-mirror
phytium_embedded-phytium-zephyr-sdk
phytium_embedded-phytium-zephyr-sdk
master