J'ai acquis un PCB Arduino avec un ATmega2560 , déjà programmé avec le chargeur de démarrage Arduino et un programme. J'ai le croquis , mais avant de le manipuler, je voudrais sauvegarder le binaire actuel qui se trouve dans le contrôleur. Comme la plupart des Arduinos, il est connecté au PC à l'aide d'un convertisseur USB-série connecté à TX0 et RX0 et il n'y a pas d' interface ISP .
Apparemment, il y a du code pour lire dans le chargeur de démarrage Arduino , mais je n'ai aucune idée de l'outil à utiliser pour y accéder car il n'y a pas d'élément de menu dans l'IDE Arduino.
De quel logiciel ai-je besoin pour lire le programme depuis l'Arduino?
Réponses:
Le chargeur de démarrage Arduino est une variante du protocole d'origine STK500 (1.x) . Le caractère 't' (ASCII 0x74) est la commande "Lire la page". Alors peut-être qu'il est possible de retirer le programme via le port série via le chargeur de démarrage en utilisant AVRDUDE ... Mais au mieux, je pense qu'il faudra un certain temps pour le retirer.
la source
J'ai vidé une mémoire de Duemillenova avec ATMega328P avec la commande suivante:
la source
-v
s sont-ils nécessaires?./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
; écrire./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
:; vérifier:./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
L' AVR de sauvegarde avec fil d' avrdude répond-il à votre question? Fondamentalement, vous pouvez lire toute la mémoire d'un AVR tant que le fusible de protection n'est pas réglé.
C'est la configuration que j'utilise pour ATtiny et ATmega.
Sur le tableau montré:
Reportez-vous à la fiche technique du contrôleur de la broche exacte à utiliser. Il existe de nombreux sites Web sur Internet écrivant sur la programmation des AVR à l'aide d'un Arduino, par exemple: http://hlt.media.mit.edu/?p=1229
la source
Pour autant que je puisse voir le code source du chargeur de démarrage Arduino , il n'y a aucun moyen de «vider» toute la mémoire de celui-ci. Le chargeur de démarrage prend en charge un mode «moniteur» qui vous permet de vider un octet de mémoire à la fois. Cependant, selon les commentaires du code source, "/ * les fonctions de surveillance ne seront compilées que lors de l'utilisation d'ATmega128, en raison des contraintes de taille du bloc de démarrage * /"
En tant que tel, je suppose que vous n'avez pas de chance si vous ne souhaitez pas utiliser ISP, changer le chargeur de démarrage ou télécharger un croquis pour le faire.
la source
else if(ch=='t') {
.Je pensais qu'il y avait une option de menu pour cela, mais je ne la trouve pas pour le moment. Si vous avez un programmeur ISP, vous pouvez utiliser AVR Studio pour lire l'image mémoire sur la puce et l'enregistrer dans un fichier HEX, ce qui vous permettrait de la restaurer par le même moyen.
Éditer
En réponse à votre commentaire - c'est facile! Vous devez assimiler deux diagrammes d'une valeur d'information pour le retirer. Le premier est le Pin Mapping Arduino / ATMega2560.
Le second est le mappage des broches de l'en-tête du FAI / AVR:
Armé de ces deux images, vous devriez pouvoir voir comment le câbler.
Une fois ceux-ci en place, vous devriez pouvoir utiliser AVR Studio pour lire le fichier Hex sur la puce - faites-moi savoir si vous avez besoin de plus d'informations.
la source