¿Cómo puedo obtener una lista en lenguaje ensamblador de mi Arduino Bocetos en Windows?

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

  •  06-09-2019
  •  | 
  •  

Pregunta

Me gustaría ser capaz de ver una lista en lenguaje ensamblador de mis bocetos Arduino. ¿Cómo puedo lograr esto?

Actualización:. Estoy corriendo el software de Arduino en una máquina Windows

¿Fue útil?

Solución

Una forma de hacer esto es utilizar avr-objdump en el archivo .elf creado por la construcción. Por ejemplo, en OS X que puedo hacer esto:

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

(Tu ruta en Windows puede ser diferente, por supuesto.) Esto produce un desmontaje del código, parte de la cual se verá algo como esto:

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>

Otros consejos

Si está utilizando Linux, puede seguir este tutorial sobre cómo compilar el Arduino sin el IDE .

Una vez hecho esto, se puede obtener una lista de montaje mediante la ejecución de gcc con la bandera -s.

Los -S (no s) indicador muestra el código C como well.Also saber inclusión en la lista mixta:

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>
...
scroll top