eclipse avrdude et mega pas cool

ben voila, je vais prendre une mega, j'installe eclipse et tout le toutim et bien entendu la carte mega à 16khz n'est pas supporté par avrdude...

quelqu'un a reussis a configurer eclispse avec ?

sinon résolu a coder dans eclipse et compiler avec l'ide arduino...

bien entendu la carte mega à 16khz n'est pas supporté par avrdude...

Il aurait mieux valu écrire "je n'ai pas trouvé la référence au micro de la carte Mega", car l'Atmega2560 est bien supporté et à la fréquence désirée.
Ce n'est pas bon de s'agacer cela fait écrire des bétises.

Ce qu'il faut bien comprendre c'est que l'éco-système arduino n'a stictement rien de professionnel et n'est pas reconnu en tant que tel dans les IDE de rang professionnel. De toute façon ces IDE ne connaissent que les micro-controleurs, il n'y a aucune raison qu'ils connaissent les produits finis à base de ces micros.
Ce que je viens d'écrire n'est en rien méprisant : l'IDE processing/wiring/arduino etc a le mérite de permettre, à des néophytes dans le domaine des micro-controleurs, de débuter sans se heurter à des murs. Mais elle à les inconvénients de ses avantages elle est très rudimentaire.

Donc si tu veux utiliser Eclipse il faut installer Eclipse-cdt pour programmer en C/C++ et le plugin avr téléchargeable sur sourceforge.

Ensuite pour avoir des fichiers *.hex les plus petits possible il faut :

  • supprimer toutes les informations de débogage, au moins en mode release.
  • ajouter aux compilateurs C et C++ les options "-ffunction-sections" et "-fdata-sections"
  • ajouter au linker l'option "-Wl,--gc-sections"
    Contrairement a ce que j'ai toujours lu il ne faut pas se contenter de passer l'option "-Wl,--gc-sections" avec celle des compilateurs il faut absolument la mettre dans la partie linker.

Si tu veux utiliser les bibliothèques arduino tu auras tout intérêt a te créer une bibliothèque statique.
Pour le fichier main.cpp un squelette avec les ordres qui vont bien est présent dans le répertoire de l'IDE arduino qui contient les fichier *.h , *.c, *.cpp

Quelques liens qui m'ont aidés:

Attention les exemples sont pour des versions de bibliothèque arduino précédent la 1.0 .
A partir de la version 1.0 changer #include "WProgram.h" par #include "Arduino.h"

merci de ta réponse mais tout cela est déjà fait...

et c'est bien en configurant l'avr et donc en choisissant le mcu type atmega2560 et en réglant la frequence de l'horloge a 16khz que le message "this mcu is not supported by avrdude" apparait bloquant toute compilation pour cette carte...
la 2560 ne semble pas supportée, alors que par exemple la uno elle semble passer a en lire certains post.

et t'inquiete j'ai bien compris que l'arduino n'avait rien d'une programmation au sommet mais comme tu le dis cela de rentrer plus facilement dans "l'électronique".

Je n'ai pas de 2560 mais je confirme que le 328p passe bien.

A tu vérifié que tu as bien la dernière version d'avrdude ?
Parce que l'IDE Arduino utilise avrdude c'est donc que le micro est supporté.
Si tu as lu la doc technique d'avrdude tu as pu constater que le 2560 est dans la liste des micro supportés.

Un point dont je ne m'étais pas rendu compte : tu parle d'une horloge à 16kHz.

C'est bien une erreur de frappe et tu voulais écrire 16MHz parce qu'effectivement je ne suis pas sûr que le 2560 fonctionne à 16 kHz

Bonjour,

Je sait pas d'où tu sort ta version d'avrdude mais elle doit être sacrément vieille !
L'atmega2560 est bien supporté par avrdude (et utilise le protocole STK500v2 pour être précis).
Du reste l'ide arduino ne pourrait pas fonctionner avec l'arduino mega2560 si ce n'était pas le cas.

