Astuce PlatformIO : Script pour désassembler l'exécutable ELF d'un projet Arduino UNO (source+asm)

Sdílet
Vložit
  • čas přidán 13. 09. 2024

Komentáře • 22

  • @didierr6181
    @didierr6181 Před 3 lety +1

    Merci professeur, j'espère que tout va bien pour vous, comme on ne vous a pas vu depuis quelques semaines (certainement dû à la période d'examen de vos élèves),
    j'ai eu quelques difficultés à le faire fonctionner, (le nom de mon dossier contenait des espaces et je crois que c'est ça qui ne lui plaisait pas), encore merci.

    • @EricPeronnin
      @EricPeronnin  Před 3 lety +1

      Bonjour. Merci pour votre commentaire. Les espaces posent souvent des problèmes. Pour ce qui est de ma présence, je suis effectivement un peu trop chargé en ce moment pour produire des vidéos. J'essaierai d'en faire prochainement

  • @technopassetv7703
    @technopassetv7703 Před 2 lety +1

    Bravo

  • @hervemarie966
    @hervemarie966 Před 3 lety +2

    "Petite astuce" !! :-) Grandiose, oui, probablement très utile dans certains cas de debug par exemple, permettra de voir/comprendre le réel code généré ... Génial ! Merci du partage !

  • @antoinedevos3765
    @antoinedevos3765 Před 3 lety +3

    Waouh ! C'est juste génial.
    Super intéressant et bien expliqué, comme d'habitude.
    Merci pour ce partage de qualité.

  • @gilleshenri9529
    @gilleshenri9529 Před 3 lety +3

    j'ai bien aimé le mot "facilement"
    super instructif

    • @EricPeronnin
      @EricPeronnin  Před 3 lety +4

      C'est comme tout. Une fois que le travail de recherche a été fait, ça devient plutôt facile. J'ai mis un petit moment pour trouver comment faire à cause de l'option -g que je n'arrivais pas à faire passer via le compilateur. Et puis je ne savais pas non plus comment ajouter des commandes à PIO. D'ailleurs, je n'ai pas pris le temps de parler de la possibilité de lancer la commande de désassemblage en passant par le menu PIO.

    • @gilleshenri9529
      @gilleshenri9529 Před 3 lety +2

      @@EricPeronnin on vois que derrière il y a du travail, car expliquer cela en 8mm ..... CHAPEAU

  • @jfmahe1407
    @jfmahe1407 Před 3 lety +1

    Sacré boulot ! Bravo car ça n'a pas dû être simple !. Merci.

  • @RupekSMAC
    @RupekSMAC Před 3 lety +1

    Waouu ! ca m'ouvre des perspectives.... .Merci

  • @cyrillethierry9515
    @cyrillethierry9515 Před 3 lety

    Bravo ! Parce que cela c'est très utile et cela n'a pas dû être simple à trouver.

  • @patrickfle4485
    @patrickfle4485 Před 3 lety +1

    Bien utile pour voir si le code généré peut ou nécessite d'être optimisé (et même parfois debuggé). La configuration n'était pas évidente !...

  • @jrioublanc
    @jrioublanc Před 3 lety

    Efficace et simple, merci.
    J’imagine bien l’intérêt de cette option quand on souhaite optimiser du code, mais là on met les mains dans l’assembleur.
    Cette vidéo m’amènes à une question ; pourriez-vous en faire une sur le paramétrage de platformio.ini ? J’ai quelques fois mis bêtement des options sans avoir leur explication.

  • @mikl5228
    @mikl5228 Před 3 lety

    excellent comme toujours ! moi j'aimerai aussi un tuto sut git / github pour vscode si possible merci

    • @mikl5228
      @mikl5228 Před 3 lety +1

      par contre je suis en train de le faire sur vscode 1.56.2 et python 3.9.5 64 bits mais jai des soulignés jaune en dessous de Import et chaque env du script....du cou j'ai une erreur : comment faire pour debloquer ca? merci
      Compiling .pio\build
      odemcu-32s\FrameworkArduino\stdlib_noniso.c.o
      Compiling .pio\build
      odemcu-32s\FrameworkArduino\wiring_pulse.c.o
      Compiling .pio\build
      odemcu-32s\FrameworkArduino\wiring_shift.c.o
      Archiving .pio\build
      odemcu-32s\libFrameworkArduino.a
      Linking .pio\build
      odemcu-32s\firmware.elf
      asmAvecSourceCB([".pio\build
      odemcu-32s\firmware.elf"], [".pio\build
      odemcu-32s\src\main.cpp.o"])
      Dump firmware.elf ...
      C:/Users/%username%/.platformio/packages/toolchain-atmelavr/avr/bin/objdump -D -S E:\Programmation\Arduino\esp32_multicoeur_leds\.pio\build
      odemcu-32s/firmware.elf > E:\Programmation\Arduino\esp32_multicoeur_leds\.pio\build
      odemcu-32s/firmware.asm
      C:/Users/micha/.platformio/packages/toolchain-atmelavr/avr/bin/objdump: can't disassemble for architecture UNKNOWN!
      *** Error 1
      Retrieving maximum program size .pio\build
      odemcu-32s\firmware.elf
      Checking size .pio\build
      odemcu-32s\firmware.elf
      Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
      RAM: [ ] 4.1% (used 13488 bytes from 327680 bytes)
      Flash: [== ] 15.9% (used 208582 bytes from 1310720 bytes)
      Building .pio\build
      odemcu-32s\firmware.bin
      esptool.py v3.0
      =========================================== [SUCCESS] Took 7.10 seconds ===========================================
      Terminal will be reused by tasks, press any key to close it.

    • @EricPeronnin
      @EricPeronnin  Před 3 lety

      Bonsoir. C'est normal puisque ce que je propose ne fonctionne qu'avec des AVR alors que vous utilisez un ESP32. Je n'ai pas cherché comment faire la même chose avec cette famille de CPU.

    • @mikl5228
      @mikl5228 Před 3 lety

      @@EricPeronnin d'accord merci je vais essayer avec une carte UNO alors

  • @michelcantau998
    @michelcantau998 Před 3 lety +1

    Bonjour à tous. J'ai eu des difficultés pour faire fonctionner ce super script. En effet ma zone de travail par défaut est dans "D:\Mes Documents". Je suppose que le problème est dû à l'espace dans le nom de dossier. Pour remédier à ça il suffit lors de la création du projet de ne pas choisir la zone de travail par défaut mais un dossier autre sans espace...

    • @EricPeronnin
      @EricPeronnin  Před 3 lety

      Bonsoir. Effectivement, l'espace peut poser problèmes.

  • @dahu74fr37
    @dahu74fr37 Před 3 lety

    J'ai des problèmes lors du build :
    J'ai 4 erreurs dans le script Python :
    "Import" is not defined Pylance(reportUndefinedVariable) [1, 1]
    "env" is not defined Pylance(reportUndefinedVariable) [3, 1]
    "env" is not defined Pylance(reportUndefinedVariable) [6, 1]
    "env" is not defined Pylance(reportUndefinedVariable) [21, 1]
    Savez vous pourquoi ?
    D'avance merci !