Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
ressource:electronique:arduino:utiliser_fichier_hex [2020/02/09 23:56] emoc [Sources] |
ressource:electronique:arduino:utiliser_fichier_hex [2020/02/10 00:07] emoc [Comment téléverser un fichier .hex ?] |
||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
* pour programmer rapidement plusieurs arduino identiques avec le même programme, | * pour programmer rapidement plusieurs arduino identiques avec le même programme, | ||
* le programme n'a été diffusé que sous forme de .hex pour une quelconque raison... | * le programme n'a été diffusé que sous forme de .hex pour une quelconque raison... | ||
- | * c'est la seule forme du programme qu'on peut récupérer depuis un arduino | ||
===== Comment téléverser un fichier .hex ? ===== | ===== Comment téléverser un fichier .hex ? ===== | ||
Ligne 21: | Ligne 20: | ||
Exemple : | Exemple : | ||
- | /home/emoc/arduino-1.8.5/hardware/tools/avr/bin/avrdude -C/home/emoc/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:/tmp/arduino_build_550567/LodeRunner.ino.hex:i | + | /home/emoc/arduino-1.8.5/hardware/tools/avr/bin/avrdude -C/home/emoc/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/arduino_build_700970/Test.ino.hex:i |
| | ||
- | Dans ce cas précis, il s'agit d'un code compilé pour arduboy (ATmega32U4) | + | Dans ce cas précis, il s'agit d'un code compilé pour arduino nano (ATmega328P) |
| | ||
On peut découper cette ligne pour l'expliquer : | On peut découper cette ligne pour l'expliquer : | ||
Ligne 29: | Ligne 28: | ||
| -C |/home/emoc/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf| chemin vers le fichier de configuration | | | -C |/home/emoc/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf| chemin vers le fichier de configuration | | ||
| -v | | exécution de la commande "bavarde" (//verbose//) | | | -v | | exécution de la commande "bavarde" (//verbose//) | | ||
- | | -p | atmega32u4 | modèle du microcontrôleur à programmer| | + | | -p | atmega328p | modèle du microcontrôleur à programmer| |
- | | -c | avr109 | programmeur associé, ici : Atmel AppNote AVR109 Boot Loader | | + | | -c | arduino | programmeur associé, ici : Atmel AppNote AVR109 Boot Loader | |
- | | -P | /dev/ttyACM0 | port USB série| | + | | -P | /dev/ttyUSB0 | port USB série| |
| -b | 57600 | vitesse de transfert (//baudrate//) | | | -b | 57600 | vitesse de transfert (//baudrate//) | | ||
| -D | | désactiver l'effacement automatique de la mémoire flash | | | -D | | désactiver l'effacement automatique de la mémoire flash | | ||
- | | -U | flash:w:/tmp/arduino_build_550567/LodeRunner.ino.hex:i| voir ci-dessous| | + | | -U | flash:w:/tmp/arduino_build_700970/Test.ino.hex:i| voir ci-dessous| |
Pour la dernière option (-U) la commande signifie : utiliser la mémoire flash (flash), pour écrire (w), un fichier .hex, encodé en hexadécimal intel (i) | Pour la dernière option (-U) la commande signifie : utiliser la mémoire flash (flash), pour écrire (w), un fichier .hex, encodé en hexadécimal intel (i) | ||
- | Avec cette commande il est donc possible de flasher n'importe quel fichier hex compilé pour le même microcontrôleur, sans passer par l'IDE arduino | + | Avec cette commande il est donc possible de flasher n'importe quel fichier hex compilé pour le même microcontrôleur, sans passer par l'IDE arduino. Il suffit de respecter les mêmes options et de faire pointer vers le fichier hex approprié. |
- | + | ||
+ | Exemple : | ||
+ | /home/emoc/arduino-1.8.5/hardware/tools/avr/bin/avrdude -C/home/emoc/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/emoc/test/backup.hex:i | ||
===== Créer un fichier .hex ===== | ===== Créer un fichier .hex ===== | ||
- | Dans le cas ou l'on peut accéder au code source, il est possible de créer le fichier .hex pour le conserver depuis le menu "Croquis/exporter les binaires compilées", le fichier .hex sera alors enregistré dans le dossier du sketch | + | Dans le cas ou l'on peut accéder au code source, il est possible de créer le fichier .hex pour le conserver depuis le menu "Croquis/exporter les binaires compilées", le fichier .hex sera alors enregistré dans le dossier du sketch sous deux formes : avec ou sans bootloader. Il faudra choisir la bonne version selon les situations : en général, s'il s'agit d'une carte arduino la versio sans bootloader est adaptée. |
===== Récupérer un fichier hex ===== | ===== Récupérer un fichier hex ===== | ||
Ligne 60: | Ligne 62: | ||
* https://arduino.stackexchange.com/q/48431 | * https://arduino.stackexchange.com/q/48431 | ||
* https://forum.arduino.cc/index.php?topic=403201.msg2786267#msg2786267 | * https://forum.arduino.cc/index.php?topic=403201.msg2786267#msg2786267 | ||
- | * récupération de hex et ATmega32U4 : https://arduino.stackexchange.com/a/21534 | + | * récupération de hex et problème d'ATmega32U4 : https://arduino.stackexchange.com/a/21534 |