Forum: Compiler & IDEs AVR Eclipse Plugin 2.1 Released


von Thomas H. (innot)


Lesenswert?

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
1
********************************************************************************
2
*                      AVR Eclipse Plugin Release Notes                        *
3
*                                                                              *
4
* A plugin supporting the development of applications for the                  *
5
* AVR series of Processors.                                                    *
6
* See details at http://avr-eclipse.sourceforge.net                            *
7
********************************************************************************
8
$Id: releasenotes.txt 199 2008-02-10 21:33:01Z innot $
9
10
================================================================================
11
Version 2.1.0 release date: 10 February 2008
12
13
This is an intermediate release with both bug fixes and new features.
14
15
This release is not compatible with the 2.0 versions. To update projects created
16
with a 2.0.x version, a project converter is available.
17
To execute the converter right click on your project and select the "Convert To..."
18
item.
19
20
Avrdude - one of the most requested features - is still not supported, but there
21
is already some framework code in place for the integration of avrdude in the next
22
release.
23
24
1. What's new
25
26
  * C/C++ Support
27
    Just create a new "C++ Project" and select one of the "AVR Cross Target" items.
28
29
  * Preference Page to manage the paths to the avr-gcc toolchain
30
    Use this if you have problems with the correct paths. The plugin still tries to
31
    determine the paths to the avr-gcc toolchain and some other files itself, but 
32
    the discovered paths can now be manually adjusted.
33
34
  * The MCU type setting is now a project property setting
35
    Right click on an AVR Project and select the AVR Target Hardware item to set the 
36
    MCU Type and Frequency.
37
    Note: per configuration selection of the MCU / F_CPU will come back in one of the 
38
    next versions, but implemented differently than in the 2.0 version.
39
40
  * A dedicated "Discovery Profile".
41
    On the project properties go to C/C++ Build --> Discovery Options and select
42
    "AVRGCCManagedMakePerProjectProfileC" or "AVRGCCManagedMakePerProjectProfileCPP".
43
    Then Eclipse will automatically determine the path to the system header filer (e.g. <avr/io.h>)
44
    This is very useful as now an F3 on any #include <....> will open the file. Also the source 
45
    editor will color #ifdef (__AVR_yourMCUtype__) sections correctly (see known issues below).
46
47
  * Additional Options for the Compiler.
48
    A few options have been added that are also the default on mfile generated makefiles.
49
50
  * Dependencies for the Compiler (and Assembler) work now, so any changes to a header file
51
    will cause all dependent source files to be rebuild.
52
53
  * List of supported MCUs determined at runtime.
54
    Now the plugin is always in sync with your avr-gcc / winAVR version.
55
56
  * Numerous improvements "under the hood" and some bugfixes. See the changelog for details.
57
  
58
2. Information
59
60
2.1. System Requirements
61
62
   AVR Eclipse requires JRE 1.5 or higher and supports following versions of CDT:
63
    * CDT 4.0.x (Eclipse 3.3)
64
   
65
   older versions of the JRE or of Eclipse / CDT are not supported
66
   
67
   It has been tested with
68
     - Windows XP + winAVR 20071221 / 20070525
69
     - Linux X86 (Ubuntu 7.10 + Ubuntu supplied avr-gcc / custom build avr-gcc)
70
     
71
     It should run on all platforms meeting the system requirements.
72
73
2.2 Known issues
74
75
  * When changing the MCU Type of a project, Eclipse will add the discovered symbols of
76
    the new MCU to the list of "build-in" symbols, but still keeps the symbols of the 
77
    previous MCU Types (Eclipse currently never forgets any discovered symbols).

von Oliver (Gast)


Lesenswert?

Der Update über
http://avr-eclipse.sourceforge.net/updatesite/
klappt bei mir irendwie nicht.

>Update operation has failed
>  Error retrieving "plugins/de.innot.avreclipse_2.1.0.20080210PRD.jar". >[Server 
returned HTTP response code: "404 Not Found" for URL: 
>http://avr-eclipse.sourceforge.net/updatesite/plugins/de.innot.avreclipse_2.1.0.20080210PRD.jar.]
>  Server returned HTTP response code: "404 Not Found" for URL: 
>http://avr-eclipse.sourceforge.net/updatesite/plugins/de.innot.avreclipse_2.1.0.20080210PRD.jar.

Oliver

von Thomas H. (innot)


Lesenswert?

Der Fehler war, das noch ein paar Dateien auf der Updatesite fehlten.

Ist jetzt behoben und der Update sollte gehen.

von Stefan (Gast)


Lesenswert?

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

von Thomas H. (innot)


Angehängte Dateien:

Lesenswert?

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

von Stefan (Gast)


Lesenswert?

Hallo Thomas

Vielen dank für die schnelle Hilfe, funktioniert nun wie gewollt.

Schön das wir uns so gut geholfen haben ;)


