Créer une application de haut niveau

Cette section explique comment générer, empaqueter et déployer une application de haut niveau Azure Sphere.

Ces instructions utilisent l’exemple d’application HelloWorld_HighLevelApp comme exemple.

Conditions préalables

Préparer votre appareil pour le développement et le débogage

Avant de pouvoir créer un exemple d’application sur votre appareil Azure Sphere ou développer de nouvelles applications pour celui-ci, vous devez activer le développement et le chargement indépendant. Par défaut, les appareils Azure Sphere sont « verrouillés » ; autrement dit, ils n’autorisent pas le chargement des applications en cours de développement à partir d’un ordinateur, et ils n’autorisent pas le débogage des applications. La préparation de l’appareil pour le chargement indépendant supprime cette restriction.

La commande az sphere device enable-development configure l’appareil pour accepter les applications à des fins de débogage, charge le serveur de débogage sur l’appareil et affecte l’appareil à un groupe d’appareils qui n’autorise pas les mises à jour des applications cloud. Pendant le développement et le débogage de l’application, vous devez laisser l’appareil dans ce groupe afin que les mises à jour des applications cloud ne remplacent pas l’application en cours de développement.

  1. Assurez-vous que votre appareil Azure Sphere est connecté à votre ordinateur et que votre ordinateur est connecté à Internet.

  2. Ouvrez une interface de ligne de commande à l’aide de PowerShell, de l’invite de commandes Windows ou de l’interpréteur de commandes Linux.

  3. Entrez la commande suivante :

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

    Vous devez voir une sortie similaire à ce qui suit :

    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.
    

Si la commande az sphere device enable-development échoue, consultez Résoudre les problèmes Azure Sphere pour obtenir de l’aide.

Générer et déployer l’application dans Visual Studio avec débogage

  1. Vérifiez que votre appareil est connecté à votre PC par USB. Dans le menu Définir l’élément de démarrage , sélectionnez Application Azure Sphere (HLCore)Application Azure Sphere est le nom de votre application de haut niveau actuelle ou appuyez sur F5.

    Bouton Débogueur GDB distant

  2. Si vous êtes invité à générer le projet, sélectionnez Oui. Visual Studio compile l’application, crée un package d’image, le charge sur la carte et le démarre en mode débogage. Le chargement indépendant signifie que l’application est fournie directement à partir du PC via une connexion câblée, plutôt que par le biais du cloud.

    Notez l’ID d’image du package d’image dans la sortie Afficher> lasortie> de : Sortiedebuild. Vous utiliserez l’ID d’image plus loin dans Tutoriel : Créer un déploiement cloud.

  3. Par défaut, la fenêtre Sortie affiche la sortie de sortie de l’appareil. Pour afficher les messages du débogueur, sélectionnez Déboguer dans le menu déroulant Afficher la sortie de : . Vous pouvez également inspecter le désassemblement du programme, les registres ou la mémoire via le menu Déboguer>Windows .

Générer et déployer l’application dans Visual Studio sans débogage

  1. Vérifiez que votre appareil est connecté à votre PC par USB. Dans le menu Déboguer , sélectionnez Démarrer sans débogage ou appuyez sur Ctrl+F5.

  2. Si vous êtes invité à générer le projet, sélectionnez Oui. Visual Studio compile l’application, crée un package d’image, le charge sur la carte et le démarre. Le chargement indépendant signifie que l’application est fournie directement à partir du PC via une connexion câblée, plutôt que par le biais du cloud.

  3. Par défaut, la fenêtre Sortie affiche la sortie de sortie de l’appareil.

Générer et déployer l’application dans Visual Studio Code avec débogage

  1. Appuyez sur F5 pour générer et déboguer le projet. Si le projet n’a pas été généré précédemment, ou si les fichiers ont changé et qu’une reconstruction est nécessaire, Visual Studio Code génère le projet avant le démarrage du débogage.

  2. Attendez plusieurs secondes que Visual Studio Code génère l’application, crée un package d’image, le déploie sur la carte et le démarre en mode débogage. Vous verrez status mises à jour dans le volet Sortie en cours de route.

    Tout d’abord, CMake détermine si l’application doit être générée. Si c’est le cas, le focus se déplace sur la fenêtre de sortie, qui affiche la sortie de CMake/Build.

    Ensuite, le volet Sortie affiche le résultat à mesure que le package d’image est déployé sur l’appareil. Enfin, la console de débogage reçoit le focus et affiche la sortie du débogueur.

