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
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.
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
À 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.
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.
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)
Mais bien sûr que oui
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 !
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.
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 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
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 ?
fred133084:
skywood > lol je veux bien te croire mais faut il encore savoir ce qu'on fait 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
Je comprend bien, c'était juste pour te faire râler
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 ...