Le service rendu par un bootloader AVR est de télécharger votre programme compilé dans un micro-contrôleur Atmel par la liaison série.
Notre projet consistait à développer une interface graphique (sous Windows et Linux) permettant de faciliter la programmation de nos puces. Depuis lors, des projets comme AVRdude ou même Arduino sont apparus qui facilitent le chargement, par ISP ou par téléchargement série, qui ont rendu obsolète ce type d’outil supplémentaire : tout se fait depuis l’environnement de développement et de compilation.
Nous conservons cet article à des fins documentaires, car il existe encore régulièrement des besoins spécifiques pour développer son propre bootloader.
Pourquoi utiliser la liaison série
Son utilisation permet de n’avoir qu’une connexion entre le PC et le µC. Cette connexion série peut être filaire ou radio, donnant une autonomie plus grande à des projets mobiles, comme un robot, un radeau, etc...
L’ISP (In Situ Programming) nécessite en effet un câble dédié, de même que le JTAG, ce qui n’est pas pratique quand on relie déjà son montage à un port série permettant une télécommande ou le débogage.
2006
Lancement du projet : définir un cahier des charges.
Démonstration du bootloader PIC par Thierry. Fabrice rejoint le projet.
Proposition 1 : utilisation de Java et de l’API java Comm de Sun (existe pour Win comme pour Linux, cf. projet RXTX)
Réalisation 1 : nouveau projet Eclipse sous CVS, module "Bootloader/GUI/BootloaderGUI".
Différents projets : diagramme des classes de la partie GUI + Terminal + interface série + implémentation Win + implémentation Linux
Fabrice propose d’utiliser SWT pour la GUI. Question : est-ce que ça fonctionnera avec une JRE simple ou bien ça nécessitera une installation particulière ?
L’accès aux ports séries depuis Windows est OK. Il faut utiliser la version 2 de l’API Sun javacomm car la dll windows a été retirée en v3.
Cahier des charges OK. interface GUI pratiquement terminée. problème de test d’accès aux ports sous Linux, car différences selon les distribs.
En attente du protocole de communication avec le bootloader µC. Démarrage des recherches de bootloader si pas d’évolution.
Fin du projet.