Бөлісу құралы:


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

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

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

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

Подготовка устройства к разработке и отладке

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

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

  1. Убедитесь, что устройство Azure Sphere подключено к компьютеру, а компьютер подключен к Интернету.

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

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

    az sphere device enable-development --resource-group <ResourceGroupName> --catalog <CatalogName> --device <DeviceIdValue>
    

    Выходные данные должны выглядеть примерно так:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

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

Сборка и развертывание приложения в Visual Studio с помощью отладки

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

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

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

    Обратите внимание на идентификатор изображения пакета изображений в представлении>выходных>данных Показать выходные данные из: Выходные данные сборки . Идентификатор образа будет использоваться далее в разделе Руководство. Создание облачного развертывания.

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

Сборка и развертывание приложения в Visual Studio без отладки

  1. Убедитесь, что устройство подключено к компьютеру через USB. В меню Отладка выберите Запуск без отладки или нажмите клавиши CTRL+F5.

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

  3. По умолчанию в окне Выходные данные отображаются выходные данные устройства.

Сборка и развертывание приложения в Visual Studio Code с отладкой

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

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

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

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

Сборка и развертывание приложения в Visual Studio Code без отладки

  1. Убедитесь, что устройство подключено к компьютеру через USB. В меню Выполнить выберите Запуск без отладки или нажмите клавиши CTRL+F5 , чтобы выполнить сборку и запуск проекта. Если проект ранее не был создан или файлы изменились и требуется перестроение, Visual Studio Code выполнит сборку проекта.

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

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

    Затем в окне выходных данных отображаются выходные данные из azsphere при развертывании пакета образа на устройстве. Приложение запускается автоматически после развертывания на устройстве.

Создание приложения

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

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

  2. Если ваше приложение зависит от другого приложения, пометьте его как партнеров в файлах app_manifest.md.

  3. Добавьте или обновите файл CMakeLists.txt для приложения, чтобы при необходимости вызывать функции CMake Azure Sphere .

  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 для высокоуровневого приложения Hello World.

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

    cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

    cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_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.

Развертывание приложения

Убедитесь, что на устройстве есть возможность appDevelopment, чтобы можно было загрузить неопубликованное приложение и убедиться, что сервер отладки присутствует. При необходимости используйте az sphere device enable-development команду .

  1. Если на устройстве уже запущено одно или несколько приложений, удалите их.

    az sphere device sideload delete
    

    Обратите внимание, что эта команда удаляет все приложения на устройстве. Если вы уже развернули приложение RTApp, которое является партнером для приложения высокого уровня, используйте --component-id параметр , чтобы указать, какое приложение следует удалить. Идентификатор компонента приложения можно найти в файле app_manifest.json.

  2. Загрузите пакет образа на устройство, выполнив команду az sphere device sideload deploy и указав пакет образа. Например:

    az sphere device sideload deploy --image-package C:\Users\LocalSamples\HelloWorld\HelloWorld_HighLevelApp\out\ARM-Debug\HelloWorld_HighLevelApp.imagepackage
    

    Приложение должно запуститься.

Позже можно остановить и перезапустить приложение с помощью az sphere device app stop --component-id <component-ID> команд и az sphere device app start --component-id <component ID> .