Arduino Nano
Accedemos a la carpeta donde están los ejecutables del AVR...
cd ~/datos/arduino/arduino-1.8.18/hardware/tools/avr/bin
La siguiente instrucción graba el contenido de la flash del Arduino en un fichero .bin
./avrdude -p atmega328p -C "/home/usuario/datos/arduino/arduino-1.8.18/hardware/tools/avr/etc/avrdude.conf" -P /dev/ttyUSB1 -c arduino -U flash:r:flash.bin:r
Se puede grabar el contenido en formato .HEX con la siguiente orden...
./avrdude -p atmega328p -C "/home/usuario/datos/arduino/arduino-1.8.18/hardware/tools/avr/etc/avrdude.conf" -P /dev/ttyUSB1 -c arduino -U flash:r:flash.hex:i
Si queremos desensamblar el .HEX para convertirlo en código Assembler podemos usar...
./avr-objdump -Dx -m avr5 flash.hex
Arduino Pro Micro
Accedemos a la carpeta donde están los ejecutables del AVR...
cd ~/datos/arduino/arduino-1.8.18/hardware/tools/avr/bin
Antes de poder ejecutar las siguientes instrucciones hay que hacer un hard reset al Arduino Pro Micro cruzando los pin RST y GND. Después de hacer el reset hay 8 segundos antes de que el programa grabado en el Arduino Pro Micro se vuelva a poner en ejecución. Es decir, que antes de que pasen 8 segundos habría que ejecutar las órdenes siguientes que leen la memoria flash del Arduino.
Ejecutamos órdenes similares a las del Nano pero cambiando el modelo de microprocesador y el puerto de conexión:
Si queremos grabar el contenido en un fichero .BIN podemos lanzar...
./avrdude -p m32u4 -C "/home/usuario/datos/arduino/arduino-1.8.18/hardware/tools/avr/etc/avrdude.conf" -P /dev/ttyACM0 -c arduino -b 1200
Si queremos descargar el contenido en un fichero .HEX para luego desensamblarlo ejecutamos...
./avrdude -p m32u4 -C "/home/usuario/datos/arduino/arduino-1.8.18/hardware/tools/avr/etc/avrdude.conf" -P /dev/ttyACM0 -c avr109 -U flash:r:flash.hex:i
Finalmente, para desensamblar el .HEX a un .ASM ejecutamos...
./avr-objdump -Dx -m avr5 flash.hex
La siguiente instrucción graba el contenido de la flash del Arduino en un fichero .bin
./avrdude -p atmega328p -C "/home/usuario/datos/arduino/arduino-1.8.18/hardware/tools/avr/etc/avrdude.conf" -P /dev/ttyUSB1 -c arduino -U flash:r:flash.bin:r
Se puede grabar el contenido en formato .HEX con la siguiente orden...
./avrdude -p atmega328p -C "/home/usuario/datos/arduino/arduino-1.8.18/hardware/tools/avr/etc/avrdude.conf" -P /dev/ttyUSB1 -c arduino -U flash:r:flash.hex:i
Si queremos desensamblar el .HEX para convertirlo en código Assembler podemos usar...
./avr-objdump -Dx -m avr5 flash.hex