(...)
m2561 = ATMEGA2561 [c:\MHVAVRTools\bin\avrdude.conf:11822]
m2560 = ATMEGA2560 [c:\MHVAVRTools\bin\avrdude.conf:11629]
m1281 = ATMEGA1281 [c:\MHVAVRTools\bin\avrdude.conf:11441]
m1280 = ATMEGA1280 [c:\MHVAVRTools\bin\avrdude.conf:11252]
m640 = ATMEGA640 [c:\MHVAVRTools\bin\avrdude.conf:11064]
(...)

je vous ferais une capture écran c'est le mieux !

entre temps j'ai trouve un plugin "arduino" et la tout semble bien mieux passer !

je vous ferais un retour.

Oui mais avec un plugin "Arduino" qui est une oeuvre individuelle tu es dépendant de l'auteur.
Tant qu'il s'en occupe c'est bien mais souvent les aléas de la vie (mariage, arrivée des enfants, etc ) font que si le projet n'est pas OpenSource et soutenu par une équipe capable de prendre le relais l'impasse est en vue en cas d'évolution des bibliothèques Arduino.

Alors que simplement en configurant Eclipse soi même : en fait on fait à la main ce que le plugin fait en automatique, on reste maître et indépendant.

salut a tous, voici donc le message que j'ai, j'en suis a ma quatrieme installation...
donc je tente une fois de plus (je désespère pas) : John Arrizza wiki à suivre

pour info : W7 64 bits, eclipse juno, avr plug in (derniere version : AVR Eclipse Update Site), avr (WinAVR download | SourceForge.net) ...

À mon avis c'est le plugin eclipseAVR qui n'est pas à jour ...

Pour coder sur AVR avec eclipse j'utilise pas de plugin personnellement ...
J'ai juste Eclipse Juno version CDT (pour C/C++) de base.

Pour faire un code AVR il suffit de faire :

  • projet d'exécutable "cross gcc" -> configuration du prefix "avr-" et du path, ajout des flags de compilation dans les propriétés du GCC/G++ et de LD et pour avrdude il suffit de faire un script "post-build".
  • ou sinon plus simple (c'est ce que je fait) : un bête projet avec makefile "fait main", ça marche que tu fasse du code pour AVR, MSP430, ARM, x86 ou n'importe quoi d'autre.

ben il te reste juste a faire un article sur ton site ]:smiley:

Ce n'est pas un problème Eclipse ou de plugin à jour ou pas.
De toute façon il provient de chez sourceforge donc c'est la dernière version !

Le message le dit clairement c'est un problème avrdude seulement.
Ou plutôt un problème d'avrdude.conf puisque c'est dans ce fichier que l'on peut ajouter des nouveaux microcontroleur.

D'où provient cet avrdude ?

Pour moi le mieux c'est de télécharger la dernière mouture de l'IDE (1.03, pas la 1.5 qui est encore expérimentale) et tu aura la version d'avrdude (et avrdude.conf) qui sera garantie fonctionnelle avec le 2560 puisque c'est celle là que l'IDE arduino utilise.

fred133084:
ben il te reste juste a faire un article sur ton site ]:smiley:

Pourquoi pas ... j'ai d'autre truc de prévu pour le moment mais si j'ai le temps ça pourrai être une idée d'article sympa :wink:

\arduino-1.0.3\hardware\

je suis bien en 1.0.3 =(
serais ce la version 64 bits ? je crois avoir lu a un moment un article parlant d'un probleme en 64 bits ...

Peut-être ?
Je suis aussi en 64 bits mais avec Linux :grin:

bahhh j'ai que des os win

je teste sur une autre machine ... ben c'est pas mieux, j'ai aussi testé en 32 bit pareil... brr

je vais y arriver je vais y arriver !!! (ou pas)

java.lang.NullPointerException
at de.innot.avreclipse.ui.preferences.AVRDudeConfigEditor.addProgrammersComposite(AVRDudeConfigEditor.java:332)
at de.innot.avreclipse.ui.preferences.AVRDudeConfigEditor.createDialogArea(AVRDudeConfigEditor.java:162)
at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:760)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
at org.eclipse.jface.dialogs.StatusDialog.create(StatusDialog.java:203)
at org.eclipse.jface.window.Window.open(Window.java:790)
at de.innot.avreclipse.ui.preferences.ProgConfigListFieldEditor.editButtonAction(ProgConfigListFieldEditor.java:465)
at de.innot.avreclipse.ui.preferences.ProgConfigListFieldEditor.access$7(ProgConfigListFieldEditor.java:429)
at de.innot.avreclipse.ui.preferences.ProgConfigListFieldEditor$4.widgetSelected(ProgConfigListFieldEditor.java:371)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:215)
at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:65)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1029)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:923)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)