Gruß Stefan

von Thomas (Gast)


Lesenswert?

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

von Ha Jo (Gast)


Lesenswert?

> 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

von Peter (Gast)


Lesenswert?

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

von Ha Jo (Gast)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Ha Jo (Gast)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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

von Ha Jo (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

@Hajo

Welches ist denn die aktuellste Version? Die V1.4.8 ist vom 28. Januar 
2008, ich finde keine neuere:

http://download.savannah.gnu.org/releases/avr-libc/?C=M;O=D
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59122

Allerdings werde ich auch nicht schlau daraus, warum einmal von V1.6.x 
die Rede ist und dann wieder von V1.4.x

Jörg, könntest du mir da auf die Sprünge helfen?

von Ha Jo (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?


von Andreas (Gast)


Lesenswert?

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?

von Thomas H. (innot)


Lesenswert?

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

von Ha Jo (Gast)


Lesenswert?

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

von Sven K. (skasko)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Sven K. (skasko)


Lesenswert?

Alles klar und danke für die schnelle Antwort.

Gruß
Sven

von Thomas H. (innot)


Lesenswert?

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

von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

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 :(

von Thomas H. (innot)


Lesenswert?

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

von Markus B. (Firma: Embedit Mikrocontrollertechnik) (_mb_)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von gast (Gast)


Lesenswert?

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 ???

von Werner B. (Gast)


Lesenswert?

@ 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 ;-)

von Robert Höller (Gast)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

.
verfahren nach ...
http://avr-eclipse.sourceforge.net/index.html

Download

There are two ways to download the AVR Eclipse Plugin.
Update Site

ergebnis ....

von Thomas H. (innot)


Lesenswert?

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

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

.
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.  ;-((

von Thomas H. (innot)


Lesenswert?

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.

von Gast (Gast)


Lesenswert?

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 ?  ;-)

von Robert Höller (Gast)


Lesenswert?

>> 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:
1
 #define cli() __asm__  __volatile__ ("cli" ::)

Ciao - Robert

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Robert H. (rhh)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

.
> 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.

.

von Gast (Gast)


Lesenswert?

.
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 ?

von ARM-Fan (Gast)


Lesenswert?

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. ;-)

von ARM-Fan (Gast)


Lesenswert?

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?

von ARM-Fan (Gast)


Lesenswert?

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

von ARM-Fan (Gast)


Lesenswert?

Kurzer Nachtrag: Bei einem Kollegen, der die selbe Workstation hat,
funktioniert es auch nicht..

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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...)

von ARM-Fan (Gast)


Lesenswert?

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)

von ARM-Fan (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Screenshot von den Preferences.
Er scheint den Pfad wirklich nicht zu finden.

Mein WinAVR Pfad lautet "E:\Programme\WinAVR_20070525"

von ARM-Fan (Gast)


Lesenswert?

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)

von ARM-Fan (Gast)


Lesenswert?

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?

von Thomas H. (innot)


Lesenswert?

ARM-Fan wrote:
1
!ENTRY org.eclipse.ui 4 0 2008-04-04 12:09:11.057
2
!MESSAGE Unhandled event loop exception
3
!STACK 0
4
java.lang.IllegalArgumentException: Argument cannot be null
5
  at org.eclipse.swt.SWT.error(SWT.java:3547)
6
  at org.eclipse.swt.SWT.error(SWT.java:3481)
7
  at org.eclipse.swt.SWT.error(SWT.java:3452)
8
  at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
9
  at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:934)
10
  at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:910)
11
  at
12
de.innot.avreclipse.ui.wizards.MCUselectPage.createControl(MCUselectPage.java:160)
13
[...]

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

von Frank N. (arm-fan)


Lesenswert?

>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

von Jens Maul (Gast)


Lesenswert?

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?

von A. M. (bacarni) Benutzerseite


Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

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

von Jens Maul (Gast)


Lesenswert?

Super, am Wochenende wäre das perfekt ;)

Ich würde ja gerne helfen, aber ich hab keinen Plan von Eclipse oder 
Java

von Thomas H. (innot)


Lesenswert?

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)
1
    <option id="de.innot.avreclipse.compiler.option.targetfcpu" 
2
        name="MCU Clock Frequency"
3
        valueType="string" 
4
        defaultValue="${AVRTARGETFCPU}"
5
        command="-DF_CPU=${value}UL" >

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

von Thomas H. (innot)


Lesenswert?

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

von 900ss (900ss)


Lesenswert?

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 :-)

von A. M. (bacarni) Benutzerseite


Lesenswert?

Thomas Holland wrote:
> Das UL ist an folgender Stelle definiert (am besten nach der id suchen,
> die ist einmalig in der Datei)
>
>
1
>     <option id="de.innot.avreclipse.compiler.option.targetfcpu"
2
>         name="MCU Clock Frequency"
3
>         valueType="string"
4
>         defaultValue="${AVRTARGETFCPU}"
5
>         command="-DF_CPU=${value}UL" >
6
>
>


