Optiboot est le plus petit chargeur de démarrage disponible.
Mais, il existe un chargeur de démarrage beaucoup plus puissant (avec une console intégrée pour les tests matériels, la vérification de la RAM et du contenu Flash, etc.) avec un protocole de communication stk500v2 plus développé et robuste entre avrdude et le chargeur de démarrage AVR.
Je l'ai utilisé sur l'ATmega2560 et sur l'ATmega1284p. Il fonctionne pour le compteur de programme MCU à 3 octets et à 2 octets.
J'ai une version STK500v2 Bootloader sur Sourceforge .
Ce chargeur de démarrage est basé sur le chargeur de démarrage Peter Fleury STK500v2, mis à jour par Mark Sproul. J'ai fait des modifications pour qu'il soit compatible avec la carte Goldilocks (un ATmega1284p).
La caractéristique clé est d'utiliser le protocole STK500v2 pour télécharger l'image Flash sur l'Arduino. Ce protocole est plus robuste et offre de meilleures capacités d'erreur que le protocole avr109 . En passant, le protocole avr109 est appelé "Arduino" dans le monde Arduino, car il bascule DTR (pour réinitialiser la carte et entrer automatiquement dans le chargeur de démarrage), et le protocole STK500v2 est appelé "Câblage" dans le monde Arduino, en raison de la même raison.
Le chargeur de démarrage Fleury / Sproul STK500v2 est conçu pour fonctionner avec l'ATmega2560 qui a un registre de programme de 3 octets, en raison de la plus grande taille de Flash. Mais, il prend également en charge les cartes normales de 2 octets (tout le reste vraiment).
Pour les cartes avec beaucoup de Flash (comme Goldilocks 1284p), il existe un moniteur matériel qui peut être utilisé pour interroger Flash, SRAM et le matériel; vous pouvez vérifier les connexions sans code supplémentaire et vérifier le contenu réel de Flash et EEPROM. Étant donné que le 1284p prend en charge 2 USART, j'ai ajouté la possibilité d'avoir un débogage sur USART1 , afin que le processus de téléchargement via USART0 ne soit pas perturbé.