Déboguer une application compatible en temps réel
Les applications en temps réel sont déboguées à l’aide d’OpenOCD, qui est installé avec le Kit de développement logiciel (SDK) Azure Sphere, et de la version de GDB installée dans le cadre de la chaîne d’outils INCORPORÉe ARM GNU.
Déboguer une application en temps réel 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 (RT Core) où Application Azure Sphere est le nom de votre application en temps réel actuelle ou appuyez sur F5.
Si vous êtes invité à générer le projet, sélectionnez Oui. Visual Studio compile l’application en temps réel, 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’images dans la sortie Afficher>> lasortie de: Sortie de build Lorsque vous êtes prêt à créer un déploiement, vous devez connaître le chemin d’accès au package d’images.
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 .
Visual Studio configure des connexions entre le serveur GDB et OpenOCD afin que vous puissiez utiliser l’interface de débogage Visual Studio standard (F5, F6, F9 pour les points d’arrêt, etc.) sur une application en temps réel, de la même façon que sur une application de haut niveau.
Lorsque vous vous arrêtez à un point d’arrêt dans votre code source C, vous pouvez ouvrir une fenêtre Désassemblement qui affiche l’adresse actuelle, le mnémonique de l’assembleur pour la commande actuelle et des informations telles que les registres impliqués ou la commande de code source en cours d’exécution.
Pour ouvrir la fenêtre Désassemblement :
- Vérifiez que le fichier source de code C contenant le point d’arrêt est ouvert dans Visual Studio.
- Sélectionnez Déboguer> ledésassemblementwindows> ou appuyez sur Alt+8.
Déboguer rtApp avec Visual Studio Code
Visual Studio Code est débogué en appuyant sur F5 ou en exécutant la commande de débogage à partir de la vue de débogage dans la barre de gauche. Dans les exemples, le fichier .vscode/launch.json existe déjà, donc le débogage démarre immédiatement. Dans une nouvelle application, le débogage vous demande d’abord s’il s’agit d’une application HLApp ou RTApp, puis crée un fichier .vscode/launch.json à partir de votre réponse. Le débogage est alors activé.
Lors de l’arrêt à un point d’arrêt dans votre code source C, vous pouvez ouvrir une vue Désassemblement qui affiche l’adresse actuelle, les données hexadécimale brutes, l’assembleur mnémonique de la commande actuelle et des informations telles que les registres impliqués ou la commande de code source en cours d’exécution.
Pour ouvrir la vue Désassemblement :
- Vérifiez que le fichier source de code C contenant le point d’arrêt est ouvert dans un éditeur Visual Studio Code.
- Cliquez avec le bouton droit dans la fenêtre de l’éditeur et sélectionnez Ouvrir le mode Désassemble ou sélectionnez Afficher> lapalette> de commandesOuvrir la vue Désassemble.
Déboguer l’application RTApp à l’aide de l’interface CLI
Démarrez l’application pour le débogage :
az sphere device app start --component-id <component id>
Cette commande retourne le noyau sur lequel l’application s’exécute.
Accédez au dossier Openocd pour le sysroot avec lequel l’application a été générée. Dans ce guide de démarrage rapide, sysroot est 5+Beta2004. Les sysroots sont installés dans le dossier d’installation du Kit de développement logiciel (SDK) Azure Sphere. Par exemple, sur Windows, le dossier est installé par défaut sur
C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\5+Beta2004\tools\openocd
et sur Linux, à l’adresse/opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocd
.Exécutez
openocd
comme le montre l’exemple suivant. L’exemple suppose que l’application s’exécute sur le noyau 0. Si l’application s’exécute sur core 1, remplacez « targets io0 » par « targets io1 ».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 dossier qui contient le fichier .out de l’application et démarrez
arm-none-eabi-gdb
, qui fait partie de la chaîne d’outils INCORPORÉe ARM GNU :Invite de commandes Windows
"C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
Windows PowerShell
& "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
Le serveur OpenOCD fournit une interface de serveur GDB sur :4444. Définissez la cible pour le débogage.
target remote :4444
Exécutez les commandes gdb de votre choix.
Développer avec des applications partenaires
Lorsque vous chargez une application sur l’appareil Azure Sphere, les outils de déploiement Azure Sphere suppriment par défaut toutes les applications existantes. Pour éviter que cela ne se produise lorsque vous développez des applications qui communiquent entre elles, vous devez marquer les applications comme des partenaires. Lorsque vous déployez l’une des applications, ses partenaires ne sont pas supprimés. Pour plus d’informations, consultez Marquer des applications en tant que partenaires .
Dépannage
Si vous rencontrez des problèmes, consultez Résolution des problèmes liés aux applications en temps réel.