Partager via


Tutoriel : Créer une application de haut niveau

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

Une application de haut niveau s’exécute sur le système d’exploitation Azure Sphere, utilise les bibliothèques d’applications Azure Sphere et peut communiquer avec Internet et avec des services cloud. Consultez la vue d’ensemble des applications Azure Sphere pour obtenir des informations de base sur les applications de haut niveau.

Dans ce tutoriel, vous allez apprendre à :

  • Préparer votre appareil pour le développement et le débogage
  • Générer, exécuter et déboguer une application de haut niveau

Prérequis

Préparer votre appareil pour 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 chargement indépendant (sideloading). 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 ordinateur et ne permettent pas le débogage d’applications. La préparation de l’appareil au chargement indépendant supprime cette restriction.

La commande azsphere device enable-development configure l’appareil pour accepter les applications pour le 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 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.

  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 :

    azsphere device enable-development
    

    Vous devez obtenir une sortie similaire à la suivante :

    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 azsphere device enable-development échoue, consultez Résoudre les problèmes liés à Azure Sphere pour obtenir de l’aide.

Générer et exécuter l’application de haut niveau avec Visual Studio Code

Ce tutoriel utilise le modèle de liaison Blink Azure Sphere, qui fait partie de l’extension Azure Sphere pour Visual Studio Code. Le modèle Blink clignote une LED pour vous permettre de vérifier que l’appareil et les outils Azure Sphere sont installés et configurés correctement.

  1. Démarrez Visual Studio Code. Sélectionnez La palette de commandes Afficher>, puis tapez Azure Sphere : Générer un nouveau projet.

    Barre de commandes dans Visual Studio Code

  2. Sélectionnez Blink dans le menu Modèles.

    menu contextuel avec des noms de modèles

  3. Visual Studio Code affiche ensuite une fenêtre Explorateur de fichiers. Accédez au dossier dans lequel vous souhaitez placer l’application Blink. Visual Studio Code crée le dossier Blink dans votre emplacement sélectionné et génère les fichiers de build de l’application Blink. Vous devez voir en principe des messages de CMake.

  4. Ouvrez le fichier CMakeLists.txt et modifiez le paramètre TARGET_DIRECTORY pour spécifier le dossier qui contient les définitions du matériel que vous utilisez. Par défaut, le TARGET_DIRECTORY spécifie HardwareDefinitions/mt3620_rbd, qui correspond au Kit de développement Mt3620 Seeed :

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Plusieurs définitions matérielles sont fournies avec le modèle. Par exemple, si vous utilisez un Mini Dev Board SEEED MT3620, spécifiez HardwareDefinitions/seeed_mt3620_mdb à la place.

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

  6. Attendez plusieurs secondes pour que Visual Studio Code génère l’application, créez un package d’images, déployez-le sur la carte et démarrez-le 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 l’application doit être générée. Si c’est le cas, le focus passe au volet de sortie, qui affiche la sortie de CMake/Build.

    Ensuite, le volet de sortie affiche la sortie d’Azure Sphere 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.

    Conseil

    Notez l’emplacement de votre package d’images, car vous en aurez besoin lors de la création d’un déploiement. Vous devez voir un message tel que « Fichiers de build écrits dans <>le chemin d’accès » dans la fenêtre Sortie, où <le chemin d’accès est le chemin> complet du dossier de build de votre application Blink, se terminant généralement par « out\ARM-Debug » ou « out/ARM-Debug ».

  7. Après un court instant, vous voyez normalement une LED clignoter.

  8. Définissez un point d’arrêt quelque part dans main.c et parcourez l’application pas à pas pour pouvoir explorer les fonctionnalités de débogage de Visual Studio Code pour Azure Sphere.

Générer et exécuter l’application de haut niveau avec Visual Studio

Ce tutoriel utilise le modèle de liaison Blink Azure Sphere, qui fait partie de l’extension Azure Sphere pour Visual Studio. Le modèle Blink clignote une LED pour vous permettre de vérifier que l’appareil et les outils Azure Sphere sont installés et configurés correctement.

  1. Si vous débutez avec Visual Studio, consultez le guide de démarrage rapide ou la visite guidée pour en savoir plus sur son utilisation.

  2. Ouvrez Visual Studio et sélectionnez Créer un projet. Dans la zone de recherche, tapez « azure sphere » pour obtenir la liste des modèles Azure Sphere. Choisissez Azure Sphere Blink dans la liste.

  3. Entrez un nom et un emplacement pour le projet, puis sélectionnez Créer.

  4. Ouvrez le fichier CMakeLists.txt et modifiez le paramètre TARGET_DIRECTORY pour spécifier le dossier qui contient les définitions du matériel que vous utilisez. Par défaut, le TARGET_DIRECTORY spécifie HardwareDefinitions/mt3620_rbd, qui correspond au Kit de développement Mt3620 Seeed :

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Plusieurs définitions matérielles sont fournies avec le modèle. Par exemple, si vous utilisez un Mini Dev Board SEEED MT3620, spécifiez HardwareDefinitions/seeed_mt3620_mdb à la place.

  5. Dans Visual Studio, sélectionnez Afficher>la sortie pour afficher le volet Sortie.

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

    Bouton Débogueur GDB distant

  7. 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 indépendamment sur la carte, puis le démarre en mode débogage. Le chargement indépendant (sideloading) signifie que l’application est remise directement à partir du PC via une connexion câblée plutôt qu’avec le cloud.

    Conseil

    Notez l’emplacement de votre package d’images, car vous en aurez besoin lors de la création d’un déploiement. Vous devez voir un message tel que « Fichier de sortie est à : <chemin » dans la sortie d’affichage>de sortie>afficher la sortie à partir de : Générer, où <le chemin d’accès est le chemin> complet du dossier de build de votre application Blink, se terminant généralement par « out/ARM-Debug ».>

  8. Par défaut, le volet 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.

  9. Quand vous exécutez le programme, vous devez voir une LED clignoter.

