Installation de la chaîne de développement Atmel AVR Studio avec le compilateur GCC (C/C++)

Récupération des fichiers et installation

L'environnement de développement ne fonctionne actuellement que sous MS Windows. La version de GCC pour les AVR est disponible sur de nombreuses plate-formes (Linux/MacOS/BSD/...).

Les 2 fichiers à récupérer sont:

L'installation des 2 programmes ne pose a priori pas de problèmes particulier. J'ai testé en installant GCC en premier, afin que AVR Studio puisse trouver le compilateur GCC directement.

Installation de WinAvr

Aucun soucis. Il suffit de double-cliquer sur le fichier WinAVR-20050214-install.exe et de se laisser guider. L'installation est même en français. À noter tout de même. 6 icônes apparaissent sur le bureau.

Attention Je suppose qu'il faut laisser cochée la case "Add directories to PATH" pour que l'environnement AVR Studio puisse facilement trouver le compilateur.

Installation de AVR Studio

Pas de soucis non plus. Il suffit de double-cliquer sur le fichier aStudio4b452.exe. L'installation est en anglais. Il est juste à noter qu'il y a une option à cocher pour un dribver USB qui fait 176 Ko... alors que l'installation a déjà besoin de 70 Mo... Il faut redémarrer la machine à la fin de l'installation.

programme de test avec le « Starter Kit STK500 »

L'installation logicielle ne posant pas de problème, nous essayons maintenant de faire tourner un programme simpliste (de type "hello World") et de programmer la carte.

Démarrage et création du projet

L'environnement de développement est démarré classiquement, en allant chercher le programme dans Démarrer/Programme/Atmel AVR Tools/AVR Studio 4. Une fenêtre apparaît au démarrage de l'application. Si on choisi « New Project », on a directement une option pour utiliser la chaine de compilation GCC:

choix du compilateur C

Attention

Pour le choix du debugger, comme le starter Kit ne nous permet pas de faire du debuggage en ligne, on utilise le simulateur.

Il faut préciser le composant utilisé: C'est un ATMega8515 qui est livré par défaut avec la carte STK500.

choix de debugger et du composant cible

Le projet est créé, et un fichier est créé. On peut voir sur la gauche les fichiers présents dans le projet. On retrouve beaucoup de comportements classique des environnements de développement, comme dans Keil par exemple.

Le code exemple utilisé ici sert à faire clignoter une diode LED (sur le port B.0). Il n'y a pas de timers, donc il ne faut pas s'attendre à quelque chose de formidable :-).

Compilation et debugage avec le simulateur

On compile ensuite. Il y a une barre d'outil pour la compilation:toolbar compilation

Le kit de démarrage STK500 ne nous permet pas de faire du debuggage en ligne, par contre, on peut tout à fait utiliser le simulateur pour vérifier le comportement fonctionnel de notre application. Il y a une barre à outil de débuggage avec les fonctions play/pause/reset/step over/step into..., la possiblité de mettre des points d'arrêt et de visualiser la valeurs des registres spécifiques de manière très efficace (sur la partie gauche, l'onglet I/O View):

lancement du debugger

Programmation du Starter Kit STK500

Il est tout d'abord nécessaire d'effectuer la connexion avec la carteSTK500 dans le menu Tools/Program AVR/connect... Bien entendu, la carte doit être branchée.

Attention A la première connexion, il est nécessaire de faire une mise à jour du firmware de la carte

Pour la mise à jour, il suffit de lire les instructions données lors de l'invite. Il n'y a pas de problème particulier.

MAJ firmware

Pour la programmation de la carte, il est nécessaire de:

C'est tout.

On se reconnecte ensuite à la carte. La programmation est de type "in situ" (ISP). Il suffit alors d'indiquer le fichier .HEX à programmer (en flash)

programmation du composant

Dans un premier temps, en laissant toute la configuration par défaut (dans les autres onglets sur la figure précédente), le programme fonctionne. Il faudra revenir dessus pour une configuration plus précise (validation du watchdog, ...)

Pour tester notre magnifique application, on peut mettre un connceteur entre le port B (tous les ports sont disponibles sur la carte) et les diodes LEDs (il y a sur la carte 8 diodes LEDs et 8 interrupteurs).

Valid XHTML 1.0 Strict Valid CSS!