Vielen Dank! Ich werde es nachher einmal testen.

von A. M. (bacarni) Benutzerseite


Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von 900ss (900ss)


Lesenswert?

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?

von Thomas H. (innot)


Lesenswert?

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

von A. M. (bacarni) Benutzerseite


Lesenswert?

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. Weiterhin könnten dir Seiten http://kde-look.org/ , 
http://gnome-look.org/ und http://www.deviantart.com/ bezüglich der 
Icons weiterhelfen.

von 900ss (900ss)


Lesenswert?

Arnulf Mittelstädt wrote:
> Compilieren immer
1
-DF_CPU=3868400UL
 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

von Jens Maul (Gast)


Lesenswert?

>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?

von Jürgen (Gast)


Lesenswert?

.
> 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 ???

von A. M. (bacarni) Benutzerseite


Lesenswert?

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.

von A. M. (bacarni) Benutzerseite


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von 900ss (900ss)


Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von 900ss (900ss)


Lesenswert?

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..... :-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Ooops, glatt übersehen. Danke dir! :-) Das sollte man vielleicht in der 
Wiki mal ändern.

von Thomas H. (innot)


Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

> Simon K. wrote:
>> Ooops, glatt übersehen. Danke dir! :-) Das sollte man vielleicht in der
>> Wiki mal ändern.

Erledigt!

von Thomas H. (innot)


Lesenswert?

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:
1
================================================================================
2
3
Version 2.2.0
4
5
New:
6
-----------------------------
7
* AVRDude support
8
  - A list of Programmers can be managed via the AVRDude preferences.
9
  - AVRDude project properties to set all properties.
10
  - (optional) avrdude tool in toolchain to auto-upload the project whenever the project is build.
11
  - "Upload Project to Device" action in the project context menu to manually upload with avrdude.
12
  
13
* Target Hardware properties can now also be defined per build configuration.
14
  - Enable in the project properties on the AVR page.
15
16
* Supported MCU View
17
  - Show a list of all MCUs supported by the plugin and various subsystems like gcc and avrdude.
18
  - Clickable hyperlinks to the Atmel datasheets for most MCUs.
19
  - Activate with "Window -> Show View -> Other... -> AVR -> AVR Supported MCUs"
20
21
Changed / Improved:
22
-----------------------------
23
* AVR Device Explorer
24
  The Device Explorer is now a Selection Listener and Provider.
25
  When selecting a AVR project or a text which starts with a valid MCU name,
26
  the associated MCU information is shown in the Device Explorer
27
28
* Build variables
29
  The build variables defined by the plugin (e.g. ${AVRTARGETMCU} and ${AVRTARGETFCPU}) can now 
30
  have an optional argument to read the value from a different project or build configuration.
31
  Example: ${AVRTARGETMCU:project01/release} gets the target mcu of the "release" configuration of 
32
           project "project01". 
33
34
Fixes:
35
-----------------------------
36
* Windows: Now the last installed version of winAVR is used when multiple winAVR
37
  versions are installed
38
  
39
* Multiple failures when some / all of the paths were invalid. Fixed and replaced by error messages.

von Oliver (Gast)


Lesenswert?

Gibt es eine Möglichkeit, die beta 2.2 parallel zu Version 2.1 zu 
installieren (ausser mit zwei getrennten Eclipse - Istallation)?

Oliver

von Thomas H. (innot)


Lesenswert?

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.

von Oliver (Gast)


Lesenswert?

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

von Oliver (Gast)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

Juhu, per-projekt AVRDUDE Konfiguration :-) Sauber!

Meinen tiefsten Respekt zu dem Plugin. Damit macht das Entwickeln 
richtig Spaß.

von Rainer K. (draugdel)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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. :-)

von 900ss (900ss)


Lesenswert?

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ß

von 900ss (900ss)


Lesenswert?

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 
;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

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?

von 900ss (900ss)


Lesenswert?

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. :-)

von Thomas H. (innot)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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 :-)

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von 900ss (900ss)


Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Dirk (Gast)


Lesenswert?

Vielen Dank für das tolle Plugin!
Das Teil läuft super!
Mfg.
Dirk

von 900ss (900ss)


Angehängte Dateien:

Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

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

von 900ss (900ss)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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...

von Gunnar L. (trabiman)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Installieren unter Ubuntu (Gast)


Lesenswert?

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.

von Thomas H. (innot)


Lesenswert?

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

von Installieren unter Ubuntu (Gast)



Lesenswert?

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.

von Gunnar L. (trabiman)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

von Simon K. (simon) Benutzerseite


Lesenswert?

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..

von Thomas H. (innot)


Lesenswert?

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

von Thomas H. (innot)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.