Comment utiliser un débogueur sur un ESP32

15,171

14

Introduction : Comment utiliser un débogueur sur un ESP32

À propos de : Salut tout le monde ! Je m'appelle Brian et merci d'avoir vérifié mes Instructables. Je suis développeur de logiciels de formation, mais je me suis récemment lancé dans le développement Arduino après avoir découvert la puce esp8266, une activation WiFi…

Avez-vous déjà voulu jeter un œil à l'intérieur de votre code pour voir pourquoi il se comporte ainsi ? Traditionnellement dans les projets ESP32, vous auriez dû ajouter une instruction print sans fin pour essayer de comprendre ce qui se passait, mais il y a unmeilleure façon!

Un débogueur est un moyen de voir ce qui se passe dans des sections particulières de votre code et d'essayer différentes valeurs de variables sans recompiler votre code, ce n'est généralement pas quelque chose dont nous disposons sur les projets intégrés, mais dans ce guide je vaisvous montrer comment l'utiliser sur un ESP32.

Dans ce guide, je vais vous montrer comment configurer le matériel, configurer le logiciel et montrer un exemple simple d'utilisation du débogueur.

Fournitures

* = Lien d'affiliation

Étape 1 : Regardez la vidéo !

J'ai une vidéo sur ce sujet si vous voulez la regarder.


Sur ma chaîne, je fais généralement des vidéos basées sur ESP8266 et ESP32, donc si vous êtes intéressé par celles-ci, veuillez les consulter !

Étape 2 : Matériel - Pièces et câblage

Pour utiliser le débogueur, vous n'avez besoin que d'un ESP-Prog et de presque toutes les cartes ESP32 liens vers ceux-ci dans une étape précédente

ESP-Prog :

L'ESP-Prog est une carte conçue par espressif, les fabricants des puces ESP32 et ESP8266. Elle se connecte aux broches JTAG de l'ESP32 pour nous permettre d'utiliser le débogueur.Il peut également être utilisé pour programmer des cartes ESP32, mais je ne parlerai pas de cela ici.


Carte ESP32 :

Vous pouvez utiliser pratiquement n'importe quelle carte ESP32 pour cela une fois qu'elle sort les broches JTAG, qui sont 12, 13, 14 et 15. J'ai testé à la fois une carte Adafruit Feather Huzzah32 et une carte D1 Mini 32 et elles ont toutes les deux bien fonctionné.

Veuillez noter que vous pouvez utiliser les broches JTAG dans votre croquis avec le débogueur, par exemple la LED intégrée de la carte Huzzah32 est sur la broche 13, vous ne pouvez donc pas l'utiliser pendant le débogage.

Câblage :

Pour connecter l'ESP-Prog à l'ESP32, utilisez simplement le guide de câblage comme indiqué dans l'image ci-dessus. Vérifiez avec le schéma de câblagede votre carte ESP32 si vous ne voyez pas immédiatement les broches appropriées car elles utilisent parfois un schéma de nommage différent.

Boucliers de débogage :

Ceux-ci sont facultatifs, mais je vends des boucliers sur Tindie pour le Huzzah32 et le D1 Mini 32 qui rendent la connexion de l'ESP-Prog vraiment simple, il sépare les broches appropriées à un connecteur IDC que vous pouvez utiliser un câble plat pour connecter directement entre le blindage et l'ESP-Prog

Étape 3 : Matériel - Configuration du pilote

Afin d'utiliser ESP-prog pour le débogage, nous devons installer les pilotes appropriés.PlatformIO fournit quelques étapes pour cela ici, mais je vais suivre les étapes Windows de ce guide.

  1. Téléchargez et installez les pilotes FTDI pour ESP-Prog à partir de ici, faites défiler vers la droite pour télécharger la version "setup exécutable" pour le rendre plus facile.
  2. Téléchargez et installez l'outil Zadig depuis ici, cela nous permet d'installer un pilote générique nécessaire au débogage.
  3. Avec l'ESP-Prog branché, ouvrez Zadig
  4. Dans l'application Zadig, sous "Options", cliquez sur "Liste tous les appareils"
  5. La liste déroulante dans Zadig sera maintenant remplie, sélectionnez l'option "Dual RS232-HS Interface 0". Assurez-vous que c'est l'interface 0 que vous sélectionnez!
  6. À droite de la flèche verte, "WinUSB" doit être sélectionné, puis cliquez sur "Remplacer le pilote"

Lorsque cela est terminé, vos pilotes doivent être configurés pour être utilisés !

