So, nachdem die Beta Version ca. 100 mal runtergeladen wurde und es
keinen Aufschrei gegeben hat, gehe ich mal davon aus, dass keinen
massiven Bugs mehr drin waren.
Gegenüber der Beta 2.1 hat es folgende Änderungen gegeben:
- Dokumentation an die Version 2.1 angepasst
und als kurzfristig noch aufgenommenes neues Feature:
- Ein an avr-gcc angepasstes Discovery Profile.
Damit ermittelt Eclipse die in den Compiler fest eingebauten Pfade und
Symbole. Bei neuen Projekten wird es automatisch verwendet, bei alten
Projekten muss es per Hand über "Project Properties -> C/C++ Build ->
Discovery" ausgewählt werden (es ist schon ausgewählt, aber man muss
noch per hand auf "Configuration" umstellen damit es auch funktioniert -
warum auch immer).
Download wie immer entweder über die Update Site:
http://avr-eclipse.sourceforge.net/updatesite/
oder direkt bei Sourceforge:
https://sourceforge.net/project/showfiles.php?group_id=189165
Feedback ist natürlich willkommen.
Thomas
Anbei noch die Release Notes. Das komplette Changelog ist hier zu
finden:
http://avr-eclipse.sourceforge.net/changelog.html#changelog
Hallo Thomas
Ich habe das Update auf version 2.1 gemacht habe meine Projekte
convertiert und nun kommt in der seite AVR Target Hardware "The
Currently displayed Page contains invalide Values"
schon mal von diesme Fehler berichtet worden ? oder ne idee woran es
liegen könnte.
Habe auch mal die alte versionen von dem Plug in und dem Projekt
hergestellt . das Plugin deinstalliert und die neue version installiert.
gleiches ergebniss.
weiterhin kommmt wenn ich auf der seite C/C++ Build Discovery options
etwas ändern will "An Error has ocurred. See error log for more details"
habe da was gefunden, weiß aber nicht obs das is ...
!SESSION 2008-02-12 17:34:49.312
-----------------------------------------------
eclipse.buildId=M20071023-1652
java.version=1.6.0_03
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments: -os win32 -ws win32 -arch x86
!ENTRY org.eclipse.jface 4 2 2008-02-12 17:35:08.953
!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.jface".
!STACK 0
java.lang.ClassCastException:
org.eclipse.cdt.internal.core.model.CProject cannot be cast to
org.eclipse.core.resources.IProject
at
de.innot.avreclipse.ui.propertypages.AVRHardwarePropertyPage.createConte
nts(AVRHardwarePropertyPage.java:118)
at
org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage
.java:233)
at
org.eclipse.jface.preference.PreferenceDialog.createPageControl(Preferen
ceDialog.java:1456)
at
org.eclipse.jface.preference.PreferenceDialog$13.run(PreferenceDialog.ja
va:1213)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
at
org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.
java:1207)
at
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(Filter
edPreferenceDialog.java:433)
at
org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(Prefere
nceDialog.java:698)
at
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:8
42)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
at
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(Stru
cturedViewer.java:840)
at
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredVi
ewer.java:1153)
at
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredVi
ewer.java:1178)
at
org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.
java:250)
at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:244)
at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:418)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:
123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at
org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.jav
a:156)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Ac
tionContributionItem.java:546)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContribut
ionItem.java:490)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionCont
ributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:
289)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:4
61)
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplicat
ion.java:106)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.j
ava:169)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplicat
ion(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Eclip
seAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
176)
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:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Ich mach erstmal mit der alten version weiter vielleicht findest du das
Problem ...
Gruß Stefan
Hallo Stefan,
vielen Dank für Deinen Bug-Report. Du hast da einen echten Bug gefunden,
der zwar schon mal reported wurde, den ich damals aber nicht
nachvollziehen konnte.
Dank Deines Logs konnte ich den Fehler aber sofort finden!
Der Fehler tritt dann auf, wenn man die Properties aus der Ansicht
"C/C++ Projects" auswählt.
Der Workaround ist sehr einfach: Nimm bitte den "Project Explorer" um
die Projekte anzuzeigen. Ich habe es zwar nicht ausgiebig getestet, aber
es scheint, dass der Project Explorer - abgesehen von einer anderen
Reihenfolge des Context Menus - keinen Unterschied zur Ansicht "C/C++
Projects" hat. (Siehe Screenshot)
Ich habe den Fehler auch schon im Sourcecode komplett behoben, aber da
es einen guten Workaround gibt werde ich den Bugfix erst mit dem
nächsten Release veröffentlichen (2.1.1 wenn noch mehr Fehler
auftauchen, sonst 2.2)
Gruss,
Thomas
Hab das jetzt mal getestet, funktioniert ganz gut soweit, Danke!
Die Binarys sind etwas größer als mit Winavr, aber das ist wohl nur ne
Frage der Compilerflags.
Gibt es eigentlich keine Möglichkeit das Binary auf Knopfdruck direkt
aus Eclipse in den AVR zu bekommen?
Gruß,
Thomas
> Die Binarys sind etwas größer als mit Winavr, aber das ist wohl nur ne> Frage der Compilerflags.
Ja. Hat nichts mit dem Plugin zu tun.
> Gibt es eigentlich keine Möglichkeit das Binary auf Knopfdruck direkt> aus Eclipse in den AVR zu bekommen?
Du mußt Dir AVRDUDE oder auch AVaRICE als external Tool in Eclipse
einbinden. Dann tritts Du auf den Button und ab geht es in den AVR.
Hajo
Naja, ich kann nun mein Projekt mit dem neuen Plugin nicht mehr
compilieren.
Da passiert irgend ein Mist mit F_CPU und MCU-Type im makefile. Wie bzw.
wo kann ich die richtige CPU+Frequenz einstellen? Und wie linke ich die
AVR-spezifische libm dazu, statt der generischen GNU libm? (Die sollte
eigentlich IMMER schon als default mit dabei sein)
-------------------------
**** Build of configuration Release for project webserver ****
make all
Building file: ../3c5x9.c
Invoking: winAVR Compiler
avr-gcc -Wall -O1 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char
-funsigned-bitfields -fgnu89-inline -mmcu=atmega16 -DF_CPU=1000000UL
atmega128 14745600 -MMD -MP -MF"3c5x9.d" -MT"3c5x9.d" -c -o"3c5x9.o"
"../3c5x9.c"
avr-gcc.exe: atmega128: No such file or directory
avr-gcc.exe: 14745600: No such file or directory
make: *** [3c5x9.o] Error 1
Peter wrote:
> wo kann ich die richtige CPU+Frequenz einstellen? Und wie linke ich die> AVR-spezifische libm dazu, statt der generischen GNU libm? (Die sollte> eigentlich IMMER schon als default mit dabei sein)
In Eclipse:
Project-Properties.C/C++Build.Settings.WinAVRLinker,Libraries:
Hier einach die libm (also nur das m) eintragen.
Unter Project-Properties.C/C++Build.Settings
findest Du ja auch alle anderen Einstellungen (F_CPU, MCU) für Dein
Projekt.
Hast Du sie dort gesetzt?
Hajo
Peter wrote:
> Naja, ich kann nun mein Projekt mit dem neuen Plugin nicht mehr> compilieren.>> Da passiert irgend ein Mist mit F_CPU und MCU-Type im makefile.
Hallo Peter,
Der Fehler ist normal wenn man ein Project mit Version 2.0.x erstellt
und dann die 2.1 installiert. Einfach mal Project->Convert To...
aufrufen und das Project auf 2.1 upgraden, dann sollte es wieder normal
gehen.
> Wie bzw.> wo kann ich die richtige CPU+Frequenz einstellen? Und wie linke ich die> AVR-spezifische libm dazu, statt der generischen GNU libm? (Die sollte> eigentlich IMMER schon als default mit dabei sein)
In dem Bereich kenne ich mich nicht so gut aus. Aber es scheint das
AVR-LIBC da nicht ganz sauber ist (vulgo Buggy - siehe
http://savannah.nongnu.org/bugs/?18169)
Ein anderer User hat mir dazu folgendes geschrieben:
1
The workaround is to
2
1) add the "-lm" flag in "AVR C Linker >General>Other Arguments"
3
2) add the "m" library in "AVR C Linker >Libraries>Libraries (-l)"
4
(this is a hack to add the "-lm" flag at the end of the link command)
5
6
What I don't understand is that 1) nor 2) work by itself, you must use both, wich is weird.
Wenn ich mal wieder etwas Zeit habe werde ich mich mal intensiver mit
dem libm Problem befassen und versuchen zu verstehen, was da passiert
und wie ich es im Plugin abdecken kann.
brgds
Thomas
>> ------------------------->>> **** Build of configuration Release for project webserver ****>> make all> Building file: ../3c5x9.c> Invoking: winAVR Compiler> avr-gcc -Wall -O1 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char> -funsigned-bitfields -fgnu89-inline -mmcu=atmega16 -DF_CPU=1000000UL> atmega128 14745600 -MMD -MP -MF"3c5x9.d" -MT"3c5x9.d" -c -o"3c5x9.o"> "../3c5x9.c"> avr-gcc.exe: atmega128: No such file or directory> avr-gcc.exe: 14745600: No such file or directory> make: *** [3c5x9.o] Error 1
Thomas Holland wrote:
> In dem Bereich kenne ich mich nicht so gut aus. Aber es scheint das> AVR-LIBC da nicht ganz sauber ist (vulgo Buggy - siehe> http://savannah.nongnu.org/bugs/?18169)
???????? Das Plugin deckt das doch ab. So funktioniert es bei mir.
Habe es gerade nochmal geprüft. Wenn man 'm' unter Libraries einträgt,
dann wird die Linkerzeile mit -lm am Ende erzeugt. Und es gehört ans
Ende, wie ich gelernt habe.
Siehe mein Posting oben.
Hajo
Frag mich bitte nicht warum, aber bei einem kurzen Test hat der Linker
deutlich kürzeren Code erzeugt, wenn -lm zwei mal in der Command Line
war.
Im Disassembler konnte man sehen, dass andere __fix.... Funktionen für
die konvertierung int -> float benutzt wurden.
Das ganze könnte von der verwendeten AVR-LIBC abhängen und nicht bei
jedem gleich aussehen.
Thomas
Danke für die Feedbacks!
>Der Fehler ist normal wenn man ein Project mit Version 2.0.x erstellt>und dann die 2.1 installiert. Einfach mal Project->Convert To...>aufrufen und das Project auf 2.1 upgraden, dann sollte es wieder normal>gehen.
Ist nun okey! Ich musste jedoch ein ganze Weile suchen, bis ich das
Richtige Project->Convert To... gefunden hatte. Ich hatte es im
[Projekt] Dropdown-Menue vermutet und gesucht, bis ich mal zufällig mit
der rechten Maustaste auf die Projektdatei im Projekt-Navigator klickte
>In Eclipse:>Project-Properties.C/C++Build.Settings.WinAVRLinker,Libraries:>Hier einach die libm (also nur das m) eintragen.
Okydoky, -lm geht! Ich hatte es fälschlicherweise mit -libm versucht...
>In dem Bereich kenne ich mich nicht so gut aus. Aber es scheint das>AVR-LIBC da nicht ganz sauber ist (vulgo Buggy - siehe
Die aktuelle avr-libc 1.4.8 sollte nun wieder sauber sein. Die AVR-libm
(-lm) ist soviel ich weiss immer besser als die Standart GNU-libm.
MfG Peter
Peter wrote:
>> Die aktuelle avr-libc 1.4.8 sollte nun wieder sauber sein. Die AVR-libm> (-lm) ist soviel ich weiss immer besser als die Standart GNU-libm.
Das liegt darn, dass die avr-libc natürlich Funktionen enthält,
die an den AVR angepaßt und für diesen optimiert sind.
Warum bei Thomas zweimal -lm noch kürzeren Code erzeugt,
dass weiß evtl. Jörg Wunsch :-)
Die V1.4.8 ist nicht die aktuelle Version.
Hajo
Peter wrote:
> @Hajo>> Welches ist denn die aktuellste Version? Die V1.4.8 ist vom 28. Januar> 2008, ich finde keine neuere:
Nun bin ich auch etwas verwirrt. Ich dachte die 1.6.1 ist die aktuelle
Version. Die 1.4.8 scheint aber nur noch ein Bugfix-Release der 1.4.x
Serie zu sein.
Die 1.6.1 hat aber Bugs mit den Fließkommafunktionen. Bläht den Code auf
u.s.w. Dazu gibt es einen Thread. Wo ist er nur???
Mal sehen ob Jörg mithört und was zur V1.4.8 schreibt ;-)
Hajo
Ich verwende das Plugin und auch den AVR Simulator. Beim Debuggen
funktioniert jedoch der "Step Over" nicht korrekt. Er springt immer in
die Funktion, anstatt drüber. Ich weiß nicht ob das ein Problem das
Plugins ist, oder mehr das Problem des AVR Simulators.
Kennt jemand das Problem?
Hallo Andreas,
ich kenne mich mit dem Thema Debugging noch nicht so aus (kommt erst
später ins Plugin), aber mir hat mal ein User geschrieben, dass das
Zylin GDB for Embedded Plugin besser funktionieren soll als die bei
Eclipse/CDT mitgelieferten GDB Debug Profiles.
Probier es doch mal aus:
http://www.zylin.com/embeddedcdt.html
brgds
Thomas
Andreas wrote:
> funktioniert jedoch der "Step Over" nicht korrekt. Er springt immer in
Das Problem besteht auch, wenn Du echte Hardware verwendest. Mit dem
JTAG ICE MKII sowie mit dem Drgaon.
Ich glaube sogar mit dem AVR-Studio unter C, bin mir aber nicht
mehr sicher. Liegt evtl. am AVR-GDB.
Du must einen Breajpoint hinter dem CALL setzen und dann "GO".
Einen anderen Workaround kenne ich auch nicht.
Hajo
Hallo Thomas,
habe jetzt auch meine Projekte nach 2.1 konvertiert und habe folgende
Anmerkungen:
- Wo kann ich die Einstellungen der MCU und des Prozessortaktes für ein
Library Project vornehmen?
- Da ich für meine Bibliothek und teilweise auch für die Anwendung
mehrere Build Configurations verwende, um sie für unterschiedliche
Prozessoren und Taktfrequenzen zur Verfügung zu haben, bin ich mit der
neuen Version leider aufgeschmissen, da dies jetzt global eingestellt
wird.
Hoffe deshalb, daß die Umstellung bald erfolgt. Solange werde ich dann
mit der 2.0 Version weiterarbeiten, die bei mir einwandfrei läuft.
Beste Grüße
Sven
Hi Sven,
vielen Dank für Deine Infos.
> - Wo kann ich die Einstellungen der MCU und des Prozessortaktes für ein> Library Project vornehmen?
Gar nicht, da bist Du auf einen Bug des Plugins gestoßen. Du bist
anscheinend der erste, der Version 2.1 für eine Library benutzt (mich
eingeschlossen).
Hab den Fehler aber auch schon gefunden und behoben, es wird also in der
nächsten Version wieder richtig funktionieren.
> - Da ich für meine Bibliothek und teilweise auch für die Anwendung> mehrere Build Configurations verwende, um sie für unterschiedliche> Prozessoren und Taktfrequenzen zur Verfügung zu haben, bin ich mit der> neuen Version leider aufgeschmissen, da dies jetzt global eingestellt> wird.
Die nächste Version wird die Einstellungen für das Target (und für
avrdude) optional auch (wieder) pro Build Configuration anbieten. Die
Infrastruktur dazu ist zum Teil auch schon in Version 2.1 enthalten, nur
der User Interface teil fehlt noch (der leider aber auch nicht ganz
trivial ist)
> Hoffe deshalb, daß die Umstellung bald erfolgt. Solange werde ich dann> mit der 2.0 Version weiterarbeiten, die bei mir einwandfrei läuft.
Ich bin zwar schon fleißig am programmieren, aber ein paar Wochen wird
es wohl noch dauern, bis Release 2.2 kommt. Ich möchte avrdude
ordentlich integrieren und dazu braucht es noch eine Menge Code.
Liebe Grüße,
Thomas
Hallo,
ich habe im Project Wiki jetzt eine Art Development Blog eingerichtet um
schon mal Vorab zu zeigen an was ich gerade Arbeite und wie die nächste
Version des Plugins aussehen wird.
http://avr-eclipse.wiki.sourceforge.net/The+Plugin
Ich würde mich über Eure Kommentare freuen, vor allem wenn Ihr der
Meinung seit, dass das was ich mache keinen Sinn ergibt - also nicht
Euren Erwartungen und Vorstellungen entspricht. Ich möchte nämlich
nicht hinterher feststellen, das ich an den Usern vorbeiprogrammiert
habe.
Ich selbst bin - wie ich sicher schon ein paar mal Erwähnt habe - ein
AVR Newbie, d.H. ich habe z.B. avrdude noch nie für ein echtes Projekt
benutzt und bin noch nicht sicher, welche der vielen avrdude Optionen
nun wirklich Praxisrelevant sind und welche nur für Sonderfälle benötigt
werden. Das User Interface des Plugins soll sich natürlich an der
gängigen Praxis orientieren und die Sonderfälle in etwas tieferen
Einstellungsebenen "verstecken".
Cheers
Thomas
Die Programmierung der Fusebits ist denke ich der schwierigste Teil. Die
meisten Programme bieten einfach für jedes Fusebit ein Kästchen mit
Häkchen.
Ich persönlich bevorzuge da das AVR Studio. Allerdings ist die Umsetzung
relativ komplex. Ich wollte mich ja eigentlich daran beteiligen, aber
ich werd aus Eclipse einfach nicht schlau :(
Was Fusebits angeht, so bin ich mir im Moment noch unschlüssig, ob es
besser ist sie als eigene Files zu speichern oder lieber als Project
Properties. Beides hat Vor- und Nachteile.
Ersteres hat den Vorteil, das man die Fusebits als File leicht von
Projekt zu Projekt kopieren kann und man die Files "leicht" z.B. in ein
.obj file umwandeln könnte und in ein .elf file hineinlinken könnte.
Nachteil ist, das es schwierig ist, den MCU Type der Fusebits mit dem
des Projekts oder einer Bestimmten Build Configuration zu
synchronisieren.
Bei Fusebits als Project Properties wäre es genau andersrum.
Was die Darstellung angeht: Einfach nur eine lange Liste mit Fusebit
Settings anzubieten á la AVR Studio finde ich auch nicht optimal.
Ich denke da mehr so in die Richtung von AVR32 Studio, wo die Fusebits
(als File) in einem speziellen Editor übersichtlich gruppiert werden.
Ich glaube, dass man genügend Informationen aus den PartDefinitionFiles
ziehen kann um das so oder so ähnlich umzusetzen.
brgds
Thomas
Thomas Holland wrote:
> Was die Darstellung angeht: Einfach nur eine lange Liste mit Fusebit> Settings anzubieten á la AVR Studio finde ich auch nicht optimal.
Die lange Liste gibt es ja nur bei den Clock Settings. Und SOO lang ist
die auch wieder nicht. Man könnte es höchstens splitten und Clock Source
und Start Up Time getrennt einstellen. Ansonsten finde ich die Fusebit
Einstellung vom AVR Studio genau richtig
Ich habe gerade noch mal nachgeschaut und gesehen, das in der neusten
Version von AVR Studio die Darstellung ganz gut ist - ich hatte noch die
Darstellung der Vorgängerversion (4.12?) im Kopf.
Aber schau Dir mal AVR32 Studio an. Das finde ich noch deutlich
übersichtlicher und definitiv mehr Eclipse-like.
Aber wie gesagt - erstmal möchte ich die Frage klären ob Projekt
Properties (wie in AVR Studio) oder Files (wie in AVR32 Studio). Davon
hängt auch die visuelle Gestaltung ab.
Thomas
ich habe suse 10.3 drauf.
bei apdateversuch kommt diese meldung.
The current configuration contains errors and this operation can have
unpredictable results.
Eclipse Plug-in Development Environment
(3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC) requires feature
"org.eclipse.jdt (3.0.0)", or compatible.
heisst das, ich muss eine alte eclipse suchen ???
@ Thomas Holland,
>Aber schau Dir mal AVR32 Studio an. Das finde ich noch deutlich>übersichtlicher und definitiv mehr Eclipse-like.
Kein Wunder,
AVR32 Studio IST Eclipse ;-)
Ich habe da auch noch eine Frage, von der ich nicht ganz sicher bin, ob
sie vom AVR-Plugin (Vers. 2.1.1) abhängt?!
Bei mir werden im Source-Code immer diverse Macros als fehlerhaft
unterschlängelt [cli(), sleep_enable(), etc...], obwohl der Compiler
alles OK findet.
Wer macht eigentlich in Eclipse die Vorab-Syntaxüberprüfung im Editor
und kann man das o.g. Verhalten irgendwie ändern (das stört...)
Ciao - Robert
gast wrote:
> ich habe suse 10.3 drauf.> bei apdateversuch kommt diese meldung.>> The current configuration contains errors and this operation can have> unpredictable results.> Eclipse Plug-in Development Environment> (3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC) requires feature> "org.eclipse.jdt (3.0.0)", or compatible.>> heisst das, ich muss eine alte eclipse suchen ???
natürlich nicht. Woher die Fehlermeldung kommt kann ich Dir allerdings
auch nicht sagen.
Weder hat das AVR Plugin irgendwas mit dem "Eclipse Plug-in Development
Environment" zu tun (es sei denn man möchte das Plugin selbst
compilieren), noch gibt es irgendwelche Referenzen zum Java Development
Toolkit (= org.eclipse.jdt).
Könntest Du "apdateversuch" etwas näher spezifizieren? Update von was
auf was?
Gruss,
Thomas
Hallo Robert,
> Ich habe da auch noch eine Frage, von der ich nicht ganz sicher bin, ob> sie vom AVR-Plugin (Vers. 2.1.1) abhängt?!>> Bei mir werden im Source-Code immer diverse Macros als fehlerhaft> unterschlängelt [cli(), sleep_enable(), etc...], obwohl der Compiler> alles OK findet.
Ich habe es gerade ausprobiert und bei mir sieht alles richtig aus -
keine Fehlermarkierungen bei den Makros und wenn ich den Mousecursor auf
einen der Macros halte zeigt der Editor die Definition des Macros in
einem kleinen Popup an.
D.H. es geht grundsätzlich und Dein Problem müsste sich durch irgendeine
Einstellung in Eclipse lösen lassen. Fragt sich nur welche! Und da kann
ich jetzt nur Vermuten...
Schau doch mal im "Outline" View für Deine C Datei nach, ob die Includes
(z.B. avr/sleep.h) ein kleines Warndreieck haben.
Wenn ja, dann musst Du mal schauen, ob bei den Project Properties unter
"C/C++ Build > Discovery options" als "Discovery profile"
"AVRGCCManagedMakePerProjectProfileC" eingestellt ist. Ob "per Language"
oder "per Configuration" sollte an sich egal sein, es sei denn Du
benutzt C++ oder Assembler.
Wenn das nicht funktioniert, dann kannst Du versuchen, dem Editor über
"Project Properties > C/C++ General > Paths and Symbols" im "Includes"
Tab den Pfad zu den AVR Header Dateien manuell mitzuteilen.
Ansonsten schau doch mal unter den "Preferences > C/C++ > Indexer" nach,
ob dort entweder der "Fast Indexer" oder der "Full Indexer" aktiv ist.
Hat zwar der Funktionsbeschreibung nach nichts mit Deinem Problem zu
tun, aber schauen kost ja nix :-).
Sag mir bitte bescheid, ob eine der Methoden Erfolg hatte oder ob das
Problem weiter besteht.
>> Wer macht eigentlich in Eclipse die Vorab-Syntaxüberprüfung im Editor> und kann man das o.g. Verhalten irgendwie ändern (das stört...)
Der C Editor hat das Problem, dass er zwar C Sourcecode analysieren
kann, aber grundsätzlich erstmal nicht weiß, wo sich die Include Dateien
befinden und er sie dementsprechend auch nicht laden und analysieren
kann.
Dazu braucht der Editor das Discovery Profile, welches im Hintergrund
den Compiler mit den Optionen "-E -P -v -dD" aufruft, um eine Liste
aller im Compiler eingebauten Include Pfade und der vordefinierten
Symbole zu generieren.
Zum Abschalten der Syntax-Prüfung habe ich leider keine Option in
Eclipse gefunden.
>> Ciao - Robert
Liebe Grüße,
Thomas
Gast wrote:
> .> verfahren nach ...> http://avr-eclipse.sourceforge.net/index.html>> Download>> There are two ways to download the AVR Eclipse Plugin.> Update Site>> ergebnis ....
OK. Ich bin mir ziemlich sicher, das Dein Problem nicht am AVR Plugin
liegt, sondern das Deine Eclipse Installation ein Konfigurationsproblem
hat.
Die Fehlermeldung "The current configuration contains errors..." bezieht
sich auf Deine Eclipse Installation.
Ich nehme mal an, dass Du keine Plugins selbst entwickeln möchtest. Dann
könntest Du das Plug-in Development Environment - das anscheinend den
Fehler auslöst - deaktivieren oder entfernen.
Dazu in Eclipse via "Help > Software Updates > Manage Configurations"
den "Product Configuration" Dialog aufrufen.
Dort den Eintrag "Eclipse Plug-in Development Environment
3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC" suchen, rechts-click und
"Disable" wählen.
Dann sollte alles wieder normal funktionieren.
Hintergrund: So wie ich es sehe ist "Eclipse Plug-in Development
Environment 3.3.0.v20070607-7N7M-DUUEF6Ez0H46IcCC" nicht kompatibel mit
neueren Eclipse Versionen (3.3.1 und aufwärts). Ich benutze das PDE
natürlich ausgiebig um das AVR Plugin zu entwickeln und bei mir ist
diese Version des PDE auch deaktiviert und dafür die Version
"3.3.2.R33x...." aktiv.
Nur mal interessehalber (weil Du der erste mir bekannte SUSE Nutzer
meines Plugins bist):
Wie hast Du Eclipse installiert? Direkter Download von eclipse.org oder
als RPM package? Bei letzterem - welche Eclipse Version hat das
Package? (Versionsnummer über Help > About Eclipse Platform)
Thomas
.
nix zum deaktivieren gefunden...
das ist alles eine automatische installation aus repository-bremen
aber da scheint noch mehr nicht zu stimmen ??
--
muss wohl doch die rpms holen ??
aber da ist wieder die frage verträgt sichs mit suse. ;-((
Gast wrote:
> .> nix zum deaktivieren gefunden...>> das ist alles eine automatische installation aus repository-bremen>> aber da scheint noch mehr nicht zu stimmen ??
Sieht fast so aus.
> -->>> muss wohl doch die rpms holen ??> aber da ist wieder die frage verträgt sichs mit suse. ;-((
Brauchst Du nicht. Eclipse läuft wunderbar stand-alone, also ohne jede
Installation. Du brauchst nur eine halbwegs aktuelle Java Runtime, sonst
nichts.
Geh auf http://www.eclipse.org/downloads/ und download das Packet
"Eclipse IDE for C/C++ Developers". Dann einfach in ein irgendein les-
und schreibbares Verzeichnis entpacken (z.B. in Deinem Home directory)
und starten.
Damit sollte es dann funktionieren.
Hallo Thomas,
DANKE !!!!
DAS war der tip des tages.
-------------------------------
Eclipse Platform
Version: 3.3.2
Build id: M20080221-1800
-------------------------------
habe alles alte runtergeschmissen ...
sieht soweit alles gut aus und avrdude meldet sich auch.
weiss nicht was in den dateien von bremem da los war.
.
nun kommt mein nächstes problem
wie übersetze ich winavr-quellen nun unter eclipse ? ;-)
>> Bei mir werden im Source-Code immer diverse Macros als fehlerhaft>> unterschlängelt [cli(), sleep_enable(), etc...], obwohl der Compiler>> alles OK findet.> Ich habe es gerade ausprobiert und bei mir sieht alles richtig aus -> keine Fehlermarkierungen bei den Makros und wenn ich den Mousecursor auf> einen der Macros halte zeigt der Editor die Definition des Macros in> einem kleinen Popup an.
DAS funktioniert bei mir auch!
[...]
> Schau doch mal im "Outline" View für Deine C Datei nach, ob die Includes> (z.B. avr/sleep.h) ein kleines Warndreieck haben.
Haben sie nicht! Die Fehlermeldungen werden nur in den Source-Dateien
angezeigt (Interessanterweise werden die gleichen Macros in einer
Header-Datei also nicht als Fehler angezeigt (dort funktioniert auch das
F3 nicht).
> Wenn ja, dann musst Du mal schauen, ob bei den Project Properties unter> "C/C++ Build > Discovery options" als "Discovery profile"> "AVRGCCManagedMakePerProjectProfileC" eingestellt ist. Ob "per Language"> oder "per Configuration" sollte an sich egal sein, es sei denn Du> benutzt C++ oder Assembler.> Wenn das nicht funktioniert, dann kannst Du versuchen, dem Editor über> "Project Properties > C/C++ General > Paths and Symbols" im "Includes"> Tab den Pfad zu den AVR Header Dateien manuell mitzuteilen.> Ansonsten schau doch mal unter den "Preferences > C/C++ > Indexer" nach,> ob dort entweder der "Fast Indexer" oder der "Full Indexer" aktiv ist.> Hat zwar der Funktionsbeschreibung nach nichts mit Deinem Problem zu> tun, aber schauen kost ja nix :-).
War alles schon so...
> Sag mir bitte bescheid, ob eine der Methoden Erfolg hatte oder ob das> Problem weiter besteht.
Ist leider noch alles beim alten. Was noch auffällt ist, dass es sich
offensichtlich nur um Makros handelt, in denen sich Inline-Assembler
Anweisungen befinden:
Gast wrote:
> Hallo Thomas,>> DANKE !!!!>> DAS war der tip des tages.> -------------------------------> Eclipse Platform>> Version: 3.3.2> Build id: M20080221-1800> -------------------------------
Das höre ich gerne :-)
> habe alles alte runtergeschmissen ...>> sieht soweit alles gut aus und avrdude meldet sich auch.>> weiss nicht was in den dateien von bremem da los war.>> .> nun kommt mein nächstes problem>> wie übersetze ich winavr-quellen nun unter eclipse ? ;-)
Gar nicht :-)
winAVR ist, wie der name schon andeutet, eine Portierung des avr-gcc
compilers und der gesamten toolchain für Windows.
Für Suse musst Du entweder die RPMs mit der AVR toolchain installieren
(frag mich aber bitte nicht, wo es die gibt - ich benutzt nur Ubuntu,
habe aber irgendwann irgendwo mal gelesen, dass es die auch für Suse
gibt),
oder Du kompilierst sie Dir selbst.
Beides (wenn auch nicht Suse spezifisch) ist im Project Wiki
beschrieben:
http://avr-eclipse.wiki.sourceforge.net/The+AVR-GCC+Toolchain
Robert Höller wrote:
>>> Bei mir werden im Source-Code immer diverse Macros als fehlerhaft>>> unterschlängelt [cli(), sleep_enable(), etc...], obwohl der Compiler>>> alles OK findet.>>> Ich habe es gerade ausprobiert und bei mir sieht alles richtig aus ->> keine Fehlermarkierungen bei den Makros und wenn ich den Mousecursor auf>> einen der Macros halte zeigt der Editor die Definition des Macros in>> einem kleinen Popup an.>> DAS funktioniert bei mir auch!>> [...]>>> Sag mir bitte bescheid, ob eine der Methoden Erfolg hatte oder ob das>> Problem weiter besteht.>> Ist leider noch alles beim alten. Was noch auffällt ist, dass es sich> offensichtlich nur um Makros handelt, in denen sich Inline-Assembler> Anweisungen befinden:>
1
#define cli() __asm__ __volatile__ ("cli" ::)
>> Ciao - Robert
Versuch doch mal mit den Language Mappings rumspielen. Bei den Project
Properties unter "C/C++ General > Language Mappings" kann man
einstellen, welchen Sprachstandard der Editor für das Projekt benutzt.
Bei mir kann ich da "GNU C" und "C99" (sowie "GNU C++" und "Assembler")
auswählen. Da "__asm__" wohl eine GNU spezifische Spracherweiterung ist
könnte das vielleicht helfen.
(C99 kommt übrigens vom C99 Parser Plugin, zu finden auf der CDT
Updatesite ( http://download.eclipse.org/tools/cdt/releases/europa )
unter "CDT Optional Features")
Thomas
Thomas Holland wrote:
[...]
> Versuch doch mal mit den Language Mappings rumspielen. Bei den Project> Properties unter "C/C++ General > Language Mappings" kann man> einstellen, welchen Sprachstandard der Editor für das Projekt benutzt.>> Bei mir kann ich da "GNU C" und "C99" (sowie "GNU C++" und "Assembler")> auswählen. Da "__asm__" wohl eine GNU spezifische Spracherweiterung ist> könnte das vielleicht helfen.>> (C99 kommt übrigens vom C99 Parser Plugin, zu finden auf der CDT> Updatesite ( http://download.eclipse.org/tools/cdt/releases/europa )> unter "CDT Optional Features")
Habe ich probiert, aber mit "C99" wird fast alles unterschlängelt :-(
Interessanterweise bei "Assembler" nicht! (???)
Wenn das so kompliziert ist, lasse ich es halt. Eigentlich wollte ich
nämlich an meiner Applikation weiterarbeiten und das geht seit gestern
(ich hatte da noch ein paar andere Baustellen mit dem avr-gcc und seinen
Tools...)
Trotzdem vielen Dank - Robert
.
> Für Suse musst Du entweder die RPMs mit der AVR toolchain installieren> (frag mich aber bitte nicht, wo es die gibt - ich benutzt nur Ubuntu,> habe aber irgendwann irgendwo mal gelesen,> dass es die auch für Suse gibt),
suse 10.3 hat wohl eine etwas andere strucktur.
und da sind die avr sachen als
Cross-avr-gcc / Cross-avr-binutil ...usw. in der installation
ich habe Cross-avr-gcc / Cross-avr-gcc42 installiert
weil mir da noch abhängigkeiten waren die ich mir nicht erklären konnte.
der phat wird dann wohl in der config dynamisch verwaltet.
nur zu arm giebts bei suse nix zu finden.
.
.
die AVR toolchain und avrdude landen bei suseinstallation
in /opt/cross
.... bei sourcen, kleineren win-avr-projekte
sieht die übersetzung erst mal gut aus.
bei grossen giebts wohl lib-unterschiede (oder versionsunterschiede)
ich fange erst mal klein an.. ;-)
übrigends scheint auf dem ersten blick arm nach...
http://www.mikrocontroller.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X
auch zu funktionieren.
bei gleichnamigen .lib findet er allerdings immer die vom avr ?
Hi!
Versuche gerade von Eclipse Europa 3.3.0 mit AVR-Eclipse 20070623
auf
Eclipse Europa Winter 3.3.2 und AVR-Eclipse 2.1.1
upzudaten.
"Installation" soweit ok.
Jedoch läuft mein altes Projekt damit nicht.
Bekomme sowohl "The Currently displayed Page contains invalide Values",
als auch "There are no converters available..." wenn ich Convert To..
versuche.
Ist das 20070623 Plugin zu alt um das Projekt konvertieren zu können?
Muß ich das von Hand wieder neu aufbauen?
Sorry für die Fragen, aber bin nicht so der Eclipse Experte. ;-)
Also auch wenn ich ein neues Projekt mit Ecl 3.3.2 und Plugin 2.1.1
erstelle, habe ich Probleme mit dem MCU Type. Im Wizard kommt eine
leere Dropdown-Liste für die MCUs und in den Project Properties bekomme
ich die "The currently displayed page... " - Meldung wenn ich das
erste mal auf AVR Target Hardware klicke, beim zweiten Versuch bekomme
ich auch dort nur ein leeres Dropdown hinter MCU Type. Verstelle
ich MCU und FCPU hinterher in den Environment settings, wird das beim
Build ignoriert.
Jemand eine Idee?
Ich bekomme die Version 2.1(.1) ums Verrecken auf MEINEM PC nicht
zum Laufen. Auf allen anderen scheints zu gehen.
Gibt es eine Möglichkeit zu debuggen, woran sich das Plugin bei mir
stört?
Mein System:
XP Pro SP2, Dual Xeon, Java 1.6.0_05-b13
(aber auch ältere Java-Versionen probiert)
Der Witz ist: Es läuft nicht mal in VMWare in einem sauberen System
auf dem selben Rechner. Muß also irgendwie an der Maschine liegen.
Vielleicht die zwei Prozessoren?? Sonst fällt mir nichts
exotisches ein.
Also das Problem bei mir nochmal:
Sowohl im Project-Wizard als auch in den Project-Properties wird
der Dialog für die Target Hardware nicht angezeigt.
Zuerst kommt die Fehlermeldung (siehe oben)
Beim zweiten Klick passiert gar nichts.
Beim dritten Klick kommt der Dialog mit leerer Dropodown Liste
für die Prozessoren und das Feld für die Taktfrequenz fehlt gänzlich!
Grüße, Frank
Gast wrote:
>> ich habe Cross-avr-gcc / Cross-avr-gcc42 installiert> weil mir da noch abhängigkeiten waren die ich mir nicht erklären konnte.> der phat wird dann wohl in der config dynamisch verwaltet.>> die AVR toolchain und avrdude landen bei suseinstallation> in /opt/cross
Falls das Plugin den falschen avr-gcc Compiler erwischt kannst Du den
Pfad zum Compiler in den Preferences ändern.
Hintergrund zur automatischen Pfadermittlung des Plugins:
Unter Linux startet das Plugin zuerst ein "which avr-gcc". Wenn ein
"avr-gcc" schon im System Path steht, wird er auf diese Art gefunden.
Sollte "avr-gcc" noch nicht im Path sein, dann versucht das Plugin es
noch mit einem "find opt -path avr-gcc" und übernimmt die erste
Fundstelle. (/opt und noch ein paar andere typische Pfade wie /usr/local
etc.)
> .... bei sourcen, kleineren win-avr-projekte> sieht die übersetzung erst mal gut aus.> bei grossen giebts wohl lib-unterschiede (oder versionsunterschiede)> ich fange erst mal klein an.. ;-)
Ich bin jetzt kein großer GCC Experte, aber ich glaube, dass der Pfad
zur libc im Linker fest verdrahtet ist, das also schon bei der
Compilierung des gcc festgelegt wird, wo die libc grundsätzlich zu
finden ist. (Bitte korrigieren, wenn das nicht stimmen sollte)
Gegenbenfalls kann man noch mit dem "Libraries Path" Einstellungen des
Linkers im Plugin den Linker dazu überreden, eine andere libc zu
verwenden.
Thomas
Hallo Frank,
ARM-Fan wrote:
> Gibt es eine Möglichkeit zu debuggen, woran sich das Plugin bei mir> stört?
Man kann Eclipse auch im Debugging mode starten, aber ich weiß nicht so
genau wie das unter Windows funktioniert und habe auf die schnelle
nichts in Google gefunden.
Aber mit dem Eclipse Logfile kann man schon einiges erkennen (s.u.)
> [...]> Vielleicht die zwei Prozessoren?? Sonst fällt mir nichts> exotisches ein.
Nein, ich habe auch ein Dual Core. Ich glaube auch nicht, dass es an der
Hardware oder am Betriebssystem liegt. Eher ein Versionskonflikt
innerhalb von Eclipse oder - durchaus möglich - ein Bug im Plugin (wobei
es auf alle Fälle ein Fehler des Plugins ist, keine vernünftige
Fehlermeldung auszuspucken)
>> Also das Problem bei mir nochmal:>> Sowohl im Project-Wizard als auch in den Project-Properties wird> der Dialog für die Target Hardware nicht angezeigt.>> Zuerst kommt die Fehlermeldung (siehe oben)> Beim zweiten Klick passiert gar nichts.> Beim dritten Klick kommt der Dialog mit leerer Dropodown Liste> für die Prozessoren und das Feld für die Taktfrequenz fehlt gänzlich!>> Grüße, Frank
"The currently displayed page contains invalid values" bedeutet, das im
Plugin beim Aufbau der Seite eine Exception, z.B. eine
NullPointerException, aufgetreten ist. Das beim dritten Klick etwas
angezeigt wird ist normal und hat nichts zu bedeuten, außer das der
Fehler aufgetreten ist nachdem das Dropdown zur Seite hinzugefügt wurde,
aber noch bevor das Feld für die Taktfrequenz erzeugt wurde.
Die ursächliche Exception wird aber von Eclipse geloggt und würde mir
helfen, das Problem einzukreisen.
Schick mir doch bitte mal Dein Eclipse Logfile, nachdem der Fehler
aufgetreten ist. Das Logfile findest Du unter Help > About Eclipse
Platform -> Configuration Details -> View Error Log.
Falls es zu lang ist kannst Du das Log auf die Fehlermeldungen /
Stacktraces beschränken, in denen "de.innot.avreclipse" vorkommt.
Eine mögliche Ursache wäre, dass das Plugin "avr-gcc" nicht finden kann.
Zeigt das Plugin unter "Window > Preferences -> AVR" den richtigen Pfad
für den Compiler an?
Liebe Grüße,
Thomas
P.S. Hast Du das auch bei SourceForge bei dem Bugreport eingetragen?
(Nur damit ich es nicht doppelt bearbeite...)
Hi Thomas, super dass du dich so schnell gemeldet hast.
Hier wäre zunächst mal der Bugreport, nachdem ich versucht habe mit
dem Project Wizard ein neues AVR-Projekt zu erstellen:
!SESSION 2008-04-04 12:07:31.183
-----------------------------------------------
eclipse.buildId=M20080221-1800
java.version=1.6.0_05
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments: -os win32 -ws win32 -arch x86
!ENTRY org.eclipse.ui 4 0 2008-04-04 12:09:11.057
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.IllegalArgumentException: Argument cannot be null
at org.eclipse.swt.SWT.error(SWT.java:3547)
at org.eclipse.swt.SWT.error(SWT.java:3481)
at org.eclipse.swt.SWT.error(SWT.java:3452)
at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:934)
at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:910)
at
de.innot.avreclipse.ui.wizards.MCUselectPage.createControl(MCUselectPage
.java:160)
at
org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:11
47)
at
org.eclipse.jface.wizard.WizardDialog.access$2(WizardDialog.java:1139)
at org.eclipse.jface.wizard.WizardDialog$4.run(WizardDialog.java:1128)
at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at
org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1126)
at
org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:820)
at
org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:36
9)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:618)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227
)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at
org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(NewWizardSho
rtcutAction.java:135)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Ac
tionContributionItem.java:546)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContribut
ionItem.java:490)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionCont
ributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:
289)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:4
61)
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplicat
ion.java:106)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.j
ava:169)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplicat
ion(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Eclip
seAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
176)
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:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Compilieren tut er jedoch.
Halt mit den Defaulteinstellungen (Atmega16, 1MHz).
Hier noch die Fehler, die kommen wenn ich versuche den Target Dialog
aufzurufen:
!SESSION 2008-04-04 12:19:49.526
-----------------------------------------------
eclipse.buildId=M20080221-1800
java.version=1.6.0_05
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments: -os win32 -ws win32 -arch x86
!ENTRY org.eclipse.jface 4 2 2008-04-04 12:20:22.572
!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.jface".
!STACK 0
java.lang.IllegalArgumentException: Argument cannot be null
at org.eclipse.swt.SWT.error(SWT.java:3547)
at org.eclipse.swt.SWT.error(SWT.java:3481)
at org.eclipse.swt.SWT.error(SWT.java:3452)
at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:934)
at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:910)
at
de.innot.avreclipse.ui.propertypages.AVRHardwarePropertyPage.addMCUSecti
on(AVRHardwarePropertyPage.java:82)
at
de.innot.avreclipse.ui.propertypages.AVRHardwarePropertyPage.createConte
nts(AVRHardwarePropertyPage.java:150)
at
org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage
.java:233)
at
org.eclipse.jface.preference.PreferenceDialog.createPageControl(Preferen
ceDialog.java:1456)
at
org.eclipse.jface.preference.PreferenceDialog$13.run(PreferenceDialog.ja
va:1213)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
at
org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.
java:1207)
at
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(Filter
edPreferenceDialog.java:433)
at
org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(Prefere
nceDialog.java:698)
at
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:8
42)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
at
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(Stru
cturedViewer.java:840)
at
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredVi
ewer.java:1153)
at
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredVi
ewer.java:1178)
at
org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.
java:250)
at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:244)
at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:418)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:
129)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at
org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.jav
a:156)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Ac
tionContributionItem.java:546)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContribut
ionItem.java:490)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionCont
ributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:
289)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:4
61)
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplicat
ion.java:106)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.j
ava:169)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplicat
ion(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Eclip
seAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
176)
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:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
!ENTRY org.eclipse.jface 4 0 2008-04-04 12:20:24.197
!MESSAGE java.lang.ArrayIndexOutOfBoundsException: -1
!STACK 0
java.lang.ArrayIndexOutOfBoundsException: -1
at
de.innot.avreclipse.ui.propertypages.AVRHardwarePropertyPage.performOk(A
VRHardwarePropertyPage.java:182)
at
org.eclipse.jface.preference.PreferenceDialog$12.run(PreferenceDialog.ja
va:926)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:857)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199)
at
org.eclipse.jface.preference.PreferenceDialog.okPressed(PreferenceDialog
.java:906)
at
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.okPressed(Filte
redPreferenceDialog.java:374)
at
org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDi
alog.java:233)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:618)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227
)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at
org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.jav
a:156)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Ac
tionContributionItem.java:546)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContribut
ionItem.java:490)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionCont
ributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:
289)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:4
61)
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplicat
ion.java:106)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.j
ava:169)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplicat
ion(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Eclip
seAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
176)
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:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Jo, es scheint wirklich am WinAVR Ordner zu liegen.
Wenn dieser nicht exakt "WinAVR" heißt, dann krachts.
Du scheinst ja irgendwie nach dem Ordner zu suchen.
Vielleicht nur nach dem Teilstring am Anfang (nach dem Motto
Path.StartsWith("WinAVR") und setzt dann aber auch nur
das als Ergebnis für den Pfad ein?
Die letzte Zeile ist der Übeltäter. Ich werde da wohl mal einen Check
einbauen, der eine entsprechende Fehlermeldung ausspuckt, wenn avr-gcc
nicht gefunden werden kann.
> Hier der Screenshot von den Preferences.> Er scheint den Pfad wirklich nicht zu finden.>> Mein WinAVR Pfad lautet "E:\Programme\WinAVR_20070525"
Unter Window liest das Plugin in der Windows Registry die Einträge für
winAVR aus, um den Pfad zu finden. Da bei Dir Pfade eingetragen sind,
scheint das Plugin auch was zu finden, nur nicht das richtige.
Wahrscheinlich hast Du das winAVR Verzeichnis nach der Installation
umbenannt.
Die Lösung ist aber recht einfach: In den AVR Preferences einfach die
Pfade editieren, so dass sie auf die richtigen Verzeichnisse zeigen.
AVRDude und AVRDude.conf kannst Du dabei vorerst ignorieren, da sie erst
in Version 2.2 zum Zuge kommen werden.
Das in der Windows Registry falsche Pfade stehen ist für das
Funktionieren von winAVR unerheblich. Nur wenn Du winAVR mal
deinstallieren willst solltest Du ggf. dem winAVR Verzeichnis wieder den
ursprünglichen Namen geben.
Hattest Du den Eintrag dazu in dem Bug report auf der Plugin Project
Seite bei SourceForge geschrieben?
LG
Thomas
>Hattest Du den Eintrag dazu in dem Bug report auf der Plugin Project>Seite bei SourceForge geschrieben?
Nein, nur hier!
Ich habe in der Tat zwei verschiedene WinAVR Releases installiert
und diese deshalb so (um)benannt. Da hast du recht.
Werde nach dem Registry-Eintrag gleich mal schauen.
Vielen Dank für deine Hilfe und weiter so mit der guten Arbeit!
Grüße, Frank
Hi,
ich habe mir gerade ein frisches Eclipse mit dem AVR Plugin installiert
(Ubuntu). In den Preferences scheinen die Atmel Part Descripton Files
nicht gefunden worden zu sein. Wo bekomme ich die her? Sind das die vom
AVR Studio?
Außerdem fehlt der AVRDude Support von dem im SourceForge Wiki die Rede
ist. Ich nehme mal an das der noch nicht im Release ist sondern noch in
der Entwicklung?
Jens Maul wrote:
> Hi,> ich habe mir gerade ein frisches Eclipse mit dem AVR Plugin installiert> (Ubuntu). In den Preferences scheinen die Atmel Part Descripton Files> nicht gefunden worden zu sein. Wo bekomme ich die her? Sind das die vom> AVR Studio?
Du hast aber recht, es sind die aus dem AVR Studio gemeint.
In der Version 2.1 hat der Pfad zu den Part Description Files aber noch
keine Funktion (steht auch so in der Doku drin). Der Pfad ist ein
Vorgriff auf kommende Versionen.
Ab 2.2 kann sich das Plugin diverse Informationen aus diesen Files
holen. Das wird aber nur nötig sein, wenn neuere Versionen von AVR
Studio rauskommen. Die extrahierten Daten aus der zur Zeit aktuellen
Version wird das Plugin schon mitbringen, damit auch nicht-Windows User
in den Genuss (u.a.) der Fusebits kommen.
>> Außerdem fehlt der AVRDude Support von dem im SourceForge Wiki die Rede> ist. Ich nehme mal an das der noch nicht im Release ist sondern noch in> der Entwicklung?
Ja, ich arbeite noch ganz heftig daran. Ich kann leider immer noch
keinen Release Termin geben, da ich das ganze in meiner sehr variablen
Freizeit programmiere, aber ich bin schon ziemlich weit gekommen und
einige Teile des avrdude Supports funktionieren schon. Eigentlich fehlen
jetzt nur noch die Fusebits und das werde ich hoffentlich jetzt am
Wochenende schaffen.
Heute Abend werde ich auch mal ein paar neue Screenshots ins Wiki
stellen, um zu zeigen wohin die Reise geht.
brgds
Thomas
Arnulf Mittelstädt wrote:
> Hallo,> ich benutze auch das Plugin. Jetzt ist mir aufgefallen, dass er beim> Compilieren immer
1
-DF_CPU=3868400UL
benutzt. Ich müßte das Ganze
> ändern, so dass ich nur das L dort stehen habe.>> Ich habe schon gesucht, allerdings nichts gefunden.
Das unsigned long für die F_CPU habe ich aus dem template makefile von
winAVR übernommen. Dort wird der F_CPU auch als UL an den Compiler
übergeben.
1
CDEFS = -DF_CPU=$(F_CPU)UL
Ich bin nicht so der große C Experte und habe mir darüber keine großen
Gedanken gemacht. Daher ist das auch im Plugin fest verdrahtet, und zwar
in der Datei "plugin.xml" in dem "de.innot.avreclipse.core" plugin in
Deinem Eclipse plugins Folder.
Du kannst es ändern, in dem Du die Datei aus dem JAR Archiv extrahierst
(z.B. mit winRAR oder ähnlichem), editierst, und anschliessend wieder
ins JAR reinschreibst.
Das UL ist an folgender Stelle definiert (am besten nach der id suchen,
die ist einmalig in der Datei)
In der letzten Zeile kannst Du das "UL" durch ein "L" ersetzen.
Wenn Bedarf besteht kann ich das auch für zukünftige Versionen als
Option einbauen. Dazu am besten ein "Feature Request" auf SourceForge
absetzen.
brgds
Thomas
Jens Maul wrote:
> Super, am Wochenende wäre das perfekt ;)
:-)
Schau'n wir mal. Sobald ich alle angepeilten Funktionen drin habe werde
ich eine Beta Version releasen und es hier verkünden.
> Ich würde ja gerne helfen, aber ich hab keinen Plan von Eclipse oder> Java
Ich habe schon festgestellt, das die Schnittmenge von AVR Programmierern
und Eclipse/Java Programmierern extrem klein ist.
Ich werde wohl mal eine Webseite erstellen, wie man das Projekt noch
unterstützen kann (Icons malen, Kudos auf
http://www.ohloh.net/projects/12037/contributors/51698521356960 geben
etc.)
Thomas
Hi Thomas,
habe gerade ein Update von V2.0 auf V2.1.1 über Eclipse (Windows)
gemacht.
Lief ohne Probleme. Die Projektkonvertierung lief auch ohne Probleme.
War ja angenehm überrascht, nachdem einige doch Ärger hatten.
Fein :-)
Viele Grüße und guten Flug :-)
Ohoh... Ich habe die Änderung einmal vorgenommen und jetzt läßt er den
Teil komplett weg. Hab es dann wieder zurückgesetzt, aber immer noch
Fehler.
War also keine so gute Idee. Bekomme jetzt auch einen Fehler, dass er
das Device nicht findet.
Ich werd alles runterschmeissen und dann alles wieder sauber machen.
900ss D. wrote:
> Hi Thomas,>> habe gerade ein Update von V2.0 auf V2.1.1 über Eclipse (Windows)> gemacht.> Lief ohne Probleme. Die Projektkonvertierung lief auch ohne Probleme.> War ja angenehm überrascht, nachdem einige doch Ärger hatten.>> Fein :-)
Das höhre ich gerne! Ich wusste doch, das es grundsätzlich funktioniert
:-)
> Viele Grüße und guten Flug :-)
Wo habe ich mich denn verraten :-)
Thomas
Arnulf Mittelstädt wrote:
> Ohoh... Ich habe die Änderung einmal vorgenommen und jetzt läßt er den> Teil komplett weg. Hab es dann wieder zurückgesetzt, aber immer noch> Fehler.>> War also keine so gute Idee. Bekomme jetzt auch einen Fehler, dass er> das Device nicht findet.>> Ich werd alles runterschmeissen und dann alles wieder sauber machen.
Schade. Ich hatte gehofft das es funktioniert (allerdings nicht selber
ausprobiert). Aber die JAR files editieren ist so was 'ne Operation am
offenen Herzen, da kann ich mir schon vorstellen, dass Eclipse bei der
kleinsten Kleinigkeit zickt.
Wenn Du noch etwas probieren möchtest (auch das habe ich nicht getestet
-> Backups):
Die de.innot.avreclipse.core_xxxxxx.jar Datei komplett in das "Plugins"
Verzeichnis entpacken (in ein neues Verzeichnis mit exakt dem selben
Namen wie die JAR Datei - nur ohne .jar am Ende) und die JAR Datei
löschen.
Dann Eclipse mit dem Parameter "-clean" starten (lädt alle Plugins neu)
und wenn das funktioniert die plugin.xml Datei editieren.
Ansonsten werde ich das ganze wohl als Option für 2.2 aufnehmen, wird
aber noch ein paar Tage dauern.
Thomas
Arnulf Mittelstädt wrote:
> Compilieren immer -DF_CPU=3868400UL benutzt. Ich müßte das Ganze> ändern, so dass ich nur das L dort stehen habe.
Warum? Was versprichst Du Dir davon?
Hallo,
als kleiner Appetitanreger auf die nächste Version des Plugins habe ich
ein paar Screeshots im Projekt-Wiki veröffentlicht.
http://avr-eclipse.wiki.sourceforge.net/The+Plugin
Aber wie es auch dort steht: Einen Release Termin habe ich noch nicht...
Ich hoffe auf ein Beta-Release Anfang Mai, aber bitte mich nicht darauf
festnageln.
Fragen, Wünsche und Anregungen nehme ich gerne entgegen!
brgds,
Thomas
benutzt. Ich müßte das Ganze
> ändern, so dass ich nur das L dort stehen habe.
Hallo Thomas,
die Mühe das zu ändern ist nicht notwendig.
'UL' bezeichnet in C eine unsigned long Konstante und 'L' einen signed
long Konstante. Das ist der ganze Unterschied. Die Frequenz als signed
darzustellen ist irgendwie unsinnig und deshalb fragte ich ja auch
schon, wofür das benötigt wird, aber es gab leider keine Antwort darauf.
Also mit 'UL' hast Du das schon richtig implementiert.
900ss
.
> als kleiner Appetitanreger auf die nächste Version des Plugins habe ich> ein paar Screeshots im Projekt-Wiki veröffentlicht.
Hallo Thomas,
giebt es sowas auch irgendwo für den arm ???
900ss D. wrote:
> Hallo Thomas,> die Mühe das zu ändern ist nicht notwendig.> 'UL' bezeichnet in C eine unsigned long Konstante und 'L' einen signed> long Konstante. Das ist der ganze Unterschied. Die Frequenz als signed> darzustellen ist irgendwie unsinnig und deshalb fragte ich ja auch> schon, wofür das benötigt wird, aber es gab leider keine Antwort darauf.> Also mit 'UL' hast Du das schon richtig implementiert.>> 900ss
Ich hatte eine Berechnung durchzuführen und bin da mit L & UL aneinander
geraten. Aber dann hab ich es im Programm angepasst. Also passt das
schon.
Jens Maul wrote:
>>Ich kann dir diese empfehlen: http://famfamfam.com/lab/icons/silk/ Sind>>auch frei>> Schade das es die nur in 16x16 gibt, oder hab ich was übersehen?
Ja das sind sie. Aber ich wußte nicht genau was er wollte, deshalb hab
ich ihn erstmal angegeben.
Simon K. wrote:
> 900ss: Schau mal hier bei dem ersten Code Beispiel:> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#UART_initialisieren>> Wenn du da UL benutzt, bekommst du falsche Rechenergebnisse zum> Baudratenfehler.
Das ist wahr. Dass das da so drinsteht finde ich auch .... naja...
Ist eben ein ganz spezieller Fall, ob man den so haben muß? Es gehört
dort wenigstens ein Hinweiß dahin, dass es 'L' ein muß nur deswegen.
Sonst kann das in die Irre führen.
Arnulf Mittelstädt wrote:
> Ich habe gerade in deinem Blog gelesen, dass du noch Icons suchst.> Ich kann dir diese empfehlen: http://famfamfam.com/lab/icons/silk/ Sind> auch frei.
Leider das falsche frei. Die Creative Commons Lizenz ist nicht
kompatibel mit GPL. Aber nicht so schlimm; die Icons haben zwar die
richtige Größe (16x16), aber so richtig was passendes für die ganzen
AVRDude Tabs ist nicht dabei.
>Weiterhin könnten dir Seiten http://kde-look.org/ ,> http://gnome-look.org/ und http://www.deviantart.com/ bezüglich der> Icons weiterhelfen.
Die Seiten habe ich mal überflogen, aber die meisten Icons sind größer
als das was ich brauche. Und ich habe die Befürchtung, dass es länger
dauert in der Masse was passendes zu finden als selbst was zu machen.
Trotzdem vielen Dank für den Hinweis.
Liebe Grüße,
Thomas
Jürgen wrote:
> .>> als kleiner Appetitanreger auf die nächste Version des Plugins habe ich>> ein paar Screeshots im Projekt-Wiki veröffentlicht.>> Hallo Thomas,>> giebt es sowas auch irgendwo für den arm ???
Nicht das ich wüsste. Es gibt zwar mehrere Plugins für arm, aber was ich
bisher gesehen habe Beschränken die sich auf die Integration des
Compilers.
Ich könnte mir vorstellen, mein Plugin auch für andere Architekturen als
AVR nutzbar zu machen, aber die meisten Erweiterungen des Plugins sind
AVR spezifisch, so dass am Ende auch nicht viel mehr als die Integration
des Compilers übrig bleiben würde.
brgds,
Thomas
900ss D. wrote:
> Simon K. wrote:>> 900ss: Schau mal hier bei dem ersten Code Beispiel:>> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#UART_initialisieren>>>> Wenn du da UL benutzt, bekommst du falsche Rechenergebnisse zum>> Baudratenfehler.> Das ist wahr. Dass das da so drinsteht finde ich auch .... naja...> Ist eben ein ganz spezieller Fall, ob man den so haben muß? Es gehört> dort wenigstens ein Hinweiß dahin, dass es 'L' ein muß nur deswegen.> Sonst kann das in die Irre führen.
Genau diesen Code hatte ich auch für ein Projekt verwendet und bin über
das signed / unsigned gestolpert. Deshalb konnte ich Dein Problem schon
gut nachvollziehen.
Man kann das Macro aber leicht ändern, damit es mit unsigned
funktioniert ( die -1000 bei BAUD_ERROR entfernen und dann von 990 bis
1010 testen, anstatt von -10 bis +10)
Nachdem ich mir die Diskussion hier angesehen habe werde ich es wohl
vorerst einmal bei "UL" belassen, es sei denn es gibt noch mehr
Beispiele wo mit F_CPU gerechnet wird und signed unbedingt nötig ist.
brgds
Thomas
Nunja, ich muss sagen, dass ich dieses kleine "Makro" auch gerne benutze
um nochmal die Baudrateneinstellung gegenzuchecken.. Aber gut, ich
könnte auch ohne auskommen.
Simon K. wrote:
> Nunja, ich muss sagen, dass ich dieses kleine "Makro" auch gerne benutze> um nochmal die Baudrateneinstellung gegenzuchecken.. Aber gut, ich> könnte auch ohne auskommen.
Du kannst es ja so ändern, wie Thomas vorgeschlagen hat. Dann geht das
Makro und Du kannst UL verwenden.
Nichts ist unmöglich..... :-)
Simon K. wrote:
> Ooops, glatt übersehen. Danke dir! :-) Das sollte man vielleicht in der> Wiki mal ändern.
Ich habe die Änderung in der Diskussion zum Tutorial mal zur selbigen
gestellt.
Hallo,
Ich habe gerade eine erste Beta der Version 2.2 auf SourceForge bereit
gestellt:
http://sourceforge.net/project/showfiles.php?group_id=189165&package_id=261459&release_id=598119
Diese Beta hat schon alle für 2.2 geplanten Features. Nur die User
Documentation muss noch überarbeitet werden.
Ich habe die Beta mit Windows und Linux getestet und sie scheint soweit
stabil zu laufen. Bitte probiert sie auch mal bei Euch aus und sagt
bescheid ob alles läuft oder ob es noch Probleme gibt.
Wenn Ihr einen Bug findet meldet euch! Wenn Ihr es nicht tut wird es
auch niemand anders tun und von selbst beheben sich die Fehler leider
nicht.
Aber auch wenn Ihr keine Fehler findet würde es mich freuen zu höhren
das die Beta funktioniert. Ich hätte gerne ein paar positive
Rückmeldungen damit ich die endgültige Version entspannt rausgeben kann.
Liebe Grüße,
Thomas
Changelog:
Oliver wrote:
> Gibt es eine Möglichkeit, die beta 2.2 parallel zu Version 2.1 zu> installieren (ausser mit zwei getrennten Eclipse - Istallation)?>> Oliver
Leider nein. Zum Testen würde ich eine zweite Eclipse Installation
empfehlen.
Dazu reicht eine minimale Eclipse + CDT Installation ( Eclipse IDE for
C/C++ Developers - http://www.eclipse.org/downloads/ )
Theoretisch müsste 2.2 auch abwärtskompatibel zu 2.1 sein (2.2 Projekte
sollten auch noch mit 2.1 funktionieren wenn 2.2 wieder entfernt wird),
aber das habe ich nicht ausprobiert und kann daher für nichts
garantieren.
Ich habs jetzt mal installiert, läuft soweit. Beim ersten Test fehlt mir
schon mal der Menupunkt "Build" im Kontextmenu vom Projekt. Ist das
Absicht?
Oliver
Jetzt ist Build auch da - komisch. Ansonsten sieht es gut aus -
Programme und libs funktionieren. Wenn man eclipse neu startet, mit
einem Projekt im workspace, wird avrdude -p? aufgerufen. Ist das
beabsichtigt?
Oliver
Hallo Oliver,
erstmal Danke das Du Dir die Mühe gemacht hast die Beta-Version
auszuprobieren.
Das mit dem fehlendem Build Eintrag im Menu könnte daher kommen, dass Du
evtl. autobuild eingestellt hattest (Project -> Build automatically).
Hat aber grundsätzlich nichts mit dem Plugin zu tun.
Das mit dem "avrdude -p?" ist normal. Damit ermittelt das Plugin, welche
MCUs avrdude unterstützt. Das macht das Plugin bei jedem Start, da ja in
der Zwischenzeit eine neuere avrdude version installiert worden sein
könnte.
Eigentlich sollte der Console Output für die ganzen internen avrdude
Aufrufe per default abgeschaltet sein (Preferences -> AVRDude -> show
output), ich hatte es aber zum Debuggen per default an und habe
vergessen es wieder umzustellen.
Liebe Grüße,
Thomas
Hallo!
Funktioniert soweit schon sehr gut. :)
Ein Problem habe ich allerdings unter Linux: Beim Starten wird nach der
avr/io.h gesucht, obwohl ich unter Preferences->AVR->AVR Header Files
den richtigen Pfad eingestellt habe. Bei den Partdescriptionfiles
funktioniert das allerdings so. Das ganze ist relativ lästig, wenn ich
am Laptop arbeite, weil dort die Festplatte das ganze System ausbremst.
Das Problem besteht auch bei 2.1.
Einen Featurerequest hätte ich auch noch: Ein Shortcut für das
Programmieren mittels avrdude wäre super.
Danke für das tolle Plugin, vereinfacht das Entwickeln für die AVR-Reihe
ungemein. :)
Liebe Grüße,
Rainer
Habs heute auch mal installiert. Ging ja ohne Probleme diesmal. Die
alten Versionen und das AVRDUDE Plugin habe ich herausgeschmissen.
Sauber. Läuft perfekt.
Was mich vielleicht etwas stört ist, dass nach einer Projekterstellung
immer das Debugprofil als Aktiv gesetzt ist. Aber das ist nur
Nebensache.
Die AVRDDUDE Unterstützung ist sagenhaft, geradezu ein Traum! Absolut
komfortabel und einfach.
Sehr gute Arbeit. :-)
Hi Thomas,
ich benutze zwar keinen AVRDUDE, aber ich wollte die neue Version
trotzdem testen, da du dir soviel Mühe machst. Also ich habe die BETA
runtergeladen, das alte Plugin disabled und das neue dann intalliert. In
meine aktuelle Eclipse Installation :-) Obwohl ich gerade wieder am
entwickeln bin und eigentlich keine Crash sehen möchte.Aber mut zum
Risiko :-)
Ich habe ein paar Versuch gemacht und was soll ich sagen. PERFEKT!
Ich ziehe echt meinen Hut. Hast du das AVRDUDE mit deinem Dragon
probiert oder wie hast Du das ganze getestet. Ich habe es jetzt mit
einem JTAG ICE MkII probiert. Es läuft. Habe auch schon Release/Debug
probiert. Geht auch.
Den AVRDUDE hab ich auch probiert. Klappte auf Anhieb.
Mann! Super Arbeit.
Wo kommt den die Liste der Supported CPUs her? Und was haben die Spalten
für einen konkrete Bedeutung? Hab ich eben so schnell nicht ganz
geblickt. Und auch sehr schön das runterladen der Datenblätter. Woher
bekommst Du denn die Links? Du hast die nicht alle irgendwoher gesucht?
Wenn ATMEL die ändert, was dann?
Ich hätte da schon eine Erweiterung für den AVRDUDE Support ;-) Aber
jetzt nicht. Es ist so schon Klasse.
Dann fall nicht vom Himmel ;-)
Lieben Gruß
Was mir gerade auffiel:
Etwas ungünstige ist es (oder ich habe es übersehen):
Wenn man einen Build-Lauf macht, dann wird automatisch AVRDUDE
aufgerufen. Das sollte konfigurierbar sein und dann noch ein Button, mit
dem man dann per Hand progrmmieren kann. Damit Du nicht arbeitslos wirst
;-)
Ist einstellbar, wie oben geschrieben.
Project Properties->C/C++ Build->Settings->"AVRDude"
Und einen Knopf um das Projekt herüberzuladen gibt es auch.. Aber ich
finde ihn gerade nicht ;)
1
- "Upload Project to Device" action in the project context menu to manually upload with avrdude.
steht oben. (Kann es sein, dass man hierfür doch noch das AVRDude Plugin
braucht?
Simon K. wrote:
> Ist einstellbar, wie oben geschrieben.> Project Properties->C/C++ Build->Settings->"AVRDude"
Den hatte ich schon gesehen nur ich habe keine manuelle Einstellung
Möglichkeit gefunden gehabt bis eben, als ich von Dir laß, dass es sie
geben soll.
Du mußt den Navigator-View aufmachen. Dort gibt es ein Kontextmemu
"AVR".
Woher wußtest Du von der Möglichkeit? Hab ich was überlesen?
@Thomas: Dann hat sich mein vorheriger Beitrag natürlich erledigt. Es
wäre dann natürlich auch schön, das Kontextmenu des C/C++ Views auch um
"AVR" zu ergänzen. :-)
Vielen dank für die ganzen (positiven) Feedbacks. :-)
Ich habe heute leider keine Zeit, aber spätestens Montag werde ich mich
im Detail um Eure Fragen und Anregungen kümmern.
Bis dann,
Thomas
900ss D. wrote:
> Du mußt den Navigator-View aufmachen. Dort gibt es ein Kontextmemu> "AVR".
Ah! Tatsächlich. Ich benutze der Einfachheit halber eigentlich nur den
C/C++ Projects View.. :D
> @Thomas: Dann hat sich mein vorheriger Beitrag natürlich erledigt. Es> wäre dann natürlich auch schön, das Kontextmenu des C/C++ Views auch um> "AVR" zu ergänzen. :-)
Da wäre ich auch dafür :-)
> Woher wußtest Du von der Möglichkeit? Hab ich was überlesen?
Steht oben in dem Changelog zu der BETA Version :-)
PS: Wie kommt man denn an den AVR Device Explorer ran? Habe den am
Anfang mal geschlossen ;)
EDIT: Okay, habs. Window->Show View->Other
PPS: Wo hast du denn die Sache mit den Datasheets her?
EDIT: Okay, auch unter Show View->Other :-)
Ah, übrigens. In dem AVRDude Dialog in den Projektoptionen steht, dass
die BitClock Option nur für JTAG ICEs wäre. Das stimmt aber nicht,
soweit ich weiß, denn mit meinem AVR ISP mkII bewirkt diese Einstellung
auch die Veränderung der BitClock.
Hallo Thomas,
nach einiger Zeit Arbeit mit dem Plugin ist mir folgendes aufgefallen.
Ich nutze nicht das automatische Programmieren mit dem AVRDUDE. Mache es
manuell. Und dafür in dem Kontextmenu rumzugraben ist doof.
Wenn es mit vertretbarem Aufwand möglich ist, dann hätte ich gerne einen
Button oben im Eclipsefenster.
Vielleicht ist ja gerade "Wünsch Dir Was" Zeit ;-)
Danke.
LG.
PS. Mir sind bisher keine Fehler aufgefallen.
Hallo Rainer,
Rainer K. wrote:
> Ein Problem habe ich allerdings unter Linux: Beim Starten wird nach der> avr/io.h gesucht, obwohl ich unter Preferences->AVR->AVR Header Files> den richtigen Pfad eingestellt habe. Bei den Partdescriptionfiles> funktioniert das allerdings so. Das ganze ist relativ lästig, wenn ich> am Laptop arbeite, weil dort die Festplatte das ganze System ausbremst.> Das Problem besteht auch bei 2.1.
Ich habe mir gerade den Sourcecode dazu angeschaut und werde da leider
kurzfristig nichts machen können, da der Teil doch recht komplex ist und
ich massiv umstricken müsste um das Verhalten zu Ändern.
Aktuell startet das Plugin, sobald es selbst gestartet wird, einen
Hintergrund-Job, der versucht alle Pfade zu finden, auch wenn die Pfade
schon manuell gesetzt sind. Die Idee war, das - sobald der User wieder
einen Pfad auf "System" setzt - dieser schon im internen Cache vorhanden
ist und sofort verfügbar ist. Auf meinem (durchaus schnellen) Testsystem
hat das auch immer gut funktioniert ohne das mir diese Hintergrund-Suche
aufgefallen wäre.
Ich habe einen Bug Report in SourceForge abgesetzt als Erinnerung das in
einer der nächsten Versionen zu verbessern.
>> Einen Featurerequest hätte ich auch noch: Ein Shortcut für das> Programmieren mittels avrdude wäre super.
Da dieser Wunsch noch mehrfach geäußert wurde, werde ich wohl noch mal
nachbessern.
>> Danke für das tolle Plugin, vereinfacht das Entwickeln für die AVR-Reihe> ungemein. :)
Danke für das Feedback!
>> Liebe Grüße,>> Rainer
Thomas
Hallo Simon,
ich fasse jetzt mal alle Deine Posts in einer Antwort zusammen
> Habs heute auch mal installiert. Ging ja ohne Probleme diesmal. Die> alten Versionen und das AVRDUDE Plugin habe ich herausgeschmissen.> Sauber. Läuft perfekt.
Schön!
>> Was mich vielleicht etwas stört ist, dass nach einer Projekterstellung> immer das Debugprofil als Aktiv gesetzt ist. Aber das ist nur> Nebensache.
Das liegt nicht am Plugin sondern ist von CDT so vorgegeben. Wenn Du das
Debug Profil nicht brauchst kannst Du es bei der Projekterstellung
abwählen. Mehr bietet CDT leider nicht bei der Projekterstllung
> Ah, übrigens. In dem AVRDude Dialog in den Projektoptionen steht, dass> die BitClock Option nur für JTAG ICEs wäre. Das stimmt aber nicht,> soweit ich weiß, denn mit meinem AVR ISP mkII bewirkt diese Einstellung> auch die Veränderung der BitClock.
Den Satzhabe ich 1:1 aus der avrdude Doku übernommen, da ich mich nicht
genügend damit auskenne um etwas besseres zu schreiben.
Damit jeder weiss worum es geht, hier der Satz (aus dem avrdude manual):
1
-B bitclock
2
3
Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE only).
Wenn mir jemand (der sich gut mit avrdude auskennt) bestätigt, das
BitClock für alle ISP Programmer funktioniert, dann nehme ich das "(JTAG
ICE only)" auch gerne raus.
>> Die AVRDDUDE Unterstützung ist sagenhaft, geradezu ein Traum! Absolut> komfortabel und einfach.>> Sehr gute Arbeit. :-)
Das ist gut zu höhren.
So, ich hoffe ich habe jetzt keinen Deiner Posts übersehen.
Liebe Grüße,
Thomas
Hallo 900ss D.,
auch für Dich werde ich jetzt mal gesammelt antworten :-)
900ss D. wrote:
> Hi Thomas,>> Ich habe ein paar Versuch gemacht und was soll ich sagen. PERFEKT!> Ich ziehe echt meinen Hut.
Auch hier: Danke schön!
> Hast du das AVRDUDE mit deinem Dragon> probiert oder wie hast Du das ganze getestet.
Nein, der Dragon leidet immer noch an der kalten Lötstelle und einem
Mangel an Lötkolben meinerseits. Ich habe mir inzwischen noch ein STK500
zugelegt und alles damit getestet.
> Wo kommt den die Liste der Supported CPUs her? Und was haben die Spalten> für einen konkrete Bedeutung? Hab ich eben so schnell nicht ganz> geblickt.
Das werde ich für die final Release noch in der Dokumentation
beschreiben. Aber hier schon mal eine kurze Erklärung.
Die einzelnen Spalten werden (meistens) dynamisch generiert und zeigen
Dir an, welche AVRs von den einzelnen Tools unterstützt werden.
"avr-gcc" und "avrdude" sollten selbsterklärend sein.
"avr/io.h" sind alle MCUs, die in <avr/io.h> definiert sind.
Normalerweise sind das die selben, die auch avr-gcc unterstützt, aber
bei mehreren installierten avr toolchains und entsprechenden Pfad
Einstellungen kann das auch anders aussehen.
"Fuses" sind alle MCUs, für die das Plugin Fuse Bytes kennt.
"AVR Studio" sind alle MCUs, für die es Part Definition Files von Atmel
gibt.
Die beiden letztgenannten Spalten sind derzeit noch statisch, d.h. die
Daten werden von mir mit einem kleinen Tool generiert und fest ins
Plugin eingebaut. Das wird sich aber mit einer der nächsten Versionen
ändern und das Plugin wird selbstständig die PartDescriptionFiles lesen
können (wo vorhanden)
"Signature" ist nur so zur Info und enthält die Signature Bytes aus den
Part Description Files.
Das ganze war ursprünglich nur ein Debug Tool um zu sehen, ob das Plugin
den Output von avrdude und avr-gcc richtig liest. Aber ich denke das der
Viewer auch ganz nützlich ist, um die richtige MCU für ein neues Projekt
auszuwählen. Wäre ja dumm, wenn man sich z.B. für ein ATmega165
entscheidet und dann feststellt, dass avrdude (zumindest Version 5.5)
den gar nicht unterstützt.
> Und auch sehr schön das runterladen der Datenblätter. Woher> bekommst Du denn die Links? Du hast die nicht alle irgendwoher gesucht?> Wenn ATMEL die ändert, was dann?
Die Links habe ich eigenhändig auf der Atmel Homepage zusammengesucht.
Ab der nächsten Version des Plugins wird es auch Preferences geben, um
die Links manuell zu ändern.
> [...]> Du mußt den Navigator-View aufmachen. Dort gibt es ein Kontextmemu> "AVR". [...]> @Thomas: Dann hat sich mein vorheriger Beitrag natürlich erledigt. Es> wäre dann natürlich auch schön, das Kontextmenu des C/C++ Views auch um> "AVR" zu ergänzen. :-)
Das war ein Bug und ist schon behoben. AVR taucht jetzt auch im "C/C++
Explorer" auf.
> Ich nutze nicht das automatische Programmieren mit dem AVRDUDE. Mache es> manuell. Und dafür in dem Kontextmenu rumzugraben ist doof.> Wenn es mit vertretbarem Aufwand möglich ist, dann hätte ich gerne einen> Button oben im Eclipsefenster.> Vielleicht ist ja gerade "Wünsch Dir Was" Zeit ;-)
Eigentlich müsste ich jetzt sagen das wir hier bei "So Isses" sind (und
ich eigentlich keine neue Features mehr in 2.2 aufnehmen wollte).
Aber ich denke so ein Button macht Sinn, vor allem wenn er noch mit
einem Key Shortcut belegt ist. Ich werde mir das mal anschauen und -
wenn es nicht zu aufwendig ist - noch integrieren.
> Ich hätte da schon eine Erweiterung für den AVRDUDE Support ;-) Aber> jetzt nicht.
Schiess ruhig los, auch wenn ich es nicht mehr in 2.2 aufnehmen werde,
so mache ich mir durchaus schon einige Gedanken zu 2.3.
> Es ist so schon Klasse.>> Dann fall nicht vom Himmel ;-)
Im Moment keine Gefahr :-) Ich bin die nächsten Wochen am Boden und
schule auf den A340 um.
Liebe Grüße,
Thomas
Thomas Holland wrote:
>> Wenn es mit vertretbarem Aufwand möglich ist, dann hätte ich gerne einen>> Button oben im Eclipsefenster.> Aber ich denke so ein Button macht Sinn, vor allem wenn er noch mit> einem Key Shortcut belegt ist. Ich werde mir das mal anschauen und -> wenn es nicht zu aufwändig ist - noch integrieren.
War nicht aufwändig und ist schon implementiert - als Toolbar Button,
als Main Menu und als Key Binding (Ctrl+Alt+U) - wenn dann richtig ;-)
Thomas
Hallo Thomas,
habe einen kleinen Bug gefunden.
In den C/C++ -> General -> Path and symbols Options
ist jetzt ein Pfad eingetragen den es nicht mehr gibt.
Und zwar habe ich die WinAVR Version gewechselt. Sie steht zwar im
gleichen Pfad wie die alte Version, aber innerhalb der WinAVR
Directories gibt es unterschiedliche Pfadnamen zwischen den Versionen.
Das Plugin hat mit Zauberhand die neuen Pfade addiert, aber die alten
auch drin gelassen, die gibt es aber nicht mehr und nun bekomme ich eine
Warnung beim MAKE (Build). Ich kann den Eintrag auch nicht löschen in
den Optionen.
Im Anhang siehst Du das Fenster mit den Optionen.
Pfad: ..../4.2.2/.... ist der Falsche.
Hast Du Abhilfe?
Vielen Dank. Habe inzwischen 3 Projekte mit dem neuen Plugin kompiliert,
alles lief prima :-)
Gruß 900ss
Edit: Fast hatte ich was unterschlagen. Ich habe vorhin eine neue
Build-Konfiguration anlegen müssen, weil das Plugin nicht mehr dafür
sorgte das Print-Size aufgerufen wurde. In der Release Konfig. ging es.
Habe die Debug gelöscht und dann eine neue angelegt, nun ist wieder
alles OK.
Hi 900ss
> Hallo Thomas,>> habe einen kleinen Bug gefunden.> In den C/C++ -> General -> Path and symbols Options> ist jetzt ein Pfad eingetragen den es nicht mehr gibt.
Ja, das ist ein Bug, aber ich bin mir fast sicher, dass er bei CDT
liegt. Ich habe - als ich das Discovery Profile für avr-gcc programmiert
habe - keine Möglichkeit im CDT API gefunden, einmal erkannte Pfade oder
Symbole wieder zu löschen. Wenn ich wieder zu Hause bin werde ich mir
das ganze noch mal ganz genau anschauen, ob es nicht doch irgendeine
Möglichkeit gibt, evtl. unter Umgehung des offiziellen CDT API.
Hier ein Workaround. Ich bin gerade unterwegs und kann es nicht selbst
ausprobieren, aber es müsste an sich funktionieren:
Der Ordner "[Dein
workspace]\.metadata\.plugins\org.eclipse.cdt.make.core" enthält Dateien
(*.sc) mit den ermittelten Pfaden und Symbolen, jeweils eine pro
Projekt. Du könntest entweder versuchen die betroffenen Dateien zu
editieren (während Eclipse nicht läuft) oder gleich ganz zu löschen. Bei
letzterem müsste CDT die Sourcen erneut scannen und damit die
..\4.2.2\.. Einträge vergessen.
Das ist, wie gesagt, nicht selbst getestet, also bitte unbedingt vorher
ein Backup der Datei(en) machen.
>> Edit: Fast hatte ich was unterschlagen. Ich habe vorhin eine neue> Build-Konfiguration anlegen müssen, weil das Plugin nicht mehr dafür> sorgte das Print-Size aufgerufen wurde. In der Release Konfig. ging es.> Habe die Debug gelöscht und dann eine neue angelegt, nun ist wieder> alles OK.
Wenn das Problem nochmal auftreten sollte schick mir doch bitte (wie
gehabt :-)) die ".cproject" Datei des betroffenen Projektes zur Analyse.
Liebe Grüße, diesmal aus Berlin,
Thomas
Ja, das Löschen des sc-Files hat geholfen. Allerdings habe ich nur von
einem Projekt einen LC-File. Das ist das Projekt, welches ich neu
anlegen mußte, wie oben beschrieben. Alle anderen Projekte haben diesen
sc-File nicht. Das Problem besteht dort allerdings auch nicht :-)
Danke für den Tip.
Und viel Spaß beim Nachtleben in Berlin ;-)
900ss
Dann hast Du wohl die anderen Projekte noch mit Version 2.0 angelegt. Im
allerersten Beitrag in diesem Thread steht wie man - indirekt - auch für
die alten Projekt *.sc Dateien erzeugt. Aber das ganze ist nur eine
Komfortfunktion (mit Nebenwirkungen wie Du ja festgestellt hast) und
nicht unbedingt nötig.
Das Nachtleben hier in Berlin ist bestimmt ganz toll - dummerweise sitze
ich im Hotelzimmer und muss lernen :-(
Vielleicht habe ich morgen etwas Zeit...
Hallo Thomas!
Leider habe ich mit der Version 2.1.1 ein problem. Wenn ich ein neues
Projekt erzeuge wähle ich unter Eclipse: - Datei ->Neu -> C-Projekt,
->Projekt type: AVR - Cross - Target Aplication ->Toolchain: AVR-GCC
Toolchain -> Name:testblaa
Wenn ich dann zwei mal weiter drücke wähle ich den µC aus: ->Type ATmega
64 und z.b. 11Mhz.
Lasse ich nun das ganze Compilieren mach er dass aber nur für den Atmega
16 mit 10MHZ:
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums
-funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=1000000UL
-MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
Finished building: ../main.c
Das Makefile ist auch eindeutig:
# All Target
all: testblaa.elf secondary-outputs
# Tool invocations
testblaa.elf: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,testblaa.map -mmcu=atmega16 -o"testblaa.elf" $(OBJS)
$(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
nur dies kann ich ja nicht ändern, da es jedemal "neu" erzeugt wird!
Trage ich aber nun unter Tool Setting -> AVR-Compiler ->Command
:"avr-gcc -mmcu=atmega64 -DF_CPU=1100000UL" ein, erhalte ich den netten
hinweis, ich hätte -mmcu und -DF_CPU redefined!
Siehe:
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -mmcu=atmega64 -DF_CPU=1100000UL -Wall -g2 -gstabs -O0
-fpack-struct -fshort-enums -funsigned-char -funsigned-bitfields
-mmcu=atmega16 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.d" -c
-o"main.o" "../main.c"
<command line>:1:1: warning: "F_CPU" redefined
<command line>:1:1: warning: this is the location of the previous
definition
Finished building: ../main.c
Warum?
Liegt es am Eclipse Plugin oder am AVR Toolchain zeug?
P.s.: Ich verwende Suse 10.3, unter deinen neuen Beta 2.2 habe ich ein
Analoges verhalten!
Vielen Dank im voraus
Grüße Gunnar
Hallo Gunnar,
was passiert denn, wenn Du die MCU über die Project Properties änderst?
Also Rechts-Click aufs Projekt und dann "Properties -> AVR -> Target
Hardware".
Wenn es damit auch nicht gehen sollte, dann bräuchte ich die Datei
".cproject" aus dem Projektverzeichnis des nicht funktionierenden
Projektes sowie die Datei "de.innot.avreclipse.core.prefs" aus dem
Unterordner ".storage" um den möglichen Fehler etwas einzukreisen. Auch
die Eclipse Log-Datei könnte helfen "Help -> About Eclipse Platform ->
Configuration Details -> View Error Log".
LG
Thomas
Ich hab versucht das Plugin unter Ubuntu zu installieren, aber irgendwie
funktioniert es nicht so wie es soll.
Ich hab also erstmal die eclipse und enclipse-cdt Pakete installiert,
dann hab ich die Ordner "features" und "plugins" aus dem Zip-Archiv nach
/usr/lib/eclipse kopiert.
Jetzt ist das Plugin aber nicht richtig installiert, das einzige was ich
von dem Plugin bemerke ist dass in der Hilfe ein neuer Eintrag da ist.
Installieren unter Ubuntu wrote:
> Ich hab versucht das Plugin unter Ubuntu zu installieren, aber irgendwie> funktioniert es nicht so wie es soll.
Das ist schlecht...
> Ich hab also erstmal die eclipse und enclipse-cdt Pakete installiert,> dann hab ich die Ordner "features" und "plugins" aus dem Zip-Archiv nach> /usr/lib/eclipse kopiert.
So weit so gut...
> Jetzt ist das Plugin aber nicht richtig installiert, das einzige was ich> von dem Plugin bemerke ist dass in der Hilfe ein neuer Eintrag da ist.
Allzuviel sieht man von dem Plugin auch nicht.
Zwei Sachen sollten aber möglich sein:
1.) im "Windows" Menu "Show View" anwählen und dann "Other" auswählen.
Dann sollte es in der Liste einen Eintrag "AVR" geben mit zwei Views.
2.) Ein neues "C Project" anlegen. Dann sollte "AVR Cross Target
Application" in der Liste der möglichen C Projekte erscheinen. Wenn dem
so ist kannst Du gemäß dem mini-Tutorial in der Hilfe weitermachen.
Sag Bescheid, wenn einer der beiden Punkte nicht erfüllt sein sollte.
Thomas
Ich mal nachgeschaut aber ich sehe an beiden Stellen nichts, was danach
aussieht.
Außerdem bin ich zufällig drauf gestoßen, dass unter Help/About Eclipse
auch angezeigt wird, dass das AVR Plugin installiert ist. Ich hab mal
den Screenshot mitgeschickt was Eclipse anzeigt, wenn ich auf das Icon
von dem Plugin drücke.
Hallo Thomas!
Danke für deine mühe. Die lösung war denkbar einfach:
Aus Irgendeinen grund war die version von Eclipse 3.3 die ich über Yast
installiert hatte nicht lauffahig mit deinem Plugin. Ich habe Eclipse
nun direkt heruntergeladen und aus dem Verzeichniss gestartet!
Die Ursache ???
Viele Grüße
Gunnar
Installieren unter Ubuntu wrote:
> Ich mal nachgeschaut aber ich sehe an beiden Stellen nichts, was danach> aussieht.> Außerdem bin ich zufällig drauf gestoßen, dass unter Help/About Eclipse> auch angezeigt wird, dass das AVR Plugin installiert ist. Ich hab mal> den Screenshot mitgeschickt was Eclipse anzeigt, wenn ich auf das Icon> von dem Plugin drücke.
OK, das Plugin ist installiert aber aus irgendeinem Grund wird es
möglicherweise nicht gestartet. Hier könnte mir evtl. das Eclipse Error
Log helfen. Das Error Log findest Du unter "Help -> About Eclipse
Platform ->
Configuration Details -> View Error Log". Schick es mir am besten als
Mail (thomas@innot.de) und ich schau mal ob ich einen möglichen Fehler
finde.
Ich habe das Plugin auch unter Ubuntu getestet (mit einem frischen
"Eclipse IDE for C/C++ Developers" Download von eclipse.org) - es sollte
also grundsätzlich mit Ubuntu funktionieren.
Thomas
Ich habe mir heute mal CDT v5 und Eclipse Ganymede:
1
Version: 3.4.0
2
Build id: I20080609-1311
heruntergeladen und es funktioniert astrein mit deinem AVR-Eclipse
Plugin.
Übrigens einige SEHR interessante Features hat das CDT5:
http://wiki.eclipse.org/CDT/User/NewIn50
-Templates (Kann beim .c/.h Datei erstellen automatisch einen kleinen
Header einfügen in die neue Datei etc..
-Doxygen Parameter Support
-Um einiges verbesserter Code-Styler
usw..
Hi Simon,
das ist gut zu hören:-)
Ich hatte bisher noch keine Zeit das Plugin auch mal mit Ganymede
auszuprobieren und hatte schon etwas sorge das evtl. ein paar Features
nicht mehr funktionieren könnten.
Ab nächste Woche habe ich wieder etwas mehr Zeit und sobald ich die das
User Manual fertig habe werde ich 2.2 releasen und dann auch mal Eclipse
3.4 installieren. Mal sehen ob CDT 5.0 noch ein paar mehr für das Plugin
nützliche Features bietet.
Liebe Grüße,
Thomas
So, für alle die diesen Thread per Email-Benachrichtigung verfolgen:
Ich habe gerade Version 2.2 released.
Den entsprechenden neuen Thread findet ihr hier
Beitrag "AVR Eclipse Plugin 2.2"
LG
Thomas