Outils pour utilisateurs

Outils du site


tuto_installation_de_eclipse

====== [TUTO] Installation de Eclipse ====== ---- ===== Eclipse, qu'est-ce que c'est ? ===== [[http://fr.wikipedia.org/wiki/Eclipse_(projet)|[Wikiedia - http://fr.wikipedia.org/wiki/Eclipse_(projet)]]] Eclipse est un projet, décliné et organisé en un ensemble de sous-projets de développements logiciels, de la Fondation Eclipse visant à développer un environnement de production de logiciels libres qui soit extensible, universel et polyvalent, en s'appuyant principalement sur Java. Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant les activités de programmation (notamment environnement de développement intégré et frameworks) mais aussi d'ATL recouvrant modélisation, conception, testing, gestion de configuration, reporting... Son EDI, partie intégrante du projet, vise notamment à supporter tout langage de programmation à l'instar de Microsoft Visual Studio. Bien que conçu initialement uniquement pour produire des environnements de développement, les utilisateurs et contributeurs Eclipse se sont rapidement mis à réutiliser ses briques logicielles pour des applications clientes classiques. Cela a conduit à une extension du périmètre initial d'Eclipse à toute production de logiciel : c'est l'apparition du framework Eclipse RCP en 2004. Figurant parmi les grandes réussites de l'OpenSource, Eclipse est devenu un standard du marché des logiciels de développement, intégré par de grands éditeurs logiciels et sociétés de services. Les logiciels commerciaux Lotus Notes 8, IBM Lotus Symphony ou WebSphere Studio Application Developer sont notamment basés sur Eclipse. >> Bon, en fait, c'est un IDE ((//Integrated Development Environment//)). ---- ===== Installation d'Eclipse ===== Sous Linux, en fonction de la distribution utilisée, il est possible d'installer Eclipse depuis les depot officiels de la distribution. >> Dans mon cas (Debian Wheezy 64-bit), seule une version assez ancienne n'est disponible (Indigo - 3.8.x). Il manque quelques fonctionnalités que je trouve plutôt pratiques depuis la Juno (4.2). Dans la suite du present tutoriel je ne considere que les versions à partir de Juno. Eclipse est téléchargeable depuis cette URL : http://www.eclipse.org/downloads/ La version actuelle est la 4.3.1. Nom de code "Kepler SR1". **[ACTION]** Télécharger la version adaptée au système d'exploitation. >> Pour ma part, étant sous Debian Wheezy 64-bit, je choisirai plûtot "Linux 64-bit". Une archive ''.tar.gz'' est téléchargée **[ACTION]** Decompresser l'archive vers un répertoire/dossier. ''lhotse@lhotse ~/Downloads % **tar -xvzf eclipse-standard-kepler-SR1-linux-gtk-x86_64.tar.gz**'' >> Pour ma part, cette archive n’étant pas un logiciel tout bien packagé "comme-il-faut" pour ma distribution, je ne souhaite pas "polluer" mon système en copiant, par exemple, l'archive décompressée dans mon ''/opt''. Etant le seul utilisateur de mon PC, je l'ai donc installée dans un répertoire ''opt'' dans mon ''home''. Le chemin est donc : ''~/opt/eclipse-standard-kepler-SR1-linux-gtk-x86_64''. ''lhotse@lhotse ~/Downloads % **mv eclipse eclipse-standard-kepler-SR1-linux-gtk-x86_64**'' ''lhotse@lhotse ~/Downloads % **cd ~/opt**'' ''lhotse@lhotse ~/opt % **mv ~/Downloads/eclipse-standard-kepler-SR1-linux-gtk-x86_64 .**'' Une fois Eclipse installé, il est possible de le lancer. Le fait de l'avoir installé dans un chemin local, permet d'avoir plusieurs instances d'Eclipses différentes ; une pour faire du Java, une pour du C/C++, une pour du PHP, une pour du Ruby, etc... >> Il est vrai que "autant tout avoir dans le même"... Cependant, bon nombre de développeurs Java diront que la gestion des dépendances peut-être problématique. Le truc qui me plait a moi, c'est que si je casse mon Eclipse en ayant installé le plugin de trop, je peux en changer comme bon me semble ; il suffit de supprimer le répertoire et de me refaire une configuration de Eclipse. Alors après, si on veut aller dans les copies de sauvegarde, il n'y a qu'un pas... Pour ma part, je n'installe pas un plugin tout les jours, surtout chez moi ; au boulot non plus, je n'ai pas les droits. He oui ! le fait de faire comme ca permet de s'affranchir du fait d'etre root pour installer un plugin ! Le seul inconviennient est qu'il s'agit du coup d'une "installation" mono-utilisateur ; à l'epoque du multi-utilisateur... Bref, revenons a nos moutons ! :-) **[ACTION]** Lancer Eclipse ''lhotse@lhotse ~/opt % **cd eclipse-standard-kepler-SR1-linux-gtk-x86_64**'' ''lhotse@lhotse ..e-standard-kepler-SR1-linux-gtk-x86_64 % **./eclipse &**'' Un splash-screen s'affiche ; Une boite de dialogue s'affiche ensuite demandant de spécifier un //Workspace//. Un //Workspace// est un répertoire ou seront stockés un ensemble de projets avec ou sans liens entre eux. **[ACTION]** Spécifier un chemin de //Workspace// Une fois Eclipse lancé un certain nombre de plugins vont être nécessaires... ---- ===== Installation du plugin CDT ===== Le plugin CDT permet la programmation en langage C/C++. Outre l'assembleur, qui n'a plus qu'un intérêt très spécifique et pédagogique, les microcontrôleurs (puisque in fine il est question de ça) se programment principalement en C, voir C++. Il est donc nécessaire d'installer le plugin //CDT// ((//C/C++ Development Tool//)) **[ACTION]** Dans notre Eclipse flambant neuf, qui attend dans une fenêtre derrière celle-ci, cliquer sur //Help// > //Install New Software...// Une boite de dialogue s'affiche. **[ACTION]** Dans la liste déroulante, sélectionner //--All Available Sites--// La liste des softwares disponibles s'actualise. Ça peut prendre un peu de temps... **[ACTION]** Dans //Programming Languages//, sélectionner à minima //C/C++ Development Tools// **[ACTION]** Cliquer sur //Next// > //Next// > //I Accept...// > //Finnish// >> Pour ma part, je sélectionne tout ce qui commence par C/C++... C'est plutôt empirique comme approche... ^_^ Le(s) plugin(s) se télécharge(nt) et s'installe(nt) tous seuls... Une fois le plugin installé, une boite de dialogue s'affiche demandant le redémarrage d'Eclipse. **[ACTION]** Cliquer sur //Yes// Une fois Eclipse redémarré, une nouvelle "perspective" est disponible : //C/C++ Development// Pour ouvrir la perspective C/C++ : **[ACTION]** Fermer l'onglet //Welcome//\\ **[ACTION]** Dans le coin en haut à gauche, cliquer-droit sur //Java// > //Close//\\ **[ACTION]** Toujours dans le coin en haut à gauche, cliquer sur l'icone avec un plus (Tooltip : //Open Perspective//)\\ **[ACTION]** Selectionner //C/C++// dans la boite de dialogue, puis //OK//\\ Bienvenue dans la perspective C/C++... ---- ===== Installation du plugin AVR ===== Une fois que le plugin CDT est installé, il est ensuite nécessaire d'installer le plugin AVR. Ce plugin permet de s'interfacer avec le compilateur //avr-gcc// et les autres outils permettant le développement sur nos microcontrôleurs préférés. Cela se fait de la même manière que précédemment, a la différence qu'il faudra ajouter un site de téléchargement. **[ACTION]** Cliquer sur //Help// > //Install New Software...// Une boite de dialogue s'affiche... **[ACTION]** Cliquer sur //Add...//\\ **[ACTION]** Créer un nouvel //update site// avec l'URL suivante : [[http://avr-eclipse.sourceforge.net/updatesite]] Si l'URL n'est pas la bonne, c'est peut-etre qu'elle a changée. Visiter le //source-forge// du plugin : [[http://www.webring.org/l/rd?ring=avr;id=59;url=http%3A%2F%2Fwinavr%2Esourceforge%2Enet%2F]] **[ACTION]** Cliquer sur //OK//\\ **[ACTION]** Dans la liste déroulante, sélectionner le site nouvellement créé. La liste des softwares disponibles s'actualise... **[ACTION]** Sélectionner //AVR Eclipse Plugin//\\ **[ACTION]** Cliquer sur //Next// > //Next// > //I Accept...// > //Finnish// A la fin de l'installation, Eclipse demande a être redémarré. **[ACTION]** Cliquer sur //Yes// Une fois Eclipse redémarre, un nouveau menu //AVR// est disponible dans la perspective //C/C++ Development//. Et voila, nous avons Eclipse + CDT + AVR. Il ne manque plus que les outils de compilation ! ---- ===== Installation des outils de développement AVR ===== Comme évoqué précédemment, un compilateur adéquat est nécessaire afin de "transformer" le code écrit en C, en instructions compréhensibles par le processeur de nos petits microcontrôleurs chéris. Sous Linux, le premier endroit où regarder est les dépôts officiels de la distribution utilisée. >> Pour Debian Wheezy, il s'agit des paquets suivants : >> * gcc-avr >> * avr-binutils >> * avr-libc >> * gdb-avr >> * avrdude >> >> Pour les autres distributions, c'est sensiblement les même noms. Pour les utilisateurs de Windows, un installer est disponible. Il s'agit de //win-avr//, disponible ici : [[http://www.webring.org/l/rd?ring=avr;id=59;url=http%3A%2F%2Fwinavr%2Esourceforge%2Enet%2F]] dans la rubrique //Download//. La procédure d'installation reste la procédure habituelle de tout logiciel sous Windows : //Next// > //Next// > //Next// > ... > //Finnish//. Coté Eclipse, pas grand chose a faire normalement. Etant donné que le plugin //AVR// fait un scan du système à la recherche de son compilateur, un simple redémarrage d'Eclipse doit suffire. Si ce n'est pas le cas, il est possible de spécifier les chemins en allant dans les préférences du plugin //AVR//. Pour ce faire : **[ACTION]** Cliquer sur //Window// > //Préférences//\\ **[ACTION]** Développer //AVR// > //Paths//\\ **[ACTION]** Spécifier les chemins vers les outils de développements si besoin. That's It ! Nous avons a présent un environnement de développement en C/C++ pour nos microcontrôleurs qui en théorie fonctionne. Beh justement, nous allons le tester ! ---- ===== Un premier projet ===== Alors voila, notre environnement de développement est prêt à être utilisé, il ne demande que ça en fait, et nous aussi, à dire vrai ! ^_^ Pour faire original, nous allons faire clignoter une LED... Quoi, comment ça "Encore ?!?!". ^_^ Commençons par créer un nouveau projet. **[ACTION]** Cliquer //File// > //New// >> //C++ Project// Une boite de dialogue s'affiche. **[ACTION]** Spécifier un nom de projet (représentatif, si possible) dans le champ //Project Name//\\ **[ACTION]** Sélectionner //AVR Cross Target Application// > //Empty project// >> N.B. : En informatique, plus particulièrement dans le domaine de la compilation, on parle de "cross-compilation" lorsque la plateforme sur laquelle va tourner le programme est différente (en terme d'architecture) de la plateforme sur laquelle le programme a été compilé ; C'est notre cas, gcc-avr est un cross-compilateur : on compile sur une machine Linux ou Windows 32 ou 64 bits un programme qui va tourner sur un microprocesseur 8-bit. En français on dit "compilation croisée". C'est valable de système à système, d'architecture à architecture, et il est possible de combiner les deux (système + architecture) : on peut compiler sous Windows 64-bit un programme pour une cible ARM 32-bit sous Linux... **[ACTION]** Cliquer //Next// Il est ensuite proposer de sélectionner/customiser des configurations. Laissons tomber ce point là pour le moment ; on y reviendra bien assez tôt... **[ACTION]** Cliquer //Next// Ha !! Il est ensuite demandé de spécifier les propriétés du matériel. C'est là, ou la connaissance de notre plateforme matérielle intervient. Si on ne sait pas, il faut consulter la documentation. Pour rappel, notre plateforme matérielle est un Arduino Uno Rev. 3 ou un Arduino Nano Rev. 3 ; toutes deux basées sur un ATmega328P cadencé à 16MHz. Nous allons donc indiquer ceci dans notre projet. * La documentation de l'Arduino Uno : [[http://arduino.cc/en/Main/ArduinoBoardUno]] * La documentation de l'Arduino Nano: [[http://arduino.cc/en/Main/ArduinoBoardNano]] **[ACTION]** Dans la liste déroulante //MCU Type//, selectionner //ATmega328P//\\ **[ACTION]** Dans le champ //MCU Frequency (MHz)//, specifier //16000000// **[ACTION]** Cliquer //Finnish// Voilà notre projet créé. La méthode de création d'un projet ne varie que très peu : Un nom, le microcontrôleur concerné, et la fréquence. On verra qu'il est possible de faire plusieurs configurations pour plusieurs microcontrôleurs différents. ---- ===== MOI VOULOIR CODEEEERRRRRRR !!!!! ===== Oui, ca vient, ca vient !!! Keep your pantyhose on !! (Abyss). Ajoutons un fichier source a notre projet : **[ACTION]** Dans le l'Explorateur de Projets/Projet Explorer, cliquer-droit sur le nom du projet > //New// > //Source File// Une boite de dialogue s'affiche. **[ACTION]** Dans le le champ //Source File//, spécifier un nom de fichier. L'usage veut que l'on mette soit ''main.c/cpp'', soit ''Nom_Du_Projet.c/cpp'' (''Blink_A_LED.cpp'' dans le cas présent). Un nouveau fichier est créé et ajouté a notre Projet. Eclipse l'ouvre directement dans la partie centrale de l'espace de travail. La //LED// a faire clignoter est la //LED// deja cablée sur la carte Arduino. Dans les deux cas (Uno et Nano), il s'agit de la broche //D13// : la broche #5 du Port B (//PB5//). On peut donc écrire le code source suivant : <code c> #include <avr/io.h> #include <util/delay.h> int main( void ) { // Sets Pin #5 of port B as Output DDRB |= (1 << PB5) ; for( ; ; )'' {'' // Toggle Pin #5 of Port B PORTB ^= (1 << PB5) ; // Wait for 1 second _delay_ms( 1000.0 ) ; } }</code> Il est ensuite temps de compiler tout ça... Ca se fait en cliquant sur l'icone marteau dan la barre d'outil. Pour les fans des menus, ca se passe ici : **[ACTION]** Dans la barre d'outils, cliquer sur le marteau / //Project// > //Build All//. Le résultat de la compilation est visible en bas de l’écran, dans l'onglet Console : <code>14:00:47 **** Incremental Build of configuration Debug for project Blink_A_LED **** make all Building file: ../Blink_A_LED.cpp Invoking: AVR C++ Compiler avr-g++ -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -funsigned-char -funsigned-bitfields -fno-exceptions -mmcu=atmega328p -DF_CPU=16000000UL -MMD -MP -MF"Blink_A_LED.d" -MT"Blink_A_LED.d" -c -o "Blink_A_LED.o" "../Blink_A_LED.cpp" In file included from ../Blink_A_LED.cpp:11: c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed" Finished building: ../Blink_A_LED.cpp Building target: Blink_A_LED.elf Invoking: AVR C++ Linker avr-g++ -Wl,-Map,Blink_A_LED.map,--cref -mmcu=atmega328p -o "Blink_A_LED.elf" ./Blink_A_LED.o Finished building target: Blink_A_LED.elf Invoking: AVR Create Extended Listing avr-objdump -h -S Blink_A_LED.elf >"Blink_A_LED.lss" Finished building: Blink_A_LED.lss Invoking: Print Size avr-size --format=avr --mcu=atmega328p Blink_A_LED.elf AVR Memory Usage ---------------- Device: atmega328p Program: 3292 bytes (10.0% Full) (.text + .data + .bootloader) Data: 8 bytes (0.4% Full) (.data + .bss + .noinit) Finished building: sizedummy 14:00:49 Build Finished (took 2s.328ms) </code> Je vous passe les détails, mais la compilation a réussie ! Notre chaîne de compilation fonctionne. Un seul petit bémol, mais qui n'est pas dût a notre chaîne de compilation : le compilateur nous indique qu'il y a un Warning. Nous verrons de quoi il s'agit par la suite... Il manque quelques commutateur d'optimisation... ---- ===== Remarques, Propositions d'améliorations, Questions ===== Vous pouvez poster vos remarques, propositions d'amelioration, et questions sur le forum, dans la discussion prévue a cet effet : [[http://fablab-robert-houdin.org/fablab/phpBB-3.0.11-fr/phpBB3/viewtopic.php?f=3&t=8]] ----

tuto_installation_de_eclipse.txt · Dernière modification: 2013/10/31 12:03 par spelle