Question sur tuto ? Bootloader !

Bonjour,

Je me demande comment lire et copier sur l'Arduino nano, le bootloader si c'est quelque "chose" de possible ?

je pense que oui sans sertidude, mais peut-être pas avec l'IDE arduino ?

Comme je suis perdu je pose la question dans le bar etourdit par les binaires et octets peut-être que quelqu'un sera me dire ?

Philippe

Ce n’est pas une question pour le bar, c’est bien une question générale ➜ je déplace


Pour la question, on peut flasher le bootloader sur une Arduino Nano, il faut utiliser un programmateur ISP, et ça peut être une autre carte Arduino en mode “Arduino as ISP”. La Nano doit être connectée via les broches SPI (MISO, MOSI, SCK, RESET, GND, VCC). Le câblage correct est indispensable.

Une autre méthode consiste à utiliser un programmateur externe dédié comme l’USBasp ou l’USBtinyISP. Il se connecte directement aux broches ISP de la Nano.

Ensuite, dans l’IDE Arduino, vous sélectionnez le programmateur correspondant (ex: “USBasp”) et choisissez le bon type de carte et cliquez sur “Graver la séquence d’initialisation”.

PS: je viens de regarder le lien donné avec votre poste, il décrit la manip.

Pourquoi avoir posté une question si vous avez la réponse ?

Re-bonjour,

Je me suis mal exprimé, je veux lire le comptenue de l'Arduino, copier le bootloader et le programme sur mon ordinateur, la le tuto dit comment flasher le bootloader !

La communication dans le tuto se fait de l'ordinateur vers l'Arduino, moi ma requette est de lire le contenu de l'Arduino vers l'ordinateur de copier le contenut de l'Arduino.

Philippe

vous voulez donc extraire le contenu de la mémoire du Nano.

➜ Pour extraire ce contenu (Flash et EEPROM) on connecte la carte via USB comme pour la programmer (identifiez le port série utilisé) et dans un terminal ensuite on utilise avrdude pour lire la mémoire.

Si /dev/ttyUSB0 est le port exact de votre Arduino Nano,

pour la mémoire Flash, c'est un truc du genre
avrdude -c arduino -p m328p -P /dev/ttyUSB0 -b 115200 -U flash:r:flash.hex:i
➜ crée le fichier flash.hex

et pour la mémoire EEPROM
avrdude -c arduino -p m328p -P /dev/ttyUSB0 -b 115200 -U eeprom:r:eeprom.hex:i
➜ crée le fichier eeprom.hex

(vérifiez avec le doc de avrdude - je dis ça en regardant un historique de commandes que j'ai dans mon terminal mais je ne suis plus sûr à 100% que c'était fonctionnel).

Le bootloader doit être présent pour que la communication USB fonctionne correctement.

Cela n’extrait pas le bootloader (ce n'est généralement pas nécessaire - c'est souvent le "old bootloader" que vous trouverez dans les clones de Nano asiatiques et on trouve cela sur internet). car la commande avrdude avec l’option -U flash:r:... ne lit que la section application de la mémoire Flash, c’est-à-dire la zone où le sketch est stocké.

Le bootloader se trouve dans une section protégée de la Flash, généralement en haut de l’espace mémoire, et avrdude ne la lit pas.

Si je me souviens bien, pour lire aussi le bootloader, il faut utiliser un programmateur ISP comme l’USBasp, car la lecture via le port série ne permet pas d’accéder à cette zone et vous pourrez alors récupérer l’intégralité des 32 Ko dont les derniers 512 (eg Optiboot) ou 2048 (eg "old bootloader" utilisé sur les anciens Arduino Nano ou leurs clones — basé sur ATmegaBOOT) octets contiennent le bootloader.

Il suffit de lire la flash au lieu de l'écrire mais je ne vois vraiment pas quel intérêt cela peut présenter. De mémoire c'est une opération que l'on effectuait pour vérifier que le bootloader était effectivement similaire à celui d'un produit fonctionnel et c'était plutôt à titre indicatif; cela ressemblait plus à une opération du désespoir qu'à l'obtention d'une certitude opérationnelle

Bonjour,

Tout est possible au moyen de l'interface ICSP; à savoir:

  • Lecture de la signature du chip
  • Effacement complet (flash et/ou eeprom et/ou fusibles)
  • Lecture/écriture des fusibles
  • Lecture/écriture de la flash (pour peu que le fusible l'autorise) et de l'eeprom
  • ...

Maintenant, cela passe une lecture appronfondie de la datasheet et son application de l'ATmega328P qui équipe l'Arduino nano

Lire et appliquer le § 27.8 Serial Downloading - Page 254/294

NB1: C'est comme cela que je recycle des Arduino Chinois avec ou sans bootloader et que je les reprogramme à mon goût et gagner notamment la place d'un bootloader inutile en exploitation au profit d'un micro-OS

NB2: Lire à l'occasion l'article très documenté Comment programmer un ATmega328P ou y graver un bootloader, avec un Arduino Uno ou un FTDI ?

A suivre...

Bonjour,

Pas forcément, il faut avoir été confronté à des problèmes similaires à ceux exposés dans le fil de discussion Modifier le Bootloader d'un Arduino Nano pour se donner les moyens et apporter une solution, certes réservée peut-être à des développeurs, mais tellement instructif lorsque cela fonctionne :wink:

A suivre...

Je sais à quoi sert le bootloader et qu'il peut être utile de le modifier mais la question est de lire et copier le bootloader d'où Il suffit de lire la flash(c'est même une possibilité directe dans AVRStudio) par contre à ma connaissance la recopie dans le micro n'est pas possible, mais je n'ai jamais essayé (edit)
ailleurs qu'au travail où c'était impossible