Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Programmation > Apprendre à coder > Les micro-contrôleurs > Trucs et astuces > Utiliser WinAVR et MFile et AVRDUDE

Utiliser WinAVR et MFile et AVRDUDE

mardi 16 février 2010, par Julien H.

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.19outils de compilation pour AVR
AVR GNU Compiler Collection (GCC) 4.3.3compilateur libre pour le langage C et C++ spécialisé pour AVR
avr-libc 1.6.7cvsbibliothèques de fonctions classiques, adaptées pour AVR
AVRDUDE 5.8cvslogiciel de programmation (transfert) pour AVR
AVR GNU Debugger (GDB) / Insight 6.8débogueur en ligne de commande / interface graphique
AVaRICE 2.9programme de debug utilisant le protocole JTAG
SimulAVR 0.9cvssimulation des AVR pour utilisation avec GDB
AVR32 GNU Binutils 2.19idem pour AVR32 (version 32 bits)
AVR32 GNU Compiler Collection (GCC) 4.3.2idem pour AVR32
Newlib (for AVR32) 1.16.0idem pour AVR32
AVR32 GNU Debugger (GDB) / Insight 6.7.1idem pour AVR32
Splint 3.1.2 ??
SRecord 1.47outils de manipulation des mémoire EPROM
MFilegénérateur de makefile pour AVR
Programmers Notepad 2.0.8.718logiciel de développement / édition de code source intégrant les outils AVR
LibUSB 0.1.12.1bibliothèque de gestion de l’USB pour AVRDUDE et AVaRICE
Cygwin DLLsbibliothèques du projet Cygwin (unix sous windows) comme make et bash
Tofrodos 1.6conversion 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.

JPEG - 22.8 ko

Une fois ouvert, vous devez créer un nouveau projet

JPEG - 65.2 ko
JPEG - 67.4 ko

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).

JPEG - 52.9 ko
JPEG - 45 ko
JPEG - 52.5 ko

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).

JPEG - 39.4 ko

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.

JPEG - 72.6 ko
JPEG - 90.9 ko

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é.

JPEG - 92.5 ko
JPEG - 135.9 ko

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).

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document