Résoudre les problèmes d’applications en temps réel
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).
Voici quelques étapes de résolution de problèmes qui peuvent se poser pendant le développement d’applications en temps réel.
Problèmes de débogage
Un débogage peut échouer pour les raisons suivantes :
Windows Update remplace le pilote USB pour les cœurs en temps réel par un pilote générique. Pour restaurer la fonctionnalité de débogage pour les cœurs en temps réel, ouvrez une interface de ligne de commande à l’aide de PowerShell ou de l’invite de commandes Windows avec des privilèges d’administrateur et réactivez le débogage en temps réel. Le pilote USB requis est installé lors de l’exécution :
azsphere device enable-development --enable-rt-core-debugging
Le fichier de paramètres de débogage contient des erreurs. Dans ce cas, le démarrage du débogueur peut échouer. Si vous avez modifié les paramètres du débogueur, assurez-vous que la syntaxe du fichier est correcte.
Le débogueur à puce a peut-être déjà été démarré dans un autre contexte. Si vous voyez une erreur telle que « Serveur du débogueur : Erreur : impossible de lier gdb au socket sur le port 4444 : Adresse déjà utilisée » ou « Erreur : libusb_open() a échoué avec LIBUSB_ERROR_ACCESS », vérifiez si vous avez déjà un processus openocd ou gdb en cours d’exécution.
Si vous exécutez sur Linux, la commande
sudo lsof -n -i :4444 | grep LISTEN
doit afficher tous les processus contenant le port 4444 ouvert. Le remplacement par4444
tout autre port mentionné dans le message d’erreur doit fournir les mêmes informations pour ce port.Vous manquez peut-être le package libncurses5 sur votre système Ubuntu 20.04. Si vous voyez une erreur telle que « erreur lors du chargement des bibliothèques partagées : libncurses.so.5 : impossible d’ouvrir le fichier objet partagé : Aucun fichier ou répertoire de ce type » ne doit être installé, vous devez installer le package comme suit :
sudo add-apt-repository universe sudo apt-get install libncurses5
Si vous essayez de déboguer une application de haut niveau et deux applications RTApps à la fois à l’aide de plusieurs instances de Visual Studio, la deuxième instance de Visual Studio ne pourra pas se connecter au débogueur. Pour contourner ce problème, déboguez toutes les applications à partir d’une seule instance de Visual Studio, comme décrit dans Les applications partenaires de débogage.
Problèmes CMake
Lors de l’utilisation de CMake avec une application en temps réel, vous pouvez rencontrer les problèmes suivants :
- La première fois que vous ouvrez un projet CMake dans Visual Studio, la génération de CMakeLists s’exécute automatiquement et définit l’ID de composant pour l’application. Si vous supprimez ensuite l’ID de composant, par exemple, parce que l’application se trouve dans un dépôt GitHub et que vous avez effectué une réinitialisation matérielle, la génération échoue. Pour résoudre ce problème, régénérez le cache CMake dans Visual Studio.
- L’élément de démarrage CMakeLists.txt opère fréquemment la régénération. La tâche CMakeLists s’exécute chaque fois que Visual Studio régénère le cache CMake. Par conséquent, elle peut s’exécuter souvent.
- Visual Studio se bloque lorsque vous générez une application en temps réel avec CMake. Pour éviter ce problème, utilisez la mise à jour 1 de Visual Studio 2019 ou une mise à jour ultérieure.
En règle générale, si des erreurs se produisent lorsque vous travaillez avec CMake, essayez de régénérer le cache CMake. Cela résout souvent des problèmes.