Ich habe eine Arduino-Platine mit einem ATmega2560 erworben , der bereits mit dem Arduino-Bootloader und einem Programm programmiert wurde. Ich habe die Skizze , aber bevor ich damit experimentiere, möchte ich die aktuelle Binärdatei sichern, die sich im Controller befindet. Wie die meisten Arduinos ist es über einen an TX0 und RX0 angeschlossenen USB-Seriell-Wandler mit dem PC verbunden und es gibt keine ISP- Schnittstelle.
Anscheinend gibt es Code zum Lesen im Arduino-Bootloader , aber ich habe keine Ahnung, welches Tool ich verwenden soll, um darauf zuzugreifen, da in der Arduino-IDE kein Menüelement vorhanden ist.
Welche Software brauche ich, um das Programm vom Arduino zu lesen?
Antworten:
Der Arduino-Bootloader ist eine Variante des ursprünglichen STK500-Protokolls (1.x) . Das Zeichen 't' (ASCII 0x74) ist der Befehl "Seite lesen". Vielleicht ist es also möglich, das Programm mit AVRDUDE über den Bootloader über die serielle Schnittstelle abzurufen ... Aber ich gehe bestenfalls davon aus, dass das Abrufen einige Zeit in Anspruch nehmen wird.
quelle
Ich habe einen Speicher von Duemillenova mit ATMega328P mit dem folgenden Befehl ausgegeben:
quelle
-v
s notwendig?./avrdude -C ../etc/avrdude.conf -v -v -v -v -p ATmega32u4 -c arduino -b 19200 -U flash:r:"/tmp/dump.bin":r -P /dev/ttyUSB0
; schreibe./avrdude -C ../etc/avrdude.conf -v -v -v -v -p ATmega32u4 -c arduino -b 19200 -U flash:w:"/tmp/dump.bin":r -P /dev/ttyUSB0
:; überprüfe:./avrdude -C ../etc/avrdude.conf -v -v -v -v -p ATmega32u4 -c arduino -b 19200 -U flash:v:"/tmp/dump.bin":r -P /dev/ttyUSB0
Beantwortet der Backup AVR mit AVRude Thread Ihre Frage? Grundsätzlich können Sie den gesamten Speicher eines AVR auslesen, solange die Schutzsicherung nicht gesetzt ist.
Dies ist das Setup, das ich für ATtiny's und ATmega´s verwende.
Auf dem Brett gezeigt:
Entnehmen Sie dem Datenblatt des Controllers den genauen Pin, der verwendet werden soll. Es gibt im Internet eine ganze Reihe von Websites, die sich mit der Programmierung von AVRs mit einem Arduino befassen, z. B .: http://hlt.media.mit.edu/?p=1229
quelle
Soweit ich den Quellcode des Arduino-Bootloaders sehe , gibt es keine Möglichkeit, den gesamten Speicher von ihm zu sichern. Der Bootloader unterstützt einen 'Monitor'-Modus, mit dem Sie jeweils ein Speicherbyte sichern können. Gemäß den Kommentaren im Quellcode "/ * Monitorfunktionen werden jedoch aufgrund von Einschränkungen der Bootblockgröße nur bei Verwendung von ATmega128 kompiliert * /".
Ich denke, Sie haben Pech, wenn Sie ISP nicht verwenden, den Bootloader ändern oder eine Skizze hochladen möchten, um dies zu tun.
quelle
else if(ch=='t') {
.Ich dachte, dass es eine Menüoption dafür gibt, aber ich finde sie gerade nicht. Wenn Sie einen ISP-Programmierer haben, können Sie mit AVR Studio das Speicherabbild vom Chip lesen und in einer HEX-Datei speichern, damit Sie es auf die gleiche Weise wiederherstellen können.
Bearbeiten
Als Antwort auf Ihren Kommentar - das ist ganz einfach! Sie müssen zwei Diagramme mit wertvollen Informationen aufnehmen, um dies zu erreichen. Das erste ist das Arduino / ATMega2560 Pin Mapping.
Das zweite ist das ISP Header / AVR Pin Mapping:
Bewaffnet mit diesen beiden Bildern, sollten Sie in der Lage sein, zu sehen, wie man es verkabelt.
Wenn diese vorhanden sind, sollten Sie AVR Studio zum Lesen der Hex-Datei vom Chip verwenden können - lassen Sie mich wissen, wenn Sie weitere Anleitungen benötigen.
quelle