Поделиться через


Общие сведения о приложениях Azure Sphere

Внимание

Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).

На устройствах Azure Sphere могут выполняться приложения двух типов:

  • высокоуровневые приложения запускаются из контейнеров в ОС Azure Sphere;
  • приложения, поддерживающие режим реального времени (RTApp), работают на оборудовании без операционной системы или в операционной системе в реальном времени (RTOS) на ядрах реального времени.

Высокоуровневые приложения требуются для каждого устройства Azure Sphere. Приложения RTApp являются необязательными.

Высокоуровневые приложения

Каждое устройство Azure Sphere имеет высокоуровневое приложение, которое работает в ОС Azure Sphere и может использовать библиотеки приложений. Высокоуровневое приложение может:

  • настраивать и взаимодействовать с периферийными устройствами Azure Sphere, такими как контакты GPIO, универсальные асинхронные приемники/передатчики (UART) и другие интерфейсы;

  • взаимодействовать с приложениями RTApp;

  • взаимодействовать с Интернетом и облачными службами;

  • выступать посредником для установки отношений доверия с другими устройствами и службами посредством проверки подлинности на основе сертификатов.

Высокоуровневое приложение выполняется в контейнере в пользовательском режиме Normal World, как описано в разделе Что такое Azure Sphere. Контейнер приложения поддерживает ряд компонентов среды POSIX и набор библиотек приложений (Applibs), которые относятся к ОС Azure Sphere. Эти библиотеки и функции доступны для высокоуровневых приложений и предназначены исключительно для обеспечения безопасности платформы и возможности простого обновления. Приложения могут обращаться только к библиотекам и службам времени выполнения, предоставляемых корпорацией Майкрософт. Помимо прочих ограничений, невозможно использовать прямые операции ввода-вывода в файл или обращения к оболочке. Среда разработки описывает базовый набор API и представляет библиотеки приложений Azure Sphere, поддерживающие функции, относящиеся к устройству.

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

Создание высокоуровневого приложения предоставляет дополнительные сведения о функциях.

Приложения, поддерживающие режим реального времени

Устройство Azure Sphere может также содержать одно или несколько приложений, поддерживающих режим реального времени, помимо высокоуровневого приложения. Приложение RTApp может:

  • настраивать и взаимодействовать с периферийными устройствами, интегрированными в микроконтроллер Azure Sphere, в том числе с контактами GPIO и UART;
  • взаимодействовать с высокоуровневыми приложениями.

Приложения RTApp могут выполняться на оборудовании без операционной системы или в операционной системе реального времени (RTOS). Репозиторий Azure Sphere на сайте GitHub содержит пример HelloWorld для платформы без ОС, а также пример, демонстрирующий обмен данными между разными ядрами для высокоуровневых приложений и приложений RTApp. Репозиторий примеров Azure на сайте GitHub содержит пример, который демонстрирует, как использовать Azure Sphere с ОСРВ Azure.

Дополнительные драйверы и примеры для RTApps с поддержкой ядер M4 реального времени на микросхеме MT3620, доступные на сайте GitHub, предоставили такие партнеры Azure Sphere, как MediaTek и Codethink.

Каждое приложение RTApp выполняется изолированно на определенном ядре ввода-вывода и может взаимодействовать только с высокоуровневым приложением. Оно не может использовать Интернет, библиотеки Applibs Azure Sphere или другие функции ОС Azure Sphere.

Создание приложения с поддержкой в режиме реального времени предоставляет дополнительные сведения о функциях и процессе разработки для RTApps.

Функции, общие для всех приложений

Несмотря на значительные различия между высокоуровневыми приложениями и приложениями RTApp, все приложения Azure Sphere имеют кое-что общее. Вы можете разрабатывать и отлаживать приложения обоих типов, а также выполнять их сборку с помощью Visual Studio, Visual Studio Code или путем вызова CMake и Ninja в интерфейсе командной строки.

Кроме того, для высокоуровневых приложений и приложений RTApp можно использовать приведенные ниже средства безопасности.

Возможности приложения

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

Возможности приложения — это ресурсы, которые требуются приложению. Помимо прочего возможности приложения включают в себя периферийные устройства, которые оно использует, узлы в Интернете, к которым подключается высокоуровневое приложение, и разрешения на изменение конфигурации сети. У каждого приложения должен быть манифест приложения, который идентифицирует эти ресурсы.

