Pages: 1 [2] 3 4 ... 6   Go Down
Author Topic: [Résolu] Intégration du langage Arduino dans AVR Studio 5  (Read 21824 times)
0 Members and 1 Guest are viewing this topic.
Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

YOUPYYYYYE  !!!!!


On se calme, on se calme !!!

Encore un peu de patience pour les détails.

... à suivre ...
« Last Edit: December 06, 2011, 11:38:48 am by Jean-Marie » Logged

Amicalement, Jean-Marie

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour le sketch j'ai le même ^^

Vu ton cri de joie je suppose que tu réussi à trouver LA *bip* de case à cocher qui faisait tout planter ? ^^"
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Comme le fichier makefile créé automatiquement par Studio5 apparaît dans le répertoire ……..\TutoArduino\TutoArduino\debug  je me suis dit que ce n’était pas très logique de le transplanter dans le répertoire parent  ………\TutoArduino\TutoArduino

Donc, j’ai repris le makefile (corrigé) et le l’ai remis sous \debug

Et voilà. C’est tout simple. Il n’y a plus qu’à cliquer sur Build

Voici l’Output du Build :

Code:
------ Build started: Project: TutoArduino, Configuration: Debug AVR ------
Build started.
Project "TutoArduino.avrgccproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "C:\Program Files\Atmel\AVR Studio 5.0\Vs\AvrGCC.targets" from project "C:\Documents and Settings\Jeannot\Mes documents\AVRStudio\TutoArduino\TutoArduino\TutoArduino.avrgccproj" (target "Build" depends on it):
Task "RunAvrGCC"
C:\Program Files\Atmel\AVR Studio 5.0\AVR ToolChain\bin\make.exe -C "C:\Documents and Settings\Jeannot\Mes documents\AVRStudio\TutoArduino\TutoArduino\Debug" -f "Makefile" all
make: Entering directory `C:/Documents and Settings/Jeannot/Mes documents/AVRStudio/TutoArduino/TutoArduino/Debug'
AVR Memory Usage
----------------
Device: atmega328p
Program:    1340 bytes (4.1% Full)
(.text + .data + .bootloader)
Data:         17 bytes (0.8% Full)
(.data + .bss + .noinit)
make: Leaving directory `C:/Documents and Settings/Jeannot/Mes documents/AVRStudio/TutoArduino/TutoArduino/Debug'
Done executing task "RunAvrGCC".
Done building target "CoreBuild" in project "TutoArduino.avrgccproj".
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files\Atmel\AVR Studio 5.0\Vs\Avr.common.targets" from project "C:\Documents and Settings\Jeannot\Mes documents\AVRStudio\TutoArduino\TutoArduino\TutoArduino.avrgccproj" (entry point):
Done building target "Build" in project "TutoArduino.avrgccproj".
Done building project "TutoArduino.avrgccproj".

Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========


Je me propose de faire un résumé concis et précis de tout ce qu’il faut faire pour utiliser AVR Studio5 comme IDE de développement Arduino.
Logged

Amicalement, Jean-Marie

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est trop tôt pour faire un résumé car il n'y a encore que la moitié de fait.

En effet, jusqu'ici on peut produire le fichier .hex mais pour bien faire, il faudrait pouvoir l'envoyer à la platine Arduino depuis Studio5 et par la voie habituelle, c'est à dire par l'USB et en passant par le Bootloader.

Allez, au boulot .....
Logged

Amicalement, Jean-Marie

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voici la suite du texte anglais :

Code:
The next thing is to get the program onto my hardware (Arduino UNO). I defined an external tool:
Command: C:\arduino\hardware/tools/avr/bin/avrdude.exe
Arguments: -CC:\arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P\\.\COM3 -b115200 -D -Uflash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i

  • Prendre le Menu Tools ==> External Tools




Title : Flash Duemilanove (Vous écrivez le titre que vous voulez mais les arguments ci-dessous conviennent à la Duemilanove)
Command : C:\Program Files\arduino-0022\hardware\tools\avr\bin\avrdude.exe  (Veiller à pointez sur le programme avrdude.exe)
Arguments : -C "C:\Program Files\arduino-0022\hardware\tools\avr\etc\avrdude.conf" -v -v -p atmega328p -c stk500v1 -P COM3 -b 57600 -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i (Veiller à pointer sur le fichier avrdude.conf et à adapter le Port COM).

