lundi 21 janvier 2013

Introduction aux MCU atTiny, partie 6

Travailler sous GNU/Linux

Dans cette chronique on va configurer les outils pour travailler avec les MCU AVR sous GNU/Linux. La version GNU/Linux que j'utilise est Ubuntu 12.04 mais ces instructions devraient-être valables sous d'autres distributions, considérant que beaucoup sont dérivées d'Ubuntu (Mint, Kubuntu, Xubuntu, etc).

L'installation est simple et rapide. Il suffit d'installer les 5 paquets suivants:

  1. gcc-avr, le compilateur 'C'
  2. binutils-avr, groupe de programmes utilitaires qui s'intallent dans /usr/bin et dont le nom commence par avr-.
  3. avr-libc, librairie de macros et fonctions de bases.
  4. avrdude, le logiciel qui contrôle le programmeur.
  5. geany, editeur de texte et plus (IDE), (optionel)

Vous pouvez utilisez le gestionnaire de paquets graphique mais personnellement je préfère utiliser apt-get, faire <CTRL>+<ALT>+<T> pour ouvrir la console de commandes. Les commandes sont les suivantes:


Vous devez être membre du groupe dialout pour qu'avrdude soit capable d'ouvrir le port du programmeur. user_name est votre nom de login.
Il n'y a pas de pilote à installer pour le programmeur Pololu. Ce dernier utilise le pilote cdc_acm qui vient avec le noyaux Linux. Lorsque vous brancherez le programmeur Pololu, 2 nouveaux périphériques /dev/ttyACM? apparaîtront. S'il n'y avait pas ce type de périphérique avant que vous ne branchiez le programmeur Pololu alors les nouveaux seront /dev/ttyACM0 pour le programmeur et /dev/ttyACM1 pour le port sériel de configuration du programmeur.

Geany

Personnellement j'utilise geany comme éditeur car il permet de compiler et programmer l'atTiny en 1 seule opération sans sortir de l'éditeur. On peut donc dire que c'est plus qu'un éditeur, c'est un IDE au même titre que Atmel studio. La syntaxe est colorée, la liste des fonctions et des macros apparait dans une fenêtre et on peut s'y rendre simplement en double-cliquant sur le nom. Comme dans Atmel studio, le résultat de la compilation apparaît dans une autre fenêtre en bas de l'éditeur. Lorsqu'un saisie le nom d'un symbole une liste de choix apparait comme dans Atmel studio. Il existe peut-être d'autres IDE qui travaillent aussi bien que celui-ci, je n'ai pas fait de recherche à ce sujet.

Compilation et programmation

Il faut créer un fichier Makefile pour le projet et le placer dans le répertoire du projet.

Si vous ne connaissez pas l'utilitaire make il faudrait l'étudier un mininum en commencant par la page man make. Pour vous simplifier la vie vous pouvez utiliser l'exemple çi-haut et simplement modifier les paramètres spécifique à votre projet. TINY est le numéro de modèle de MCU utilisé ici 13 (valide aussi pour 13a). TARGET est le nom du fichier 'C' à compiler sans l'extension, ici BLinkLED. Chaque fois que $(symbole) apparaît dans le texte une substitution est effectuée, par exemple ici -mmcu=attiny$(TINY) devient -mmcu=attiny13.

Pour compiler et flasher le MCU à partir de geany allez dans le menu construire (icône bloc de béton rouge) et choississez l'item Make all. Le résultat de l'opération s'affiche dans la fenêtre du bas. S'il n'y a pas d'erreur de compilation avrdude sera lancé automatiquement et le MCU programmé.
Voici le programme BlinkLED pour vous exercer.

Pour conclure lorsque vous branchez le programmeur Pololu dans le port USB et qu'il est relié correctement au MCU et que malgré tout la lumière rouge du programmeur clignote, ça peut vouloir dire que vous n'avez pas les droits d'ouverture du périphérique /dev/ttyACM0. Vous pouvez lancer quand même Make all et avrdude va afficher un message d'erreur s'il ne peut ouvrir le port. Si votre distribution GNU/Linux est Ubuntu ou un dérivé assurez-vous d'être membre du groupe dialout. Vous pouvez obtenir la liste de vos appartenances avec la commande groups dans la console de commandes. Je ne saurais dire si c'est le même groupe pour les autres distros. Réouvrez votre session après vous être ajouté au groupe dialout

Aucun commentaire:

Publier un commentaire

Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.