Téléchargement de l'exemple d'application

Vous pouvez télécharger l’application HelloWorld comme suit :

  1. Pointez votre navigateur vers Microsoft Samples Browser.
  2. Tapez « Azure Sphere » dans la zone de recherche.
  3. Sélectionnez Azure Sphere - Hello World dans les résultats de la recherche.
  4. Sélectionnez Télécharger ZIP.
  5. Ouvrez le fichier téléchargé et extrayez dans un répertoire local.

Générer l’exemple

Pour créer les fichiers de build et .imagepackage pour l’exemple d’application HelloWorld_HighLevelApp, effectuez les étapes suivantes.

  1. Mettez à jour l’exemple pour cibler votre matériel, si nécessaire. Par défaut, les exemples ciblent le matériel qui suit la conception de carte de référence MT3620 (RDB), comme le Kit de développement MT3620 de Seeed Studios. Des définitions matérielles cibles supplémentaires pour les exemples d’applications sont disponibles dans le répertoire HardwareDefinitions du référentiel d’exemples Azure Sphere. Par exemple, les fichiers de définition matérielle du kit de démarrage Avnet MT3620 se trouvent dans le sous-répertoire HardwareDefinitions/avnet_mt3620_sk.

    • Ouvrez CMakeLists.txt et mettez à jour le paramètre TARGET_DIRECTORY dans la fonction azure_target_hardware_definition pour pointer vers le sous-répertoire de votre matériel. Par exemple :

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  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. Accédez au répertoire de build de votre projet.

  3. À 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 Hello World :

    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"
    
  4. 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 serait 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 la build et réessayez.

Exécution de l'exemple

  1. Si votre appareil exécute déjà une application, supprimez-la :

    azsphere device sideload delete
    
  2. Accédez au répertoire qui contient les fichiers de build et .imagepackage créés précédemment.

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

    azsphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Cette commande charge le package d’images et démarre l’application. Vous devez voir une LED clignoter.

    Conseil

    Notez le chemin d’accès du package d’images. Vous utiliserez le package d’image plus tard dans le guide de démarrage rapide sur le déploiement.

Déboguer l’exemple

  1. Accédez au répertoire qui contient les fichiers de build et .imagepackage créés précédemment.

  2. Obtenez l’ID de composant si vous ne l’avez pas déjà :

    azsphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    

  1. Si l’application est en cours d’exécution, arrêtez-la, puis redémarrez-la avec l’option --debug-mode :

    azsphere device app stop --component-id <ComponentId>
    
    azsphere device app start --debug-mode --component-id <ComponentId>
    

Ce qui suit doit s’afficher :

 <ComponentId>
 App state   : debugging
 GDB port    : 2345
 Output port : 2342
 Core        : High-level
  1. Utilisez un client de terminal pour établir une connexion Telnet ou TCP brute pour lire le flux de sortie à partir du processus. Spécifiez l’adresse IP 192.168.35.2 et le port 2342.

  2. Ouvrez une interface de ligne de commande à l’aide de PowerShell ou d’une invite de commandes standard sur Windows ou l’interpréteur de commandes sur Linux, puis transmettez le fichier binaire de l’application .out à partir de votre build en tant que paramètre. Ceci permet de déboguer le code source complet.

    Invite de commandes Windows

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Remarque

    Le SDK Azure Sphere est fourni avec plusieurs sysroots afin que les applications puissent cibler différents ensembles d’API, comme décrit dans la version du runtime d’application, sysroots et les API bêta. Les sysroots sont installés dans le dossier d’installation du SDK Azure Sphere sous Sysroots.

  3. Définissez la cible de débogage à distance sur l’adresse IP 192.168.35.2 sur le port 2345 :

    target remote 192.168.35.2:2345

  4. Exécutez les autres commandes gdb que vous choisissez. Par exemple, les commandes suivantes définissent un point d’arrêt lors de l’entrée sur main(), puis continuent l’exécution après le point d’arrêt, respectivement.

    break main
    
    c
    

    Pour plus d’informations sur le débogage avec gdb, consultez GDB : Le débogueur de projet GNU ou l’une des autres sources sur le sujet.

Étapes suivantes

Vous avez créé une application de haut niveau pour s’exécuter sur votre appareil Azure Sphere. Vous souhaiterez peut-être le modifier maintenant. Les définitions matérielles expliquent comment modifier un fichier JSON de définition de matériel et recréer le fichier d’en-tête associé.

Découvrez ensuite comment déployer votre application de haut niveau à partir du cloud.

Voir aussi

Visitez la galerie Azure Sphere, une collection de scripts, d’utilitaires et de fonctions Azure Sphere inspirants, non maintenus et réutilisables.