On m'a demandé de "graver le chargeur de démarrage" sur mon Arduino pour corriger une erreur que j'obtenais. Comment puis-je faire ceci? (Et quel est exactement le chargeur de démarrage?)
bootloader
Le gars avec le chapeau
la source
la source
Réponses:
Le chargeur de démarrage est un petit programme qui est (presque) toujours sur un Arduino. Il gère le téléchargement et le démarrage des croquis que vous faites, et clignote la LED de la broche 13 à chaque réinitialisation de la carte.
Pour graver le chargeur de démarrage:
Tools ► Board ►
dans l'IDE. Revérifiez cela même si vous pouviez télécharger des programmes correctement; le téléchargement ne nécessite pas toujours la bonne carte.Tools ► Programmer ►
.Tools ► Burn Bootloader
et attendez. Cela ne devrait pas prendre plus d'une minute et ne prend souvent que quelques secondes.Sources:
la source
{line 1} or other dedicated ISP programmer.
Qu'est-ce qu'un chargeur de démarrage?
Le chargeur de démarrage est un petit morceau de code résidant dans la partie "haute" de la mémoire du programme. Normalement, il n'est pas effacé lorsque vous téléchargez de nouveaux croquis. Son but est qu'il soit activé immédiatement après une réinitialisation (les fusibles sont configurés pour commencer le code à l'adresse du chargeur de démarrage plutôt qu'à l'adresse 0x0000). Le chargeur de démarrage attendra un court instant (comme une seconde) pour voir si des données de "programmation" arrivent sur le port série.
Si tel est le cas, il lit ces données et les décode pour reprogrammer le reste de la mémoire flash. En collaboration avec le programme de téléchargement (normalement avrdude), le nouveau croquis est envoyé via le port série. Le chargeur de démarrage efface les pages de mémoire flash et les remplace par le nouveau code. Une fois terminé, il exécute le nouveau code.
Si aucune instruction n'arrive, le chargeur de démarrage passe à l'adresse 0x0000 pour exécuter l'esquisse existante sur la carte.
Comment remplacer le chargeur de démarrage
Une autre méthode pour programmer un chargeur de démarrage consiste à utiliser un croquis que j'ai écrit il y a quelque temps et qui s'exécute sur:
La carte "programmation" exécute l'esquisse qui contient des chargeurs de démarrage pour un certain nombre de cartes codées en dur. Vous connectez la carte de programmation à la carte cible (la carte voulant le chargeur de démarrage) avec 6 fils de raccordement comme indiqué.
Cette photo particulière illustre un Uno en programmant un autre.
Vous exécutez l'esquisse (en utilisant le moniteur série pour lui donner des commandes). Il identifie d'abord la puce cible:
Vous appuyez sur G pour le programmer.
Pour un Uno, cela prend une seconde. La programmation d'un Mega2560 prend 3 secondes.
Instructions détaillées au programmeur du chargeur de démarrage Atmega
Le code peut être téléchargé depuis Github: nickgammon / arduino_sketches
la source