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


Создание и развертывание партнерских приложений

В этом разделе описано, как создавать, упаковывать и развертывать партнерские приложения Azure Sphere.

В этих инструкциях в качестве примера используются примеры приложений IntercoreComms .

Необходимые условия

Включение разработки и отладки

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

Для отладки на ядрах в режиме реального времени используйте команду az sphere device enable-development . Эта команда настраивает устройство для приема приложений с компьютера для отладки и назначает устройство группе устройств разработка, которая не разрешает обновления облачных приложений. Во время разработки и отладки приложений следует оставить устройство в этой группе, чтобы обновления облачных приложений не перезаписывало разрабатываемое приложение.

В Windows необходимо добавить --enable-rt-core-debugging параметр , который загружает серверы отладки и необходимые драйверы для каждого типа ядра на устройство.

  1. Войдите в Azure Sphere, если вы еще этого не сделали:

    az login
    
  2. Откройте интерфейс командной строки с помощью PowerShell или командной строки Windows с правами администратора. Для --enable-rt-core-debugging параметра требуются права администратора, так как он устанавливает USB-драйверы для отладчика.

  3. Введите следующую команду:

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. Закройте окно после завершения команды, так как права администратора больше не требуются. Рекомендуется всегда использовать наименьшие привилегии, которые могут выполнить задачу.

Если команда az sphere device enable-development завершается сбоем, см. статью Устранение неполадок Azure Sphere .

Включение разработки и отладки

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

Для отладки на ядрах в режиме реального времени используйте команду az sphere device enable-development . Эта команда настраивает устройство для приема приложений с компьютера для отладки и назначает устройство группе устройств разработка, которая не разрешает обновления облачных приложений. Во время разработки и отладки приложений следует оставить устройство в этой группе, чтобы обновления облачных приложений не перезаписывало разрабатываемое приложение.

В Windows необходимо добавить --enable-rt-core-debugging параметр , который загружает серверы отладки и необходимые драйверы для каждого типа ядра на устройство.

  1. Войдите в Azure, если вы еще этого не сделали:

    az login
    
  2. Откройте интерфейс командной строки с помощью PowerShell, командной строки Windows или командной оболочки Linux с правами администратора. Для --enable-rt-core-debugging параметра требуются права администратора, так как он устанавливает USB-драйверы для отладчика.

  3. Введите следующую команду:

    az sphere device enable-development --enable-rt-core-debugging
    
  4. Закройте окно после завершения команды, так как права администратора больше не требуются. Рекомендуется всегда использовать наименьшие привилегии, которые могут выполнить задачу.

Если команда az sphere device enable-development завершается ошибкой со следующим сообщением об ошибке, см. раздел Устранение неполадок Azure Sphere .

error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'az sphere device show-deployment-status'.

Создание партнерских приложений с помощью Visual Studio

  1. Убедитесь, что устройство подключено к компьютеру через USB. В меню Задать элемент запуска выберите Приложение Azure Sphere (все ядра), где приложение Azure Sphere — это имя проекта верхнего уровня, или нажмите клавишу F5.

    Кнопка удаленного отладчика GDB

  2. Если вам будет предложено выполнить сборку проекта, нажмите кнопку Да. Visual Studio компилирует партнерские приложения, создает пакеты образов, загружает их на доску и запускает их в режиме отладки. Загрузка неопубликованных приложений означает, что приложения доставляются непосредственно с компьютера через проводное подключение, а не через облако.

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

  3. По умолчанию в окне Выходные данные отображаются выходные данные устройства. Чтобы просмотреть сообщения отладчика, выберите Отладка в раскрывающемся меню Показать выходные данные из: Вы также можете проверить дизассемблю, регистры или память программы с помощью меню Отладка>Windows .

Создание партнерских приложений с помощью Visual Studio Code

  1. Откройте папку, содержащую партнерские приложения. Visual Studio Code обнаруживает файл рабочей области и спрашивает, хотите ли вы открыть рабочую область. Выберите Открыть рабочую область, чтобы одновременно открыть приложение в режиме реального времени и приложение высокого уровня.

  2. Щелкните правой кнопкой мыши любой из двух CMakeLists.txt файлов и выберите Пункт Создать все проекты.

  3. Щелкните значок Выполнить на панели действий Visual Studio Code.

  4. В раскрывающемся меню, которое отображается в верхней части окна в левой части экрана, выберите Запуск приложений Azure Sphere (gdb)(workspace).

  5. Нажмите клавишу F5, чтобы выполнить сборку и отладку проекта. Если проект ранее не был создан или файлы изменились и требуется перестроение, Visual Studio Code выполнит сборку проекта до начала отладки.

  6. Подождите несколько секунд, пока Visual Studio Code создадут приложения, создадут пакеты образов, разверните их на плате и запустите в режиме отладки. Попутно вы увидите обновления состояния в области Выходные данные .

    Во-первых, CMake определяет, нужно ли создавать приложения. Если это так, фокус переместится на окно вывода, в котором отображаются выходные данные из CMake/Build.

    Затем в области выходных данных отображаются выходные данные при развертывании пакета образа на устройстве. Наконец, консоль отладки получает фокус и отображает выходные данные gdb.

