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 13:52] 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) | ||
| \\ Indiquer le nom du projet et le nom du répertoire (src) puis valider. | \\ Indiquer le nom du projet et le nom du répertoire (src) puis valider. | ||
| - | == Création du répertoire include == | + | Maintenant que le répertoire src est créé, nous pouvons créer les fichiers .c : |
| + | \\ New -> Source File | ||
| + | |||
| + | === 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 | ||
| \\ Indiquer le nom du projet et le nom du répertoire (src) puis valider. | \\ Indiquer le nom du projet et le nom du répertoire (src) puis valider. | ||
| - | == Variable d’environnement Path == | + | Maintenant que le répertoire include est créé, nous pouvons créer les fichiers headers : |
| + | \\ New -> Header File | ||
| + | |||
| + | === 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 55: | 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. | ||