Remarque : si vous modifiez le port USB que vous utilisez pour l'ESP-Prog, vous devrez peut-être répéter les étapes 3 à 6. Si vous obtenez une erreur comme indiqué dans l'image ci-dessus lors du débogage, vous devez répéter les étapes.

Étape 4 : Logiciel : Installation de PlatformIO

PlatformIO est un IDE pour développer avec différents frameworks intégrés, y compris l'écosystème Arduino. Il est plus compliqué à utiliser que quelque chose comme l'IDE Arduino, mais il est très puissant et possède certaines fonctionnalités qui manquent cruellement à l'IDE Arduino,comme la saisie semi-automatique.


Il est nécessaire que PlatformIO utilise le débogueur. Si vous êtes déjà familiarisé avec PlatformIO, n'hésitez pas à sauter quelques étapes.

  • Téléchargez et installez Visual Studio Code VS Code à partir du lien fourni sur le site Web PlatformIO.org
  • Ouvrez VS Code et ouvrez le menu des extensions, le bouton est mis en surbrillance dans l'image ci-dessus
  • Tapez "platformio" dans la recherche, sélectionnez-le et cliquez sur installer.

Étape 5 : Logiciel : Utilisation de PlatformIO

L'utilisation de PlatformIO est un peu différente de l'utilisation de l'IDE Arudino, donc dans cette étape, nous allons simplement couvrir les bases de l'exécution d'un exemple sur une carte.

Ouverture d'un exemple :

  1. Cliquez sur le bouton Accueil de la barre d'outils PlatformIO comme indiqué sur l'image
  2. Cliquez sur le bouton « Exemples de projets »
  3. Sélectionnez l'exemple "Arduino-blink" dans la section Espressif 32

Cela ouvrira un exemple de projet clignotant. La disposition d'un PlatformIO est assez différente de celle d'un projet Arduino, alors passons en revue les bases.

Où est le code ?

Le code de votre projet sera stocké dans le dossier "src", pour l'exemple clignotant, vous verrez un fichier "blink.cpp", ce fichier est le même que votre fichier de croquis .ino dans un projet Arduino.

Comment configurer ma carte ?

Les configurations de votre projet sont conservées dans un fichier "platformio.ini" de votre projet. C'est en fait l'une de mes choses préférées à propos de PlatformIO par rapport à l'IDE Arduino, cela n'a jamais eu de sens pour moi que les paramètres de la carte ne soient pas liés aux croquis.

L'exemple .ini contient des définitions pour plusieurs tableaux différents, mais pour simplifier les choses, supprimons les deux définitions du bas.

Où dois-je régler mon port COM ?

PlatformIO essaiera en fait automatiquement de trouver le bon port COM à utiliser, vous pouvez donc vous en tirer sans rien définir pour cela. Mais si vous avez plusieurs ports COM, ce que vous ferez lors de l'utilisation du débogueur, je pense que cela a du senspour définir celui dont vous avez besoin.

Vous pouvez voir les différents appareils que vous possédez en cliquant sur la section "Périphériques" dans l'onglet d'accueil, et vous pouvez définir celui de votre ESP32 dans le "platformio.ini" en ajoutant une configuration "upload_port".

Comment télécharger mon code ?

Cliquez sur le bouton Télécharger l'icône est une flèche pointant vers la droite et il devrait compiler et télécharger le code. Vous devriez maintenant avoir une LED clignotante sur votre carte.

Étape 6 : Débogage : Peau de banane potentielle !

C'est quelque chose qui m'a surpris lorsque je préparais ceci et qui, espérons-le, sera corrigé au moment où vous l'essayerez, mais j'ai pensé qu'il était important de partir d'ici.

Au moment de la rédaction de ce guide, la dernière version de PlatformIO est la 4.3.0 et contient un bogue lié au débogage. Heureusement, nous pouvons mettre à jour assez facilement la dernière version de développement, ce qui résout le problème.

Vérifiez sur la page d'accueil la version du noyau PlatformIO, si c'est "4.3.0", effectuez les étapes suivantes.

  1. Sur la barre d'outils PlatformIO, cliquez sur l'icône du terminal
  2. Dans le type de terminal : mise à niveau pio --dev
  3. RedémarrerLe code VS et PlatfromIO doivent être mis à jour

Étape 7 : Débogage : Configuration

Nous devons éditer le fichier "PlatofrmIO.ini" pour activer le débogage, nous n'avons qu'à y ajouter deux choses.

debug_tool = esp-prog

Cela définit l'outil de débogage que nous utilisons.

debug_init_break = configuration de tbreak

C'est un truc que nous avons appris de Vidéo d'Andress Spiess sur le débogage sur l'ESP32. Il dit au débogueur de s'arrêter dans la configuration de notre application.