Компиляция и сборка приложения

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

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

Создание и развертывание приложения с поддержкой реального времени

  1. Перейдите в папку с приложением, поддерживающим режим реального времени.

  2. Откройте файл app_manifest.json и убедитесь, что идентификатор компонента приложения высокого уровня отображается в возможности AllowedApplicationConnections.

  3. Откройте интерфейс командной строки с помощью PowerShell, командной строки Windows или командной оболочки Linux. Перейдите в каталог сборки проекта.

  4. В каталоге сборки проекта в командной строке запустите CMake со следующими параметрами:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      Имя предустановки конфигурации сборки, определенное в CMakePresets.json.

    • --build <cmake-path>

      Двоичный каталог, содержащий кэш CMake. Например, при запуске CMake в примере Azure Sphere команда сборки будет иметь значение cmake --build out/ARM-Debug.

    • <source-path>

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

      Параметры CMake разделяются пробелами. Символ продолжения строки (^ для командной строки Windows, \ для командной строки Linux или " для PowerShell) можно использовать для удобства чтения, но он не является обязательным.

    В следующих примерах показаны команды CMake для приложения RTApp IntercoreComms:

    Командная строка Windows

    cmake ^
    --preset "ARM-Debug" ^
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
    
  5. В каталоге сборки проекта в командной строке выполните команду Ninja, чтобы создать приложение и создать файл пакета образа.

    ninja -C out/ARM-Debug
    

    Ninja помещает результирующие файлы приложения и imagepackage в указанный каталог.

    Вы также можете вызвать Ninja через CMake с помощью следующей команды:

    cmake --build out/<binary-dir>
    

    Задайте <binary-dir> двоичный каталог, содержащий кэш CMake. Например, при запуске CMake в примере Azure Sphere команда сборки будет иметь значение cmake --build out/ARM-Debug.

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

  6. Удалите все приложения, которые уже развернуты на устройстве:

    az sphere device sideload delete
    
  7. Из каталога сборки проекта в командной строке загрузите пакет образа, созданный Ninja:

    az sphere device sideload deploy --image-package <path-to-imagepackage>
    

    Приложение начнет работать вскоре после загрузки.

  8. Получите идентификатор компонента для образа:

    az sphere image-package show --image-package <path-to-imagepackage>
    

    Команда возвращает все метаданные для пакета образа. Идентификатор компонента для приложения отображается в разделе Удостоверение для типа образа приложения. Например:

    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...
    

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

  1. Перейдите в папку, содержащую высокоуровневое приложение.

  2. Откройте файл app_manifest.json и убедитесь, что идентификатор компонента RTApp отображается в возможности AllowedApplicationConnections.

  3. Откройте интерфейс командной строки с помощью PowerShell, командной строки Windows или командной оболочки Linux. Перейдите в каталог сборки проекта.

  4. В каталоге сборки проекта в командной строке запустите CMake со следующими параметрами:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      Имя предустановки конфигурации сборки, определенное в CMakePresets.json.

    • --build <cmake-path>

      Двоичный каталог, содержащий кэш CMake. Например, при запуске CMake в примере Azure Sphere команда сборки будет иметь значение cmake --build out/ARM-Debug.

    • <source-path>

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

      Параметры CMake разделяются пробелами. Символ продолжения строки (^ для командной строки Windows, \ для командной строки Linux или " для PowerShell) можно использовать для удобства чтения, но он не является обязательным.

    В следующих примерах показаны команды CMake для высокоуровневого приложения IntercoreComms.

    Командная строка Windows

    cmake ^
    --preset "ARM-Debug" ^
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    

    Windows PowerShell

    cmake `
    --preset "ARM-Debug" `
    "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_HighLevelApp"
    
  5. В каталоге сборки проекта в командной строке выполните команду Ninja, чтобы создать приложение и создать файл пакета образа.

    ninja -C out/ARM-Debug
    

    Ninja помещает результирующие файлы приложения и imagepackage в указанный каталог.

    Вы также можете вызвать Ninja через CMake с помощью следующей команды:

    cmake --build out/<binary-dir>
    

    Задайте <binary-dir> двоичный каталог, содержащий кэш CMake. Например, при запуске CMake в примере Azure Sphere команда сборки будет иметь значение cmake --build out/ARM-Debug.

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

  6. Из каталога сборки проекта в командной строке загрузите пакет образа, созданный Ninja:

    az sphere device sideload deploy --image-package <package-name>
    

    Приложение начнет работать вскоре после загрузки.

  7. Получите идентификатор компонента для образа:

    az sphere image-package show --image-package <path-to-imagepackage>
    

    Команда возвращает все метаданные для пакета образа. Идентификатор компонента для приложения отображается в разделе Удостоверение для типа образа приложения. Например:

      "ComponentId": "<component-ID>",
    ...
      "Identity": {
        "ComponentId": "<component-id>",
        "ImageId": "<image-id>",
        "ImageType": "Application"
      },
    ...