ESP32 : décoder les erreurs d'exécution avec l'IDE 2.x

Je viens de trouver ça, je le poste ici, en supposant que personne ne l'a déjà mentionné...

Autrefois, avec l'IDE version 1.x, on pouvait ajouter un plug-in de décodage des messages d'erreurs en cas de plantage d'un ESP32. Ce plug-in est ici :

Mais il ne fonctionne pas sur la version 2 de l'IDE. Une nouvelle version est proposée ici :

Elle est assez facile à installer :

  • Télécharger la dernière version ici
  • Arrêter l'IDE Arduino si elle est lancée
  • Créer un répertoire plugins dans votre répertoire C:\Users\<username>\.arduinoIDE
  • Copier dans ce nouveau répertoire le fichier ***.vsix téléchargé

Pour l'utiliser:

  • Compiler et lancer le code qui plante
  • Lorsque l'erreur se produit, un message apparaît dans la console
  • Tapez CTRL + Shift + P : une pop-up apparait, tapez les premières lettres de ESP Exception Decoder jusqu'à ce qu'il apparaisse dans la pop-up
  • Appuyez sur la touche Enter
  • Un nouvel onglet appelé Exception Decoder apparait à côté de la console
  • Copiez / collez le message d'erreur dans cet onglet, appuyez sur Enter
    Vous obtenez des explications plus lisibles...

Le message à copier commence souvent par Guru Meditation Error et se termine par une ligne similaire à ceci :
Backtrace: 0x4037da37:0x3fce9e50 0x4037c82d:0x3fce9e80 0x4037dd84:0x3fce9eb0 0x4037dd7a:0xb33fffff

Si vous avez des problèmes pour l'installer ou l'utiliser, il existe aussi une version en ligne

Pour l'utiliser, il faut copier ce message d'erreur et aussi télécharger le fichier .elf issu de la compilation. Pour trouver ce fichier, il faut lire les messages se trouvant dans l'onglet output de l'IDE.
Juste après le message indiquant la mémoire utilisée par les variables globales et le sketch, une ligne un peu complexe apparait, du genre :

"C:\Users\xxx\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.6/esptool.exe" --chip esp32s3 --port "COM36" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x0 "C:\Users\xxx\AppData\Local\Temp\arduino\sketches\A847F7B9F6A24DDD8CDC1ECC26A5AFDA/xxx.ino.bootloader.bin" 0x8000 "C:\Users\xxx\AppData\Local\Temp\arduino\sketches\A847F7B9F6A24DDD8CDC1ECC26A5AFDA/xxx.ino.partitions.bin" 0xe000 "C:\Users\xxx\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2/tools/partitions/boot_app0.bin" 0x10000 "C:\Users\xxx\AppData\Local\Temp\arduino\sketches\A847F7B9F6A24DDD8CDC1ECC26A5AFDA/xxx.ino.bin"

L'important est la fin de cette ligne : elle indique un répertoire (ici : C:\Users\xxx\AppData\Local\Temp\arduino\sketches\A847F7B9F6A24DDD8CDC1ECC26A5AFDA/) : le fichier en question se trouve dans ce répertoire. Il porte le même nom que votre sketch suivi de .ino.elf

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.