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
pluginsdans votre répertoireC:\Users\<username>\.arduinoIDE - Copier dans ce nouveau répertoire le fichier
***.vsixté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 Decoderjusqu'à ce qu'il apparaisse dans la pop-up - Appuyez sur la touche
Enter - Un nouvel onglet appelé
Exception Decoderapparait à 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