Возможности устройства

Возможность устройства позволяет использовать действие конкретного устройства. Возможности устройств предоставляются службой безопасности Azure Sphere. По умолчанию в микросхемах Azure Sphere не записаны возможности устройств. Существует два основных типа возможностей устройств: возможность устройства appDevelopment и возможность устройства fieldServicing .

Возможность устройства appDevelopment изменяет тип подписи, которой доверяет устройство. По умолчанию устройство Azure Sphere доверяет подписанным для рабочей среды пакетам образов, но не доверяет подписанным пакетом SDK пакетам образов. Таким образом невозможно загрузить неопубликованный подписанный пакетом SDK пакет образа на устройство Azure Sphere, которое не поддерживает эту возможность. Однако при наличии возможности appDevelopment устройство доверяет подписанным пакетом SDK пакетам образов. Кроме того, она позволяет запустить, остановить, отладить приложение или удалить его с устройства. Таким образом, возможность разработки приложений необходима на устройстве для выполнения следующих действий:

  • Загрузка неопубликованного пакета образа, который был создан с помощью Visual Studio или команды azsphere image-package.
  • Запуск, остановка, отладка или удаление пакета образа с устройства Azure Sphere независимо от того, как он подписан.

Команда azsphere device enable-development создает и применяет возможность appDevelopment, а также предотвращает получение устройством обновлений приложений из облака.

Возможность fieldServicing разрешает обмен данными между устройствами на устройствах, которые находятся в производственном состоянии DeviceComplete. С помощью этой возможности можно загрузить неопубликованные образы, подписанные в рабочей среде, но не удалять их. Вы можете запускать и останавливать приложения, но не отлаживать их. Вы также можете выполнять стандартные задачи обслуживания, такие как настройка Wi-Fi. Он предназначен для краткосрочного использования во время сеанса обслуживания, ограниченный период, в течение которого доступ к устройству предоставляется на основе каждой операции.

Требования к подписыванию и развертыванию

Все пакеты образов, развернутые на устройстве Azure Sphere, должны быть подписаны. С помощью пакета SDK для Azure Sphere и команды azsphere image-package можно подписать пакеты образов для тестирования, используя ключ подписи пакета SDK. Устройства Azure Sphere доверяют этому ключу только при наличии возможности устройства appDevelopment.

Служба безопасности Azure Sphere подписывает пакеты образов для рабочей среды при их передаче в облако. Подписанные для рабочей среды пакеты образов могут быть загружены без публикации или загружены из облака.

Чтобы предотвратить установку мошеннического программного обеспечения, приложения могут загружаться на устройство Azure Sphere только двумя способами.

  • Загрузка неопубликованных устройств, которую можно использовать как для разработки программного обеспечения, так и для тестирования и обслуживания на местах устройств. Загрузка неопубликованных приложений для разработки и тестирования программного обеспечения требует возможности устройства appDevelopment. Загрузка неопубликованных данных для обслуживания полей требует возможности устройства fieldServicing и пакетов образов, подписанных в рабочей среде. Неопубликованные приложения Visual Studio и Visual Studio Code во время разработки и отладки; Вы также можете вручную загрузить неопубликованные данные с помощью Интерфейса командной строки Azure Sphere.

  • Обновление из облака, которое может выполнить только служба безопасности Azure Sphere. Используйте Интерфейс командной строки Azure Sphere для создания облачных развертываний и управления ими.

Партнерские приложения

Приложения, работающие вместе, можно считать партнерскими приложениями и загружать их без публикации отдельно. Когда вы загружаете неопубликованное приложение, у которого есть партнер, партнерское приложение остается на устройстве Azure Sphere, если оно уже было развернуто. Каждое приложение объявляет список своих партнеров в конфигурации проекта.

Чтобы добавить партнеров в конфигурацию проекта CMake, укажите идентификатор компонента партнерского приложения в поле partnerComponents раздела configurations в файле launch.vs.json или .vscode/launch.json.

"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Высокоуровневые приложения и RTApps, взаимодействующие друг с другом, должны быть определены как партнеры. Azure Sphere не поддерживает обмен данными между парами высокоуровневых приложений или пар RTApps.