Go Down

Topic: [Résolu] Intégration du langage Arduino dans AVR Studio 5 (Read 26 times) previous topic - next topic

Jean-Marie

Hello capswiz, gerse et skywodd

Je suis bien content que ce topic se réveille. j'ai hâte d'essayer les variantes proposées, en particulier la solution de capswiz, car, étant toujours bloqué par l'utilisation des librairies sous Studio5, je n'avais que la solution d'utiliser l'IDE 022 ordinaire.

Ceci dit, j'ai aussi une double si pas une triple vie en période de fêtes. D'ailleurs, je souhaite à tous de passer un excellent réveillon de nouvel an et je donne rendez-vous aux survivants pour commencer une année 2012 très hard (oui/no ?)
Amicalement, Jean-Marie

capswiz


Pour la compilation tu compile en static avec une dépendance au projet principal je suppose ?


Ben non, c'est encore plus bête que ça, je copie dans chaque projet de la solution l'ensemble des fichiers de la librairie arduino...  :smiley-red:  Et pour commencer une nouvelle solution je copie l'intégralité du dossier pour pas me retaper à chaque fois l'ajout des fichiers de la librairie dans le projet... Avec les disques durs actuels, on compte plus au gaspillage de méga-octets...  :)
C'est vrai que ce serait plus malin de faire, dans une même solution, un projet avec les librairies et deux autres projets pour les deux modules arduino que je fais communiquer... J'essaierai.


... tu viens de résoudre mon probléme de linkage ... c'est sur que si les fichiers sont pas compilé ça marche beaucoup moins bien :smiley-yell:


Bien content d'apporter ma très modeste contribution

Jean-Marie

Hello les amis,

Contrairement aux idées reçues, j'ai consacré une partie du 31 décembre et du 1er janvier à faire des essais avec Studio5. (Par contre, aujourd'hui, j'étais absent toute la journée).

J'ai tout d'abord essayé de suivre les indications de capswiz. Quelque chose doit m'échapper mais impossible de faire reconnaître la librairie (essai avec OneWire). Tu devrais donner plus de détails sur l'emplacement de ton répertoire « core » et tes paramètres  de la tool chain.

J'ai ensuite essayé le conseil de Skywodd (« avr-gcc -c trucmachin.cpp -o trucmachin.o » en ligne de commande). Plusieurs essais dans différents répertoires avec copie préalable des fichiers à précompiler dans le répertoire de travail. Rien à faire. Voici la réponse :



Skywodd, ne serait-ce pas plutôt avr-g++ ou avr-c++ qu'il faudrait utiliser, à la place d'avr-gcc ?

Je suis bien conscient que je n'y connais rien dans la suite des tool-chains d'avr-gcc, avr-g++ ou avr-c++.
L'utilisation de make et les paramètres de makefile restent pour moi dans le flou le plus complet. Je ne suis pas en mesure de comprendre ce qui apparaît dans l'Output d'un build. Quelqu'un pourrait-il me renseigner un document bien fait qui pourrait me lever un coin du voile de toute cette nébuleuse héritée de Linux ?


Il faut quand même que je vous relate un épisode pour le moins bizarre. Voici les faits. Dimanche soir, ayant (vaguement) entendu parler des fichiers .o , je tente l'expérience de compiler dans l'ide arduino le sketch blink auquel j'ai ajouté la librairie OneWire. Puis je vais voir le résultat de la compilation (comme pour obtenir le fichier core.a). Je trouve un sous-répertoire OneWire contenant un fichier « OneWire.cpp.o ».
Je copie ce fichier, je l'ajoute au répertoire Debug du projet Studio5 et je relance un Build. Là, c'est la surprise !!!!!  L'opération réussit. Je n'en crois pas mes yeux. Je relance une nouvelle fois un rebuild pour être sûr : à nouveau réussi. J'ai failli sauter sur le forum pour annoncer la bonne nouvelle. Mais avant, j'ai voulu m'assurer de tous les paramètres que j'avais choisi. Je retourne dans les properties du projet, je décoche « Use External Makefile » et je vais dans Toolchain.
Mes paramètres sont :
Pour C++ Compiler :



Pour C++ Linker :



Je recoche la case « Use External Makefile » et je m'assure que mon makefile du répertoire Debug possède la correction (report en fin de ligne du paramètre -Wl,-lcore -Wl,-L"C:\Documents and Settings\Jeannot\Mes documents\AVRStudio\AVR_Studuino")