On voit que la ligne d’arguments a subi une série de modifications par rapport à l’article anglais, ce qui m'a valu pas mal d'essais-erreurs.

  • Décocher « close on exit » sinon il n’est pas possible de lire la fenêtre d’output (voir ci-dessous).

  • Cliquer OK


Ceci ajoute « Flash Duemilanove » dans le Menu Tools.

En cliquant sur « Flash Duemilanove », avrdude envoie le fichier hex en quelques secondes dans l’Atmega.
Si la case « Prompt for arguments » est cochée, on reçoit d’abord une fenêtre permettant de modifier les arguments de la ligne de commande de avrdude.

Avrdude ouvre une fenêtre d’output permettant de vérifier si tout s’est bien passé :


L'image est trop petite pour être lue. J'espère qu'elle est téléchargeable ici:
https://picasaweb.google.com/lh/photo/Q8_Vi49ceM_ffoZGQjnO6_gm1gMUYGv4zAEVLaYn1Gc?feat=directlink

Comme on peut le voir, avrdude lit les fuses mais ne les affiche pas. Ce serait pourtant une information utile à connaître. Peut-être que Skywodd sait comment faire pour afficher les fuses sans être obligé de les écrire dans des fichiers.

L’objectif que nous nous étions fixés est maintenant en vue : travailler avec l’Arduino à partir de l’environnement sophistiqué d’AVR Studio 5. Il y a certainement encore un tas de choses qui peuvent être peaufinées mais l’essentiel est là.

Il serait probablement judicieux d’attendre la fin des discussions actives (et des changements ou ajouts) pour rédiger la « recette » finale et, pourquoi pas, la traduire en anglais. Après tout, ils ont bien mérité ça.
« Last Edit: December 07, 2011, 06:19:18 am by Jean-Marie » Logged

Amicalement, Jean-Marie

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Comme on peut le voir, avrdude lit les fuses mais ne les affiche pas. Ce serait pourtant une information utile à connaître. Peut-être que Skywodd sait comment faire pour afficher les fuses sans être obligé de les écrire dans des fichiers.
Pour avoir les fusibles dans la console en hexa :
Code:
-U lfuse:r:stdout:h -U hfuse:r:stdout:h -U efuse:r:stdout:h
Edit: j'ai oublié une partie de ma commande >< mais du coup je sais plus si stdout marche avec avrdude ...

Pour le moment moi je continu à me battre avec le linker et core.a ^^"
« Last Edit: December 07, 2011, 10:49:13 am by skywodd » Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Skywodd,

J'ai essayé d'insérer tes paramètres dans la ligne d'arguments mais ça ne marche pas. La fenêtre DOS s'ouvre puis se referme tout de suite et rien d'autre ne se passe. Donc, je reste à la recherche de la solution.
Logged

Amicalement, Jean-Marie

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Skywodd,

Dans le post ci-dessus, l'essai était fait avec les paramètres suivants:
Code:
-U lfuse:r:h -U hfuse:r:h -U efuse:r:h

J'ai réessayé avec ceci :
Code:
-U lfuse:r:stdout:h -U hfuse:r:stdout:h -U efuse:r:stdout:h

La fenêtre DOS s'ouvre et se ferme immédiatement comme tout à l'heure.
Cependant, lorsque je n'inclus que la lecture d'un seul fuse (low, high ou extended), un fichier nommé "stdout" est créé dans le répertoire C:\Program Files\Atmel\AVR Studio 5.0
Ce fichier contient toujours 0x0, c'est à dire 0 en hexadécimal.

J'ai l'impression que, pour une raison ou une autre, avrdude n'est pas capable de lire les fuses car on voyait déjà ceci sur la fenêtre DOS citée plus haut :



Il faudrait que je fasse un essai d'avrdude en-dehors de Studio pour voir.
Logged

