Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
computing:embedded:creation_d_un_projet_c_pour_les_avr [2014/10/29 14:01] ldo |
computing:embedded:creation_d_un_projet_c_pour_les_avr [2014/10/30 10:29] (Version actuelle) ldo [Programmation AVR] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
Cet article va présenter comment créer un projet C pour les AVR sous Eclipse. | Cet article va présenter comment créer un projet C pour les AVR sous Eclipse. | ||
- | === Création du projet === | + | ==== Création du projet ==== |
Pour commencer, nous allons créer un projet C. | Pour commencer, nous allons créer un projet C. | ||
File -> New -> C Project | File -> New -> C Project | ||
Ligne 21: | Ligne 21: | ||
Cliquer sur Finish et le projet est créé. | Cliquer sur Finish et le projet est créé. | ||
- | === Création de répertoires === | + | ==== Création de répertoires ==== |
- | == Création du répertoire source == | + | === Création du répertoire source === |
Pour plus de clarté, nous allons créer un répertoire src qui va contenir tous les fichiers .c du projet. | Pour plus de clarté, nous allons créer un répertoire src qui va contenir tous les fichiers .c du projet. | ||
\\ File -> New -> Source Folder (ou clic gauche sur le projet puis New -> Source Folder) | \\ File -> New -> Source Folder (ou clic gauche sur le projet puis New -> Source Folder) | ||
Ligne 31: | Ligne 31: | ||
\\ New -> Source File | \\ New -> Source File | ||
- | == Création du répertoire include == | + | === Création du répertoire include === |
Nous allons maintenant créer un répertoire include qui va contenir tous les fichiers .h du projet. | Nous allons maintenant créer un répertoire include qui va contenir tous les fichiers .h du projet. | ||
\\ File -> New -> Folder | \\ File -> New -> Folder | ||
Ligne 39: | Ligne 39: | ||
\\ New -> Header File | \\ New -> Header File | ||
- | == Variable d’environnement Path == | + | === Variable d’environnement Path === |
Il faut maintenant indiquer au projet où aller chercher les fichiers .c et .h. Pour les fichiers .c, cela est fait automatiquement à la création du répertoire source. Pour le répertoire include, il faut l'ajouter à la variable d'environnement Path : | Il faut maintenant indiquer au projet où aller chercher les fichiers .c et .h. Pour les fichiers .c, cela est fait automatiquement à la création du répertoire source. Pour le répertoire include, il faut l'ajouter à la variable d'environnement Path : | ||
\\ Properties -> C/C++ General -> Paths and Symbols | \\ Properties -> C/C++ General -> Paths and Symbols | ||
Ligne 61: | Ligne 61: | ||
\\ Cliquer sur Finish et la librairie est créée. | \\ Cliquer sur Finish et la librairie est créée. | ||
+ | ==== Inclusion d'une librairie dans un projet ==== | ||
+ | Nous allons maintenant expliquer comment inclure une librairie dans un projet. | ||
+ | |||
+ | === Exemple === | ||
+ | Nous avons créer une librairie test_library avec deux fichiers lib_a.c et lib_a.h. | ||
+ | |||
+ | <code c> | ||
+ | /* | ||
+ | * lib_a.c | ||
+ | */ | ||
+ | |||
+ | void | ||
+ | function_lib_a(void) | ||
+ | { | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <code c> | ||
+ | /* | ||
+ | * lib_a.h | ||
+ | */ | ||
+ | |||
+ | #ifndef LIB_A_H_ | ||
+ | #define LIB_A_H_ | ||
+ | |||
+ | void | ||
+ | function_lib_a(void); | ||
+ | |||
+ | #endif /* LIB_A_H_ */ | ||
+ | </code> | ||
+ | |||
+ | Notre projet test a besoin de cette librairie, il faut donc inclure lib_a.h : | ||
+ | <code c> | ||
+ | /* | ||
+ | * main.c | ||
+ | */ | ||
+ | |||
+ | #include <lib_a.h> | ||
+ | |||
+ | int | ||
+ | main (void) | ||
+ | { | ||
+ | function_lib_a (); | ||
+ | |||
+ | return 1; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | === Ajout de la librairie === | ||
+ | Pour que le makefile trouve cette librairie lors de la compilation, il faut : | ||
+ | * ajouter le répertoire contenant header dans la variable d'environnement Path : | ||
+ | \\ Properties -> C/C++ General -> Paths and Symbols | ||
+ | \\ Dans l'onglet Includes : Cliquer sur Add... puis sur Workspace | ||
+ | \\ Sélectionner test_library -> include | ||
+ | \\ et valider. | ||
+ | |||
+ | {{:computing:embedded:path_library.png?400|}} | ||
+ | |||
+ | * indiquer le nom de la librairie | ||
+ | \\ Properties -> C/C++ Build -> Setting | ||
+ | \\ Dans l'onglet Tools settings : AVR C Linker -> Libraries | ||
+ | \\ Dans la zone Libraries (-l) : Cliquer sur Add et entrer test_library | ||
+ | |||
+ | * indiquer le chemin où trouver la librairie | ||
+ | \\ Dans la zone Libraries Path (-L) : Cliquer sur Add... puis sur Workspace | ||
+ | \\ Sélectionner test_library -> Debug (ou Release) | ||
+ | \\ et valider. | ||
+ | |||
+ | {{:computing:embedded:setting_lib.png?400|}} | ||
+ | |||
+ | ==== Compilation ==== | ||
+ | Pour compiler | ||
+ | clic droit sur le projet : Build configurations -> Set Active | ||
+ | \\ sélectionner Release | ||
+ | |||
+ | ==== Programmation AVR ==== | ||
+ | clic droit sur le projet : Properties | ||
+ | === Sélection du microcontrôleur === | ||
+ | Normalement, lors de la création du projet, nous avons déjà sélectionner le microcontrôleur et la fréquence de l'horloge. En cas de modification : AVR -> Target Hardware : Sélectionner le microcontrôleur et la fréquence de l'horloge. | ||
+ | |||
+ | === Sélection du programmateur === | ||
+ | Dans le cas des ARDUINO, le microcontrolleur intègre un bootloader qui permet de les programmer directement (sans programmateur externe). | ||
+ | \\ AVR -> AVRDude. Dans l'onglet Programmer, cliquer sur New dans la zone Programmer configuration. | ||
+ | * Donner un nom à la configuration | ||
+ | * Sélectionner le type de programmateur : programmer Hardware (-c) | ||
+ | * Sélectionner le port USB : Override Default Port (-P) | ||
+ | * Sélectionner la vitesse de programmation : Override Default baudrate (-b) | ||
+ | * Sélectionner les autres options : Other options | ||
+ | == ARDUINO MEGA == | ||
+ | * nom : ARDUINO MEGA | ||
+ | * programmer Hardware : Atmel STK500 V2.x firmware | ||
+ | * Override Default Port : /dev/ttyACM0 | ||
+ | * Override Default baudrate : 115200 | ||
+ | * Other options : -D | ||
+ | |||
+ | {{:computing:embedded:conf_mega.png?400|}} | ||
+ | |||
+ | == ARDUINO UNO == | ||
+ | * nom : ARDUINO UNO | ||
+ | * programmer Hardware : Arduino | ||
+ | * Override Default Port : /dev/ttyACM0 | ||
+ | * Override Default baudrate : 115200 | ||
+ | |||
+ | == ARDUINO ROMEO ou LEONARDO == | ||
+ | * nom : ARDUINO ROMEO | ||
+ | * programmer Hardware : Atmel AppNote AVR109 Bootloader | ||
+ | * Override Default Port : /dev/ttyACM0 | ||
+ | * Override Default baudrate : 57600 | ||
+ | |||
+ | === Programmation === | ||
+ | Clic droit AVR -> Upload Project to Target Device | ||
+ | \\ La programmation prend quelques secondes en fonction de la taille du programme à télécharger. | ||
+ | Un message indique dans la console que la programmation s'est bien déroulée. |