Créer et déployer des applications partenaires
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
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.
Prérequis
- Connecter votre appareil Azure Sphere à votre ordinateur
- Installer Azure Sphere
- Installez la chaîne d’outils GNU Arm Embedded si vous utilisez Visual Studio Code ou l’interface CLI.
- Configurez le matériel pour afficher la sortie de l’UART dédié, si vous ne l’avez pas déjà fait
Activer le développement et le débogage
Pour pouvoir générer 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 ne permettent pas aux applications en cours de développement d’être chargées à partir d’un PC, et ils ne permettent pas le débogage d’applications. La préparation des appareils pour le débogage supprime cette restriction, charge les logiciels nécessaires au débogage et déverrouille les fonctionnalités des appareils, comme décrit dans Fonctionnalités et communication des appareils.
Pour déboguer sur les cœurs en temps réel, utilisez la commande azsphere device enable-development. Cette commande configure l’appareil pour qu’il accepte les applications d’un PC pour le débogage et affecte l’appareil au groupe d’appareils de développement, ce qui n’autorise pas les mises à jour des applications cloud. Pendant le développement et le débogage d’applications, vous devez laisser l’appareil dans ce groupe afin que les mises à jour d’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.
Connectez-vous à Azure Sphere si vous ne l’avez pas déjà fait :
azsphere login
Ouvrez une interface de ligne de commande à l’aide de PowerShell ou d’une invite de commandes Windows avec des privilèges d’administrateur. Le
--enable-rt-core-debugging
paramètre nécessite des privilèges d’administrateur, car il installe des pilotes USB pour le débogueur.Entrez la commande suivante :
azsphere device enable-development --enable-rt-core-debugging
Le privilège d'administrateur n'étant plus nécessaire, fermez la fenêtre une fois la commande terminée. Une bonne pratique consiste à toujours utiliser le privilège le plus bas permettant d’effectuer une tâche.
Si la commande azsphere device enable-development échoue, consultez Résoudre les problèmes liés à Azure Sphere pour obtenir de l’aide.
Activer le développement et le débogage
Pour pouvoir générer 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 ne permettent pas aux applications en cours de développement d’être chargées à partir d’un PC, et ils ne permettent pas le débogage d’applications. La préparation des appareils pour le débogage supprime cette restriction, charge les logiciels nécessaires au débogage et déverrouille les fonctionnalités des appareils, comme décrit dans Fonctionnalités et communication des appareils.
Pour déboguer sur les cœurs en temps réel, utilisez la commande azsphere device enable-development. Cette commande configure l’appareil pour qu’il accepte les applications d’un PC pour le débogage et affecte l’appareil au groupe d’appareils de développement, ce qui n’autorise pas les mises à jour des applications cloud. Pendant le développement et le débogage d’applications, vous devez laisser l’appareil dans ce groupe afin que les mises à jour d’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.
Connectez-vous à Azure Sphere si vous ne l’avez pas déjà fait :
azsphere login
Ouvrez une interface de ligne de commande à l’aide de PowerShell, d’une invite de commandes Windows ou d’un interpréteur de commandes Linux avec des privilèges d’administrateur. Le
--enable-rt-core-debugging
paramètre nécessite des privilèges d’administrateur, car il installe des pilotes USB pour le débogueur.Entrez la commande suivante :
azsphere device enable-development --enable-rt-core-debugging
Le privilège d'administrateur n'étant plus nécessaire, fermez la fenêtre une fois la commande terminée. Une bonne pratique consiste à toujours utiliser le privilège le plus bas permettant d’effectuer une tâche.
Si la commande azsphere 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 'azsphere device show-deployment-status'.
Créer des applications partenaires avec Visual Studio
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) où Azure Sphere App est le nom de votre projet de niveau supérieur ou appuyez sur F5.
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 livrées directement à partir du PC via une connexion câblée, plutôt que transmises via le cloud.
Notez les chemins d’accès dans la sortie Afficher la sortie d’affichage>>à partir de : Sortie de build, qui indique l’emplacement des packages d’images 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.
Par défaut, la fenêtre Sortie affiche la sortie de l’appareil. Pour voir les messages à partir du débogueur, sélectionnez Déboguer dans le menu déroulant Afficher la sortie à partir de :. Vous pouvez également inspecter le désassemblage du programme, les registres ou la mémoire par le biais du menu Déboguer>Fenêtres.
Créer des applications partenaires avec Visual Studio Code
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 l’application en temps réel et l’application de haut niveau en même temps.
Cliquez avec le bouton droit sur l’un des deux fichiers CMakeLists.txt, puis sélectionnez Générer tous les projets.
Cliquez sur l’icône Exécuter dans la barre d’activité Visual Studio Code.
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 Azure Sphere Apps (gdb)(workspace).
Appuyez sur F5 pour générer et déboguer le projet. Si le projet n’a pas été créé précédemment ou si les fichiers ont changé et regénéré sont requis, Visual Studio Code génère le projet avant le démarrage du débogage.
Attendez plusieurs secondes pour que Visual Studio Code génère les applications, créez les packages d’images, déployez-les sur la carte et démarrez-les en mode débogage. Vous verrez les mises à jour d’état dans le volet Sortie le long du chemin.
Tout d’abord, CMake détermine si les applications doivent être générées. Si c’est le cas, le focus passe à la fenêtre de sortie, qui affiche la sortie de CMake/Build.
Ensuite, le volet de sortie affiche la sortie d’azsphere lors du déploiement du package d’images sur l’appareil. Enfin, la console de débogage reçoit le focus et montre la sortie de 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 corrects, collectivement appelés sysroot, sur votre ordinateur. Le SDK Azure Sphere est livré avec plusieurs sysroots qui permettent aux applications de cibler différents ensembles d’API, comme décrit dans Version du runtime de l’application, sysroots et API bêta. Les sysroots sont installés dans le dossier d’installation du 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 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
Accédez au dossier contenant votre application en temps réel.
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.
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.
À 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 de build serait
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 montrent 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"
À 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’images.
ninja -C out/ARM-Debug
Ninja place les fichiers .imagepackage et d’application résultants 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>
le répertoire binaire qui contient le cache CMake. Par exemple, si vous exécutez CMake sur un exemple Azure Sphere, la commande de build seraitcmake --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 la build et réessayez.
Supprimez toutes les applications déjà déployées sur l’appareil :
azsphere device sideload delete
À partir du répertoire de build de votre projet, à l’invite de commandes, chargez le package d’images créé par Ninja :
azsphere device sideload deploy --image-package <path-to-imagepackage>
L’application commence à s’exécuter peu après son chargement.
Obtenez l’ID de composant pour l’image :
azsphere image-package show --image-package <path-to-imagepackage>
La commande retourne toutes les métadonnées pour le package d’image. L’ID de composant pour l’application apparaît dans la section Identité du type d’image d’application. Par exemple :
Image package metadata: Section: Identity Image Type: Application Component ID: <component id> Image ID: <image id>
Créer et déployer l’application de haut niveau
Accédez au dossier contenant votre application de haut niveau.
Ouvrez le fichier app_manifest.json et vérifiez que l’ID de composant rtApp est affiché dans la fonctionnalité AllowedApplicationConnections.
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.
À 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 de build serait
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 montrent les commandes CMake pour l’application de haut niveau IntercoreComms.
À 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’images.
ninja -C out/ARM-Debug
Ninja place les fichiers .imagepackage et d’application résultants 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>
le répertoire binaire qui contient le cache CMake. Par exemple, si vous exécutez CMake sur un exemple Azure Sphere, la commande de build seraitcmake --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 la build et réessayez.
À partir du répertoire de build de votre projet, à l’invite de commandes, chargez le package d’images créé par Ninja :
azsphere device sideload deploy --image-package <package-name>
L’application commence à s’exécuter peu après son chargement.
Obtenez l’ID de composant pour l’image :
azsphere image-package show --image-package <path-to-imagepackage>
La commande retourne toutes les métadonnées pour le package d’image. L’ID de composant pour l’application apparaît dans la section Identité du type d’image d’application. Par exemple :
Image package metadata: Section: Identity Image Type: Application Component ID: 25025d2c-66da-4448-bae1-ac26fcdd3627 Image ID: 49d3cb5b-0300-4e1f-904d-b730c7933c3f