Étape 8 : Débogage : Démarrage du débogage

Avant d'entrer dans le vif du sujet, nous apporterons une modification mineure au croquis qui facilitera la démonstration de ce que vous pouvez faire avec le débogage.

  1. Créez une nouvelle variable, "int delayTime = 1000;" en dehors de toute méthode, cela en fera une variable globale.
  2. Remplacez le nombre à l'intérieur des appels de retard dans la boucle par cette nouvelle variable : délaidélai;

Téléchargez à nouveau le code sur la carte, puis pour lancer le débogage, dans la barre d'outils, cliquez sur "Exécuter" puis "Démarrer le débogage"

Vous verrez les choses bouger dans la fenêtre du terminal, mais même lorsque cela indique que c'est réussi, si vous cliquez sur la "Console de débogage", vous verrez qu'elle fonctionne toujours, cela prendra quelques secondes pour terminer.

Si tout s'est passé comme prévu, vous verrez le débogueur s'arrêter au début de la configuration.

Étape 9 : Débogage : Utilisation de base

Voyons quelques-unes des bases de ce que vous pouvez faire avec le débogueur

Créer des points d'arrêt :

Un point d'arrêt est un point de votre code où vous souhaitez que le débogueur s'arrête. Pour créer un point d'arrêt, cliquez à gauche du numéro de ligne. Comme démonstration, ajoutez un point d'arrêt à la première ligne de la méthode de boucle.

Navigation aux points d'arrêt :

Pour vous déplacer entre les points d'arrêt ou passer à la ligne de code suivante, vous pouvez utiliser les outils qui apparaîtront en haut de l'écran. Appuyez sur le bouton "continuer" ressemble à un bouton de lecture pour déplacer le point d'arrêt que nous venons de créerà l'intérieur de la boucle.

Montres variables :

Les veilles de variables vous permettent de surveiller la valeur des variables lorsque le débogueur est arrêté à un point d'arrêt. Pour ajouter une nouvelle veille de variables, vous pouvez cliquer sur l'icône +, puis taper simplement le nom de la variable. Comme démo, tapezla variable que nous avons ajoutée à l'étape précédente "delayTime"

Visionneuse de variables :

Vous pouvez également voir toutes les variables et leurs valeurs qui sont disponibles à votre point d'arrêt actuel. Pour faire une démonstration, si vous regardez dans la section "Global", vous devriez trouver la variable "delayTime".

Modification de la valeur des variables :

Vous pouvez également modifier les valeurs des variables et cela aura un effet immédiat sur le comportement de vos codes. Pour le démontrer, cliquez sur la variable delayTime dans la section Variable Viewer et modifiez la valeur en "100". Pour montrer que cela fonctionne,Désactivez le point d'arrêt à l'intérieur de la boucle en cliquant à nouveau à gauche du numéro de ligne. Appuyez sur le bouton Continuer sur la barre de navigation du point d'arrêt. La LED de votre ESP32 devrait maintenant clignoter beaucoup plus rapidement qu'avant.

Étape 10 : Dépannage

J'ai découvert lors de mes tests, que parfois je ne pouvais pas télécharger sur l'ESP32 alors qu'il était connecté à l'ESP-prog, et je ne pouvais pas comprendre pourquoi cela s'est produit, car la plupart du temps je pouvaistélécharger sans aucun problème. J'ai trouvé que je pouvais simplement déconnecter l'ESP32 et l'ESP-Prog, télécharger le code sur l'ESP32, puis les reconnecter et cela fonctionnerait bien.

Étape 11 : Conclusion

Je pense que c'est un outil vraiment cool à ajouter à la boîte à outils pour aider à comprendre ce qui se passe dans votre projet.

Je serais ravi de savoir si vous trouvez cela utile ! Veuillez me le faire savoir dans les commentaires ci-dessous, ou rejoignez-moi et un tas d'autres créateurs sur mon serveur Discord, où nous pouvons discuter de ce sujet ou de tout autre sujet lié aux créateurs que vous avez, les gens sont vraiment utiles là-bas, donc c'est un endroit idéal pour sortir.

Je tiens également à remercier chaleureusement mon Sponsors Github qui aident à soutenir ce que je fais, je l'apprécie vraiment. Si vous ne le savez pas, Github fait correspondre les parrainages pour la première année, donc si vous faites un parrainage, ils le feront à 100% pour les prochains mois. Mercià lire!

Soyez le premier à partager

    Recommandations

    • Défi Cachez-le

    • Concours de matériaux récupérés

    • Défi de conception d'étudiants imprimés en 3D

    Commentaires