Utiliser WinAVR et MFile et AVRDUDE
Transcription
Utiliser WinAVR et MFile et AVRDUDE
Utiliser WinAVR et MFile et AVRDUDE Extrait du PoBot http://www.pobot.org Utiliser WinAVR et MFile et AVRDUDE - Programmation - Apprendre - Les micro-contrôleurs - Trucs et astuces - Date de mise en ligne : mardi 16 février 2010 PoBot Copyright © PoBot Page 1/6 Utiliser WinAVR et MFile et AVRDUDE Sommaire • Liste des logiciels • Première compilation • Programmation du microcontrôle Pour programmer un microcontrôleur Atmel AVR, on doit écrire du code source sur son ordinateur et le compiler pour le transformer en un programme pour AVR, puis le transférer dans le micro-contrôleur. Toutes ces étapes nécessitent une suite de logiciels différents (un éditeur de texte, un compilateur spécifique selon le langage choisi, et un logiciel de transfert, pour simplifier) plus tous les outils de vérification de code, d'optimisation de taille, etc... C'est ce que permet WinAVR, une suite d'outils pour AVR basé sur des outils libres (GNU) notamment le cross-compilateur avr-gcc. Mais d'habitude, on installe tout et on se lance directement dans la programmation. Voyons cette fois tout ce qu'il y a dans WinAVR. Liste des logiciels Je vais présenter ci-dessous une traduction du manuel utilisateur de la version 2010-01-10 de WinAVR, disponible une fois installé dans le fichier "WinAVR-20100110/WinAVR-user-manual.html". Outil Description AVR GNU Binutils 2.19 outils de compilation pour AVR AVR GNU Compiler Collection (GCC) 4.3.3 compilateur libre pour le langage C et C++ spécialisé pour AVR avr-libc 1.6.7cvs bibliothèques de fonctions classiques, adaptées pour AVR AVRDUDE 5.8cvs logiciel de programmation (transfert) pour AVR AVR GNU Debugger (GDB) / Insight 6.8 débogueur en ligne de commande / interface graphique AVaRICE 2.9 programme de debug utilisant le protocole JTAG SimulAVR 0.9cvs simulation des AVR pour utilisation avec GDB AVR32 GNU Binutils 2.19 idem pour AVR32 (version 32 bits) AVR32 GNU Compiler Collection (GCC) 4.3.2 idem pour AVR32 Newlib (for AVR32) 1.16.0 idem pour AVR32 AVR32 GNU Debugger (GDB) / Insight 6.7.1 idem pour AVR32 Splint 3.1.2 ?? SRecord 1.47 outils de manipulation des mémoire EPROM MFile générateur de makefile pour AVR Copyright © PoBot Page 2/6 Utiliser WinAVR et MFile et AVRDUDE Programmers Notepad 2.0.8.718 logiciel de développement / édition de code source intégrant les outils AVR LibUSB 0.1.12.1 bibliothèque de gestion de l'USB pour AVRDUDE et AVaRICE Cygwin DLLs bibliothèques du projet Cygwin (unix sous windows) comme make et bash Tofrodos 1.6 conversion des fins de ligne dans les fichiers en ligne de commande Première compilation Une fois installé, et si vous avez choisi les options par défaut (comme les variables système a.k.a. PATH), vous êtes capable de programmer un microcontrôleur. Il suffirait d'ouvrir une fenêtre de ligne de commande et de taper le nom des programmes (faites un essai avec "avr-gcc —version" qui vous répondra correctement). Mais si on débute, alors il est préférable d'utiliser des outils graphiques, à commencer par l'éditeur Programmers Notepad. Il est accessible dans le menu Démarrer si vous avez laissé les options d'installation par défaut. Une fois ouvert, vous devez créer un nouveau projet Copyright © PoBot Page 3/6 Utiliser WinAVR et MFile et AVRDUDE Puis y ajouter de nouveaux fichiers. Deux sont nécessaires : un "Makefile" qui permet de décrire le projet et la compilation nécessaire : nous allons pour cela utiliser un petit outil faisant parti de WinAVR : Mfile. Lancez MFile depuis le menu des programmes installés (là où vous avez trouvé Programmers Notepad dans le menu Démarrer / Programmes). Une fenêtre s'ouvre avec un éditeur de texte et deux menus. Le second menu propose de modifier les options : choix du MCU (microcontrôleur), options de compilation, nom du fichier. Pour commencer il faut modifier : le MCU (ATtiny, ATmega selon votre matériel disponible) le nom du programme (main par défaut) A noter qu'il n'y a pas de menu pour l'horloge, mais il faut bien penser à modifier la valeur (en Hz, 8000000 pour 8 MHz). Enregistrez le fichier Makefile dans le répertoire créé pour le nouveau projet de Programmers Notepad, et créez dans ce même répertoire un fichier portant le même nom que celui spécifié dans MFile et l'extension .c (exemple : servoclock.c ou main.c si vous avez gardé la valeur par défaut). Copyright © PoBot Page 4/6 Utiliser WinAVR et MFile et AVRDUDE Vous constaterez que Programmers Notepad propose par défaut dans la colonne de gauche des "Text Clips" pour différents langages / outils dont WinAVR, avec "application" et "function". Double-cliquez sur "application" : un archétype de programme (avec include, fonction d'init et boucle main) est écrit dans votre fichier vide, vous pouvez l'enregistrer, il est totalement fonctionnel même s'il ne fait rien. Maintenant dans le menu Tools, choisissez l'option "[WinAVR] make all", elle va lancer la suite d'instructions correspondant à la chaine complète (all = tout) dans votre Makefile auto-généré. Copyright © PoBot Page 5/6 Utiliser WinAVR et MFile et AVRDUDE Vous avez désormais votre premier programme, inutile mais correctement compilé pour votre cible. Il ne reste plus qu'à le transférer. Programmation du microcontrôleur Prenez votre programmateur d'Atmel AVR en ISP (on en présente quelques-uns dans les articles de la même rubrique). Le makefile des projets WinAVR proposent le téléchargement par AVRDUDE, il suffit de préciser le type de programmateur (stk200, stk500, avr910, avr901, butterfly, etc.. parmi les plus connus) et le port série (même pour un programmateur USB, la plupart sont vus comme des émulations de port série COMx). Copyright © PoBot Page 6/6