Comment puis-je obtenir une liste de langage assembleur de mon Sketches Arduino sous Windows?

StackOverflow https://stackoverflow.com/questions/919781

  •  06-09-2019
  •  | 
  •  

Question

Je voudrais être en mesure de voir une liste de langage assembleur de mes croquis Arduino. Comment puis-je y parvenir?

Mise à jour:. Je suis en cours d'exécution du logiciel Arduino sur une machine Windows

Était-ce utile?

La solution

Une façon de faire est d'utiliser avr-objdump sur le fichier .elf créé par la construction. Par exemple, sur OS X que je peux faire ceci:

$ cd ~/arduino-0015/examples/Digital/Blink/applet
$ avr-objdump -d Blink.elf

(Votre chemin sur Windows peut être différent, évidemment.) Cela produit un démontage du code, dont une partie ressemble à quelque chose comme ceci:

0000013a <main>:
 13a:   0e 94 3e 01     call    0x27c <init>
 13e:   0e 94 97 00     call    0x12e <setup>
 142:   0e 94 80 00     call    0x100 <loop>
 146:   fd cf           rjmp    .-6             ; 0x142 <main+0x8>

Autres conseils

Si vous utilisez Linux, vous pouvez suivre ce tutoriel sur la façon de compiler pour l'Arduino sans IDE.

Une fois que vous faites cela, vous pouvez obtenir une liste de montage par gcc en cours d'exécution avec le drapeau -s.

Les suivants (aki) étapes fourniront des listes de langage assembleur de croquis Arduino et les bibliothèques associées sous Windows:

  1. Télécharger (et renommer) les Arduino fichiers batch de ligne de commande Windows dans le répertoire contenant votre croquis (le fichier .pde)
  2. Configurer les variables d'environnement requises comme indiqué dans la page lien ci-dessus
  3. Ajouter -S à la variable abuild_gcc_opts dans abuild.bat (ligne 158)
  4. Exécuter abuild -r -c <pde_filename>
  5. Attendez-vous à obtenir les avertissements et les erreurs suivantes, que vous pouvez ignorer:

    ... warning: #warning "This file has been moved to <util/delay.h>."

    .\obj\<pde_filename>.cpp.o: file format not recognized: treating as linker script

    .\obj\<pde_filename>.cpp.o:1: syntax error

Les listes de langage assembleur peuvent être trouvés dans les fichiers .o dans le répertoire obj créé. Par exemple, la liste pour le croquis lui-même est en obj\<pde_filename>.cpp.o

Les -S (non s) drapeau montrer le code c comme well.Also savoir que la liste mixte:

Linux: (.arduino / Preferences.txt: delete_target_folder = false)

$ cd /tmp/buildxxxx.tmp
$ avr-objdump -dS Blink.cpp.elf

int main(void)
{
    init();
 2f4:   8a df           rcall   .-236       ; 0x20a <init>
...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top