bahhh j'ai que des os win

Tout le monde ne peut pas être parfait :grin:

je vais y arriver je vais y arriver !!!

Mais bien sûr que oui :grin:
Quand c'est trop facile ce n'est pas drôle, au moins quand tu y sera arrivé on verra que le chef n'est pas un insignifiant bout de programme mais l'interface chaise clavier ! :grin:

Tes messages d'erreur je n'y comprends rien mais n'y aurait-il pas un soucis de compatibilité de version avec la machine virtuelle Java : le jre ?
Dans le monde des fenêtres volantes c'est à toi a t'assurer des compatibilités entre les versions des différents programmes, sur ma banquise mon pingouin le fait pour moi.

bon trouvé !! j'en peux plus !! heureusement que je travaillais pas aujourd'hui ! sinon mon chef m'aurait viré lol

donc j'ai résolu le soucis avec deux trucs :

  1. re créer un workspace
  2. re installer l'ide arduino ...

faut le vivre quand même !!

bon je vais pouvoir passer a l'étape suivante ...

fred133084:
donc j'ai résolu le soucis avec deux trucs :

  1. re créer un workspace
  2. re installer l'ide arduino ...

faut le vivre quand même !!

Ralala, installer directement la toolchain avr-gcc et minGW aurait demandé moins de temps :grin:

bien le bonjour matinal, un week end d'apprentissage commence !

skywood > lol je veux bien te croire mais faut il encore savoir ce qu'on fait :wink: je découvre l'avr et le cpp que je n'ai plus pratiqué depuis 15 ans minimum c'est pour dire ! J'ai un peu tout oublié... dans quelques semaines (j'espère) pouvoir faire comme toi :wink:

alors deux dernières questions (ah ah ah je me fais rire moi même) avant de commencer mon WE a apprendre le code arduino ! :

  • dans le tools settings du build d'eclipse je me retrouve avec plein de config :
    AVR Assembler
    AVR Compiler
    AVR C++ Compiler
    AVR C++ Linker
    AVR Create Extended Listing
    AVR Create Flash Image
    AVR Create EEPROM image
    Print Size

que puis je "dégager" ?? sachant que je suis en c++ ?

  • pour mes librairies... j'ai donc compilé l'arduino core que j'importe dans mon projet, concernant mes propres librairies, j'ai pu lire que certains compilés dans un projet a part, d'autre mettez directement les cpp et h dans leur projet... que faites vous ?

merci !!

fred133084:
skywood > lol je veux bien te croire mais faut il encore savoir ce qu'on fait :wink: je découvre l'avr et le cpp que je n'ai plus pratiqué depuis 15 ans minimum c'est pour dire ! J'ai un peu tout oublié... dans quelques semaines (j'espère) pouvoir faire comme toi :wink:

Je comprend bien, c'était juste pour te faire râler :grin:

fred133084:
que puis je "dégager" ?? sachant que je suis en c++ ?

Rien, laisse tout par défaut, normalement tu n'as rien à modifier dans la configuration du build si ton plugin fait les choses correctement.

fred133084:

  • pour mes librairies... j'ai donc compilé l'arduino core que j'importe dans mon projet, concernant mes propres librairies, j'ai pu lire que certains compilés dans un projet a part, d'autre mettez directement les cpp et h dans leur projet... que faites vous ?

C'est ce que je fait, chaque librairies + core dans un projet séparé que je met en dépendance de mon projet principal.
Mettre les fichiers des librairies dans le projet directement ça oblige à garder des copies de plusieurs fichiers dans plusieurs projets ... bof bof ...