Après ces vérifications, je fais un dernier rebuild du programme avant d'aller sur le forum. DAWNED !!! La même erreur que d'habitude :




Depuis, j'ai refais de multiples essais. Je ne suis plus parvenu à un succès.
Je laisse ce mystère à votre sagacité, mais je commence à me demander s'il ne vaudrait pas mieux attendre la version suivante de Studio5.

Je voudrais quand même repartir sur l'expérience de capswiz et éventuellement éviter de recompiler à chaque fois les fichiers courants en les remplaçant par le libcore.a qui semble bien marcher chez moi. Ce sont les librairies additionnelles que je n'arrive pas à faire reconnaître.
Amicalement, Jean-Marie

Jean-Marie

#43
Jan 03, 2012, 06:13 pm Last Edit: Jan 03, 2012, 06:17 pm by Jean-Marie Reason: 1
Les gars

J'ai de nouveau réussi !!!

3 x de suite


Cette fois, j'ai pris soin de ne toucher à RIEN sauf ce qui était nécessaire pour tout photographier et tout copier.

Encore un peu de patience, je vous prépare un topo avec le maximum d'information et de photos.

Pour ceux qui se débrouillent avec la langue de chèque spire, ils peuvent déjà consulter le site suivant: http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/
Amicalement, Jean-Marie

skywodd


Contrairement aux idées reçues, j'ai consacré une partie du 31 décembre et du 1er janvier à faire des essais avec Studio5. (Par contre, aujourd'hui, j'étais absent toute la journée).

Quel courage, moi j'étais pas frais pour faire de l'arduino ces jours là :smiley-sweat:


J'ai ensuite essayé le conseil de Skywodd (« avr-gcc -c trucmachin.cpp -o trucmachin.o » en ligne de commande). Plusieurs essais dans différents répertoires avec copie préalable des fichiers à précompiler dans le répertoire de travail. Rien à faire. Voici la réponse :



Skywodd, ne serait-ce pas plutôt avr-g++ ou avr-c++ qu'il faudrait utiliser, à la place d'avr-gcc ?

Tu utilise la cmd de windows et lors de l'installation de WinAvr tu n'as pas du cocher "Append to path", donc le dossier C:\WinavrXXXXXXXXX\bin n'est pas dans ta variable PATH et par conséquent le chemin vers avr-gcc est inconnu pour la cmd.
Pour en avoir le coeur sur fait echo %PATH% si tu vois c'est qu'il y a anguille sous roche :)
PS: avr-g++ c'est le compilateur c++, mais avr-gcc sait tout seul en quoi compiler (c ou c++) en ce basant sur l'extension de fichier.
PPS: tu devrais installer MinGW (+Msys) c'est une console "unix like" avec plein d'utilitaires gnu-linux bien pratique ;)


Je suis bien conscient que je n'y connais rien dans la suite des tool-chains d'avr-gcc, avr-g++ ou avr-c++.
L'utilisation de make et les paramètres de makefile restent pour moi dans le flou le plus complet. Je ne suis pas en mesure de comprendre ce qui apparaît dans l'Output d'un build. Quelqu'un pourrait-il me renseigner un document bien fait qui pourrait me lever un coin du voile de toute cette nébuleuse héritée de Linux ?

Toute les doc que j'ai sont en anglais très technique :~ si j'ai le temps je regarderai de faire un petit article sur les makefiles et (si possible) sur les output de compilation mais pour le moment je garanti rien.


Depuis, j'ai refais de multiples essais. Je ne suis plus parvenu à un succès.
Je laisse ce mystère à votre sagacité, mais je commence à me demander s'il ne vaudrait pas mieux attendre la version suivante de Studio5.

Tu te retrouve avec une erreur de linkage comme moi avec la libcore.a :~ ils ont modifié un truc entre Studio 4 et Studio 5 c'est pas possible, à la main avec makefile ça marche nikel, le même makefile sus Avr Studio -> erreur de linkage ... :smiley-yell:
Du coup je réfléchi à faire un truc, crée une librairie statique avec dépendance du core arduino, et m'en servir telle quelle sans précompilation mais quelque chose me dis qu'il va y avoir un probléme de linkage :smiley-roll:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Go Up