Partager via


Créer et déployer des applications partenaires

Cette section explique comment générer, empaqueter et déployer des applications partenaires Azure Sphere.

Ces instructions utilisent les exemples d’applications IntercoreComms comme exemple.

Conditions préalables

Activer 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 débogage. 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 PC, et ils n’autorisent pas le débogage des applications. La préparation de l’appareil pour le débogage supprime cette restriction et charge les logiciels requis pour le débogage et déverrouille les fonctionnalités de l’appareil .

Pour déboguer sur les cœurs en temps réel, utilisez la commande az sphere device enable-development . Cette commande configure l’appareil pour qu’il accepte les applications d’un PC à des fins de débogage et affecte l’appareil au groupe d’appareils de développement, 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.

Sur Windows, vous devez ajouter le --enable-rt-core-debugging paramètre , qui charge les serveurs de débogage et les pilotes requis pour chaque type de cœur sur l’appareil.

  1. Connectez-vous à Azure Sphere si vous ne l’avez pas déjà fait :

    az login
    
  2. Ouvrez une interface de ligne de commande à l’aide de PowerShell ou de l’invite de commandes Windows avec des privilèges d’administrateur. Le --enable-rt-core-debugging paramètre nécessite un privilège d’administrateur, car il installe des pilotes USB pour le débogueur.

  3. Entrez la commande suivante :

    az sphere device enable-development --enable-rt-core-debugging  --catalog <CatalogName>  --resource-group <ResourceGroupName>
    
  4. Fermez la fenêtre une fois la commande terminée, car le privilège administrateur n’est plus nécessaire. Comme meilleure pratique, vous devez toujours utiliser le privilège le plus bas qui peut accomplir une tâche.

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

Activer 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 débogage. 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 PC, et ils n’autorisent pas le débogage des applications. La préparation de l’appareil pour le débogage supprime cette restriction et charge les logiciels requis pour le débogage et déverrouille les fonctionnalités de l’appareil, comme décrit dans Fonctionnalités et communication de l’appareil.

Pour déboguer sur les cœurs en temps réel, utilisez la commande az sphere device enable-development . Cette commande configure l’appareil pour qu’il accepte les applications d’un PC à des fins de débogage et affecte l’appareil au groupe d’appareils de développement, 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.

Sur Windows, vous devez ajouter le --enable-rt-core-debugging paramètre , qui charge les serveurs de débogage et les pilotes requis pour chaque type de cœur sur l’appareil.

  1. Connectez-vous à Azure si vous ne l’avez pas déjà fait :

    az login
    
  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 avec des privilèges d’administrateur. Le --enable-rt-core-debugging paramètre nécessite un privilège d’administrateur, car il installe des pilotes USB pour le débogueur.

  3. Entrez la commande suivante :

    az sphere device enable-development --enable-rt-core-debugging
    
  4. Fermez la fenêtre une fois la commande terminée, car le privilège administrateur n’est plus nécessaire. Comme meilleure pratique, vous devez toujours utiliser le privilège le plus bas qui peut accomplir une tâche.

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

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'.

Créer des applications partenaires avec Visual Studio

  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 (Tous les cœurs)Application Azure Sphere est le nom de votre projet de niveau supérieur 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 les applications partenaires, crée des packages d’images, les charge sur la carte et les démarre en mode débogage. Le chargement indépendant signifie que les applications sont fournies directement à partir du PC via une connexion câblée, plutôt que par le biais du cloud.

    Notez les chemins d’accès dans la sortie Afficher> lasortie> de : Sortiede build, qui indique l’emplacement des packages d’image de sortie sur votre PC. Lorsque vous êtes prêt à créer un déploiement, vous devez connaître les chemins d’accès aux packages d’images.

  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 .

Créer des applications partenaires avec Visual Studio Code

  1. Ouvrez le dossier contenant vos applications partenaires. Visual Studio Code détecte le fichier d’espace de travail et vous demande si vous souhaitez ouvrir l’espace de travail. Sélectionnez Ouvrir l’espace de travail pour ouvrir simultanément l’application en temps réel et l’application générale.

  2. Cliquez avec le bouton droit sur l’un des deux fichiers CMakeLists.txt, puis sélectionnez Générer tous les projets.

  3. Cliquez sur l’icône Exécuter dans la barre d’activité Visual Studio Code.

  4. Dans le menu déroulant qui s’affiche en haut de la fenêtre sur le côté gauche de l’écran, sélectionnez Lancer des applications Azure Sphere (gdb)(espace de travail) .

  5. 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.

  6. Attendez plusieurs secondes que Visual Studio Code génère les applications, crée les packages d’images, les déploie sur la carte et les 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 les applications doivent être générées. 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 de sortie affiche la sortie lors du déploiement du package d’images sur l’appareil. Enfin, la console de débogage reçoit le focus et affiche la sortie gdb.

Compiler et générer l’application

Pour créer vos applications avec l’interface CLI, 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.

Lors de la génération avec l’interface CLI, commencez par générer et déployer l’application compatible en temps réel, puis générez et déployez l’application de haut niveau.

Créer et déployer l’application en temps réel

  1. Accédez au dossier contenant votre application compatible en temps réel.

  2. Ouvrez le fichier app_manifest.json et vérifiez que l’ID de composant de l’application de haut niveau est affiché dans la fonctionnalité AllowedApplicationConnections.

  3. 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. Accédez au répertoire de build de votre projet.

  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 l’application RTApp IntercoreComms :

    Invite de commandes 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. À partir du répertoire de build de votre projet, à l’invite de commandes, 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.

    Lors de la résolution des problèmes, en particulier après avoir apporté des modifications à vos commandes CMake, supprimez l’intégralité de votre build et réessayez.

  6. Supprimez toutes les applications déjà déployées sur l’appareil :

    az sphere device sideload delete
    
  7. À partir du répertoire de build de votre projet, à l’invite de commandes, chargez le package d’image créé par Ninja :

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

    L’application commence à s’exécuter peu après son chargement.

  8. Obtenez l’ID de composant pour l’image :

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

    La commande retourne toutes les métadonnées du package d’image. L’ID de composant de l’application apparaît dans la section Identité pour le type d’image d’application. Par exemple :

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

Générer et déployer l’application de haut niveau

  1. Accédez au dossier contenant votre application de haut niveau.

  2. Ouvrez le fichier app_manifest.json et vérifiez que l’ID de composant rtApp est affiché dans la fonctionnalité AllowedApplicationConnections.

  3. 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. Accédez au répertoire de build de votre projet.

  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 l’application de haut niveau IntercoreComms.

    Invite de commandes 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. À partir du répertoire de build de votre projet, à l’invite de commandes, 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.

    Lors de la résolution des problèmes, en particulier après avoir apporté des modifications à vos commandes CMake, supprimez l’intégralité de votre build et réessayez.

  6. À partir du répertoire de build de votre projet, à l’invite de commandes, chargez le package d’image créé par Ninja :

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

    L’application commence à s’exécuter peu après son chargement.

  7. Obtenez l’ID de composant pour l’image :

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

    La commande retourne toutes les métadonnées du package d’image. L’ID de composant de l’application apparaît dans la section Identité pour le type d’image d’application. Par exemple :

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