Générer et déployer l’application dans Visual Studio Code sans débogage

  1. Vérifiez que votre appareil est connecté à votre PC par USB. Dans le menu Exécuter , sélectionnez Démarrer sans débogage ou appuyez sur Ctrl+F5 pour générer et exécuter le projet. Si le projet n’a pas été généré précédemment, ou si des fichiers ont été modifiés et qu’une reconstruction est requise, Visual Studio Code génère le projet.

  2. Attendez plusieurs secondes que Visual Studio Code génère l’application, crée un package d’image, le déploie sur la carte et le démarre. Vous verrez status mises à jour dans le volet Sortie en cours de route.

    Tout d’abord, CMake détermine si l’application doit être générée. Si c’est le cas, le focus se déplace sur la fenêtre de sortie, qui affiche la sortie de CMake/Build.

    Ensuite, la fenêtre de sortie affiche la sortie d’azsphere lors du déploiement du package d’images sur l’appareil. L’application démarre automatiquement après son déploiement sur l’appareil.

Générer l’application

Pour créer votre application, vous devez trouver les outils de compilation, les en-têtes et les bibliothèques appropriés( collectivement appelés sysroot) sur votre ordinateur. Le Kit de développement logiciel (SDK) Azure Sphere est fourni avec plusieurs sysroots afin que les applications puissent cibler différents ensembles d’API, comme décrit dans Version du runtime d’application, sysroots et API bêta. Les sysroots sont installés dans le dossier d’installation du Kit de développement logiciel (SDK) Azure Sphere sous Sysroots.

  1. Créez ou accédez au répertoire qui contiendra les fichiers à générer pendant le processus de génération.

  2. Si votre application dépend d’une autre application, marquez les applications comme partenaires dans leurs fichiers app_manifest.md.

  3. Ajoutez ou mettez à jour le fichier CMakeLists.txt de votre application pour appeler les fonctions CMake Azure Sphere si nécessaire.

  4. À partir du répertoire de build de votre projet, à l’invite de commandes, exécutez CMake avec les paramètres suivants :

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

      Nom prédéfini de configuration de build tel que défini dans CMakePresets.json.

    • --build <cmake-path>

      Répertoire binaire qui contient le cache CMake. Par exemple, si vous exécutez CMake sur un exemple Azure Sphere, la commande build est cmake --build out/ARM-Debug.

    • <source-path>

      Chemin d’accès du répertoire qui contient les fichiers sources de l’exemple d’application. Dans l’exemple, le référentiel d’exemples Azure Sphere a été téléchargé dans un répertoire appelé AzSphere.

      Les paramètres CMake sont séparés par des espaces. Le caractère de continuation de ligne (^ pour la ligne de commande Windows, \ pour la ligne de commande Linux ou ' pour PowerShell) peut être utilisé pour la lisibilité, mais n’est pas obligatoire.

    Les exemples suivants illustrent les commandes CMake pour la Hello World application de haut niveau.

    Invite de commandes 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. Exécutez Ninja pour générer l’application et créer le fichier de package d’image :

    ninja -C out/ARM-Debug
    

    Ninja place l’application et les fichiers .imagepackage obtenus dans le répertoire spécifié.

    Vous pouvez également appeler Ninja via CMake avec la commande suivante :

    cmake --build out/<binary-dir>
    

    Définissez <binary-dir> sur le répertoire binaire qui contient le cache CMake. Par exemple, si vous exécutez CMake sur un exemple Azure Sphere, la commande build est cmake --build out/ARM-Debug.

Déployer l’application

Vérifiez que votre appareil dispose de la fonctionnalité appDevelopment afin de pouvoir charger une version test de l’application et de vous assurer que le serveur de débogage est présent. Utilisez la az sphere device enable-development commande si nécessaire.

  1. Si votre appareil exécute déjà une ou plusieurs applications, supprimez-les.

    az sphere device sideload delete
    

    Notez que cette commande supprime toutes les applications sur l’appareil. Si vous avez déjà déployé une application en temps réel qui est un partenaire de l’application de haut niveau, utilisez le paramètre pour spécifier l’application --component-id à supprimer. Vous trouverez l’ID de composant de l’application dans son fichier app_manifest.json.

  2. Chargez le package d’images sur votre appareil en exécutant la commande az sphere device sideload deploy et en spécifiant le package d’image. Par exemple :

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

    Votre application doit commencer à s’exécuter.

Vous pouvez arrêter et redémarrer l’application ultérieurement à l’aide des az sphere device app stop --component-id <component-ID> commandes et az sphere device app start --component-id <component ID> .