Amicalement, Jean-Marie

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
La fenêtre DOS s'ouvre et se ferme immédiatement comme tout à l'heure.
Cependant, lorsque je n'inclus que la lecture d'un seul fuse (low, high ou extended), un fichier nommé "stdout" est créé dans le répertoire C:\Program Files\Atmel\AVR Studio 5.0
Ce fichier contient toujours 0x0, c'est à dire 0 en hexadécimal.
Arg! Donc il ne reconnait pas stdout comme sortie console mais comme sortie fichier ... je vois, encore une histoire de modif dans le code source de avrdude ...
J'aurai bien repris mon patch fait pour une ancienne version mais devoir recompiler tout le package winavr me tente pas trop smiley-confuse
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Skywodd,

Ne t'inquiète pas. La programmation Arduino et le flashage sont fonctionnels sous Studio et c'est ça qui compte. Studio n'est pas fait pour travailler sur les fuses.

As-tu progressé dans tes propres modifications ?

Je suis en train de mettre un peu d'ordre dans les modifications à faire et de rédiger un résumé pour les gens pressés. Dès qu'il est fini, je le publie ici.
Logged

Amicalement, Jean-Marie

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

As-tu progressé dans tes propres modifications ?
Pour le moment je bloque sur un probléme de linker, les .h sont trouvé et utilisé mais le core.a ne veut pas s'inclure smiley-yell
Je vais tenter de compiler le core arduino en librairie statique "peut être que" ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Skywodd,

Dans ma rédaction du résumé, j'essaye de rationaliser un peu en rassemblant tous les fichiers nécessaires en un endroit indépendant des répertoires d'Arduino.

Pour l'occasion, j'ai recréé également un nouveau projet. Or je viens de passer plus de 24 h sur le même problème que toi : j'avais oublié de renommer core.a en libcore.a

Vérifie un peu que tu ne buttes pas sur le même obstacle.
Logged

Amicalement, Jean-Marie

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai terminé le résumé de ce qu'il faut faire pour intégrer l'Arduino dans l'environnement de développement AVR Studio5.
Je n'ai pas résisté à l'envie d'appeler cette intégration AVR_Studuino

Cela peut paraître compliqué, mais c'est essentiellement dû au fait que j'ai tenté de détailler les divers points de manière précise.

En gros, la méthode consiste à rassembler le "core" Arduino et les librairies en un endroit et à inclure cet endroit dans les répertoires de Studio, de manière à ce que Studio se serve du core Arduino pour compiler le programme. Ensuite, on ajoute avrdude à Studio comme outil externe pour le flashage du fichier hex produit.

Voici l'ensemble de la procédure à suivre:
________________________________________________________________________________________

AVR_Studuino
____________

Arduino intégré dans AVR Studio 5

Installation de AVR Studio 5
•   Télécharger AVR Studio5 as5installer-full-5.0.1223 ici : http://www.atmel.com/dyn/products/tools_card.asp?tool_id=17212
•   Installer AVR Studio 5 et l’ouvrir
•   Installer AVRGCC C++:    Menu Tools --> Extension Manager --> Online Gallery --> AVRGCC C++(Beta)  
•   Installer Terminal Window:    Menu Tools --> Extension Manager --> Online Gallery --> Terminal Window  

Création d’un nouveau projet:
•   Start Page --> New Project --> C++ --> C++ Executable Project
•   Name: Blink
•   Location: …....\Mes documents\AVRStudio (remplacer les …... par ce qui convient)
•   Solution name: Blink
•   --> OK
•   Device Selection: choisir votre Atmega
•   --> OK

Copie des fichiers Arduino
•   Dans Windows, créer le répertoire AVR_Studuino : ….…\Mes documents\AVRStudio\AVR_Studuino
•   Copier dans AVR_Studuino tous les fichiers du répertoire C:\Program Files\arduino-0022\hardware\arduino\cores\arduino
•   Copier dans AVR_Studuino le répertoire entier C:\Program Files\arduino-0022\libraries
•   Ouvrir l’IDE Arduino et charger le sketch « Blink »
•   Copier le sketch et le coller à la place du programme par défaut de Studio
•   Dans Studio, ajouter "#include <WProgram.h>" au-dessus de void setup()
•   Dans l'IDE Arduino, compiler le sketch Blink. Laisser l'IDE ouverte
•   Aller dans le répertoire C:\Documents and Settings\Jeannot\Local Settings\Temp\build……………...tmp
•   Copier le fichier « core.a » dans le répertoire AVR_Stduino et le renommer « libcore.a »
•   Copier C:\Program Files\arduino-0022\hardware\tools\avr\bin\avrdude.exe dans ….…\Mes documents\AVRStudio\AVR_Studuino
•   Copier C:\Program Files\arduino-0022\hardware\tools\avr\etc\avrdude.conf dans ….…\Mes documents\AVRStudio\AVR_Studuino

Inclusion dans Studio des chemins d’accès à ces répertoires
•   Studio : menu Project --> Properties --> onglet Toolchain --> AVR/GNU C++ Compiler --> Directories --> bouton Include
•   Dans la fenêtre “Add Include Paths“, introduire le répertoire  ….…\Mes documents\AVRStudio\AVR_Studuino et décocher la case « Relative Path »
•   Introduire également  les répertoires des librairies à utiliser dans ce projet. Exemple : ……\Mes documents\AVRStudio\AVR_Studuino\libraries\Wire

Modification du fichier « makefile »
•   Menu Project --> Properties --> onglet Toolchain --> AVR/GNU C++ Linker --> Miscellaneous
•   Ecrire dans la fenêtre les paramètres suivant : -Wl,-lcore -Wl,-L"……..\Mes documents\ AVRStudio\AVR_Studuino"  
•   Menu général Build --> Build Blink
•   Ouvrir le fichier ……..\Mes documents\AVRStudio\Blink\Blink\Debug\Makefile avec Notepad. Ne pas cocher « Retour automatique à la ligne
•   Dans Notepad, menu Edition --> Rechercher.  Introduire dans la fenêtre WL
•   Déplacer la séquence  -Wl,-lcore -Wl,-L"……..\Mes documents\ AVRStudio\AVR_Studuino"  à la fin de la ligne
•   Sauvegarder le fichier Makefile et fermer Notepad
•   Dans Studio, menu Project --> Properties --> onglet Build
•   Cocher la case “Use External Makefile” et  entrer le chemin d’accès à Makefile :  ……..\Mes documents\AVRStudio\Blink\Blink\Debug\Makefile  

Vérification que la compilation se fait sans erreur
•   Menu général Build --> Build Blink
•   En cas d’erreur, vérifier méticuleusement tous les points ci-dessus avant de continuer

Intégration de la commande d’upload
•   Menu Tools --> External Tools
•   Title : Upload Arduino (peut être modifié)
•   Command : ……….\Mes documents\AVRStudio\AVR_Studuino\avrdude.exe
•   Arguments : -C "………….\Mes documents\AVRStudio\AVR_Studuino\avrdude.conf" -v -v -p atmega328p -c stk500v1 -P COM3 -b 57600 -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i
•   Attention d’adapter –p atmega328p au microcontrôleur utilisé
•   Ne pas cocher « Use Output window »
•   Cocher  “Prompt for arguments”
•   Ne pas cocher “Close on exit”
•   Cliquer « OK »

Vérification que l’upload se fait correctement
•   Menu Tools --> Upload Arduino
•   Possibilité de modifier les paramètres d’avrdude
•   Cliquer « OK »
•   Une fenêtre DOS s’ouvre et montre le travail d’avrdude

________________________________________________________________________________________

Ci-dessous l'ensemble de la procédure sous forme de pdf





* Studuino.pdf (30.45 KB - downloaded 55 times.)
« Last Edit: December 09, 2011, 06:10:44 pm by Jean-Marie » Logged

Amicalement, Jean-Marie

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Attention, la procédure et le pdf ont été corrigé à minuit 10 minutes car il manquait la ligne suivante:
•   Dans Studio, ajouter "#include <WProgram.h>" au-dessus de void setup()

Veuillez vérifier que vous avez cette ligne.
Logged

Amicalement, Jean-Marie

Belgique - Arlon
Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

An English summary is available at this address:
http://arduino.cc/forum/index.php/topic,82577.0.html
Logged

Amicalement, Jean-Marie

Pages: 1 [2] 3 4 ... 6   Go Up
Jump to: