Forum: Compiler & IDEs AVR Eclipse Plugin 2.3


von Thomas H. (innot)


Lesenswert?

Hallo,

ich habe jetzt Version 2.3 meines Eclipse plugins für AVR zum Download
bereitgestellt.

Direkter Download:
http://sourceforge.net/project/showfiles.php?group_id=189165&package_id=221494&release_id=644246

Updatesite: http://avr-eclipse.sourceforge.net/updatesite/

Eigentlich wollte ich das User Manual noch etwas mehr vervollständigen, 
aber wie schon bei Version 2.2 habe ich festgestellt, das mir das 
Anleitung schreiben nicht genug Spaß macht und daher ist das Manual nur 
minimal überarbeitet.

Gegenüber der Beta1 gibt es noch ein paar Bugfixes und die Funktion 
"Upload to Target Hardware" dürfte jetzt um einiges schneller laufen.
Des weiteren habe ich noch die Links zu den Datasheets und die 
Fuse-/Lockbyte Beschreibungsdateien auf dem neusten Stand gebracht.

Hauptneuigkeit ist natürlich der Fusebyte Editor. Wer die Beta1 noch 
nicht ausprobiert hat kann sich auf 
http://avr-eclipse.sourceforge.net/user%20manual/other/whatsnew.html mal 
ein paar Screenshots dazu ansehen.

Ansonsten beschränken sich die Änderungen gegenüber Version 2.2 auf 
Detailverbesserungen und Bugfixes.

Viel Spaß beim Fuse-Byte frickeln,

Thomas

1
********************************************************************************
2
*                      AVR Eclipse Plugin Change Log                           *
3
*                                                                              *
4
* A plugin supporting the development of applications for the AVR series       *
5
* of Processors.                                                               *
6
* See details at http://avr-eclipse.sourceforge.net                            *
7
********************************************************************************
8
$Id: changelog.txt 636 2008-12-01 19:07:47Z innot $
9
10
================================================================================
11
Version 2.3.0 [02. December 2008]
12
13
New:
14
-----------------------------
15
* Support for Fuses / LockBits files
16
  - Two new wizards to create fuse and lockbit files (New -> Other -> AVR -> ....)
17
  - An editor to edit these files.
18
  - The files can be selected as the fuses / lockbits source on the AVRDude property
19
    Fuses / Lockbits pages.
20
21
* Detailed preview of the selected fuse bytes on the project 
22
  AVRDude property Fuses / Lockbits pages. 
23
24
Changed / Improved:
25
-----------------------------
26
* ATXmega processors are now fully supported. (Except for the upload with 
27
  avrdude because avrdude 5.5 does not yet support the ATXmega line.) 
28
 
29
* The AVRDude project properties now have a new field "other options" to add
30
  avrdude options not supported by the plugin. (As of version 2.3 the plugin
31
  supports all options for avrdude version 5.5).
32
33
* Improved path handling.
34
  All system paths are now saved in a persistent cache, so they need to be
35
  searched only once. 
36
  By default the plugin will still search all paths at startup, but this can
37
  be inhibited on the AVR preference page. Once inhibited any system 
38
  reconfigurations (like a new avr-gcc toolchain in a different directory) 
39
  are not automatically recognized any more.
40
  In this case the new "Rescan" button on the AVR path preferences can be 
41
  used to look for the new path.
42
43
  Improved since 2.3 Beta 1
44
45
* "Upload to Target Hardware" method now uploads all memory segments with one call
46
  to avrdude. This should speed up the upload significantly for most configurations.  
47
48
* Fuse description files now based on AVR Tools 4.15 Build 623
49
50
* Updated links to the datasheets.
51
52
Fixes:
53
-----------------------------
54
55
* Bug 1962594: Searching for System Paths slow on Linux.
56
  See above for a description of the fix.
57
58
* Bug 2008171: Build System ignores .c files in C++ project - Fixed.  
59
60
* Bug 2011424: Added a descriptive error message when the build directory is
61
  not valid.  
62
63
* Bug 2020689: avrdude option -D (Disable auto erase for flash) missing.
64
  Fixed: added option to inhibit auto erase.   
65
66
* Bug 2050945: Read Back of "Enable Individual Settings ..."
67
  Fixed: removed internal caching of project setting.
68
 
69
* Bug 2071415: Timing issue with USB / AVR Dragon
70
  Fixed by adding a user selectable delay between avrdude programming calls.
71
  The value is set on the Programmer Configuration dialog
72
  (Window -> Preferences -> AVR -> AVRDude -> Programmer configurations -> Edit...) 
73
 
74
  Fixed since 2.3 Beta 1:  
75
76
* Bug 2136888: Custom path to avrdude executable not honored in build.
77
  Fixed: The build process now takes custom avrdude paths into account.  
78
79
* Bug 2347110: AVRDude "Upload to target hardware" fails silently when the project
80
  name contains an "-U".
81
  Fixed.
82
83
* Signature based autorecognition of attached MCU will now use the MCU with the shortest
84
  name when multiple MCUs share the same signature (e.g. ATmega169 / ATmega169P).
85
  This makes working with the AVR Butterfly easier.

von Gast (Gast)


Lesenswert?

... und nicht vergessen ältere "Eclipse plugins für AVR" aus dem 
\eclipse\plugins Verzeichniss zu löschen.

MfG

von Markus _. (markush)


Lesenswert?

@Thomas: Vielen Dank - Funzt problemlos!

Gruß - Markus

von Christian I. (alloc)


Lesenswert?

> ... und nicht vergessen ältere "Eclipse plugins für AVR" aus dem
> \eclipse\plugins Verzeichniss zu löschen.
Wenn man das Plugin über die Updateseite installiert hat (das 2.2er), 
muss man dann auch von Hand was machen oder reicht da ein Update über 
den Upd-Manager?

Grüße,
Chris

von Gast (Gast)


Lesenswert?

Hallo,
> Wenn man das Plugin über die Updateseite installiert hat...

keine Ahnung :-)
konnte bei mir keine Projekte mehr öffnen, bis alle 
de.innot.avreclipse.*.* bis auf 
de.innot.avreclipse.source_2.3.0.20081202PRD gelöscht waren.

Grüße aus dem verschneitem Odenwald

von Thomas H. (innot)


Lesenswert?

Hat noch irgend jemand das Problem, dass er erst die alte Version des 
Plugins löschen musste?

An sich sollte es kein Problem sein mehrere Versionen eines Plugins im 
Eclipse Verzeichnis zu haben. Eclipse nimmt immer die aktuellste Version 
und ignoriert ältere.

Ich habe es mit 2.3 noch nicht getestet, aber bei älteren Versionen des 
Plugins hatte ich oft 2 oder mehr Testversionen gleichzeitig im Eclipse 
Verzeichnis und hatte nie Probleme damit.

@Gast: Welche Version von Eclipse benutzt Du? 3.3 (Europa) oder 3.4 
(Ganymede)?

von Gast (Gast)


Lesenswert?

Hallo,

Version ist Ganymede.

Problem war das Eclipse beim öffnen der Projekteinstellungen 
[Project->Proporties] mit einer Fehlermeldung abbrach [Object in XY not 
found ..]

Werde mal versuchen das ganze nachvollziehbar zu machen

bis bald...

von Markus (Gast)


Lesenswert?

Ich habe, um dem vorzubeugen erst die Version 2.2 deinstalliert, dann 
das Verzeichnis wie oben beschrieben gelöscht und dann über Eclipse 
Update die 2.3 installiert.

Bisher hatte ich keine Probleme, allerdings ab ich auch noch nicht 
kompilliert.

Vielen Dank für das Update!

von Christian I. (alloc)


Angehängte Dateien:

Lesenswert?

Hi,

hab grad über den UpdateManager auf 2.3 geupdatet.

Neustart von Eclipse, auswählen der C-Perspektive, anklicken von Device 
Explorer. Rattert ne Weile (liegt an meiner HD), dann kommt ein 
Fensterchen mit Fehlern, oben ne Liste, in der sechs mal "Initialize 
Indexing" steht und unten dann wenn man einen Eintrag ausgewählt hat:

Einträge 1 und 3 bis 6:
An internal error occurred during: "Initialize Indexing".
Could not initialize class de.innot.avreclipse.core.toolinfo.AVRDude

Eintrag 2:
An internal error occurred during: "Initialize Indexing".
java.lang.ExceptionInInitializerError


Dann hab ich im Project Navigator ein AVR-Projekt angeklickt, dann kommt 
ein Fehler, ErrorLog (mehr steht in der direkten Fehlermeldung auch nich 
drin ;) ) dazu im Anhang.

Löschen der alten Dateien/Ordner im Eclipse-Plugins-Ordner hat nicht 
geholfen.

Grüße,
Chris

von Thomas H. (innot)


Lesenswert?

Hallo Chris,

ich habe jetzt gerade zum Test bestimmt ein duzend mal das Plugin in 
allen Varianten installiert (mit Neustart, mit 'Apply Changes', mit/ohne 
Update Manager etc.)
Und es hat jedesmal funktioniert, auch ohne das ich das alte Plugin 
deinstallieren musste. (Alle Test mit einer jungfräulichen 'Eclipse for 
C/C++ Developers' Edition)

Also ist es schon mal (für mich: Gott-sei-Dank) kein grundsätzliches 
Problem sondern wird durch irgendwas spezifisches ausgelöst.

Die Java Exception die Du angehängt hattest ist auch seltsam. Sie 
besagt, dass eine Java Klasse aus dem Plugin eine andere Klasse aus dem 
Plugin nicht finden kann. Das sollte theoretisch nicht vorkommen, da die 
Klasse ja definitiv vorhanden ist.

Da es aber bei Dir praktisch doch so ist würde ich mal sagen dass der 
eigentliche Fehler irgendwo anders liegt als von der Exception 
angedeutet.

Könntest Du mir bitte mal das komplette Error Log schicken ( Help -> 
About Eclipse SDK -> Configuration Details -> View Error Log). 
Vielleicht finde ich ja irgendwo den wahren Auslöser des Problems.

von Christian I. (alloc)


Angehängte Dateien:

Lesenswert?

Hi Thomas,

irgendwie ist das merkwürdig ... kann nichtmal wenn ich in der 
Java-Perspektive bin eine C-Datei anschauen ... Glaube der passende 
Fehler ist der letzte im Log.

Grüße,
Chris

von Thomas H. (innot)


Lesenswert?

Chris,

ich glaube ich habe den Fehler gefunden (die Ursache war, wie ich 
vermutet hatte, ganz am Anfang des Fehlerlogs für die Session zu finden)

Ich bin jetzt mal mutig und habe eine version 2.3.1 auf die Updatesite 
hochgeladen.

Kannst Du mit der mal testen ob der Fehler immer noch existiert?

von Christian I. (alloc)


Lesenswert?

Hi Thomas,

hab das Update durchgeführt (dabei kamen gleich noch zwei Updates, die 
dürften aber keine Auswirkungen gehabt haben, war irgendwas mit 
Graphical Editing Framework oder so). Scheint soweit alles zu 
funktionieren, also getestet hab ich kompilieren und Upload und in den 
Project Properties etwas rumgeschaut. Der Start der IDE (bzw der 
Abschnitt, wo auch das "Building Workspace" immer in der Statusleiste 
erscheint) kommt mir auch schneller vor.

Wiedermal sehr gute Arbeit, die du da geleistet hast, vielen Dank =)

Grüße,
Chris

/Edit:
Was war denn das Problem (ohne, dass ich mich jetzt in die Untiefen der 
Eclipse-Plattform einarbeiten muss um das zu verstehen ;) )?

von D. S. (jasmin)


Lesenswert?

Updateseite ist tot ???!!!

von D. S. (jasmin)


Lesenswert?

nö, sie lebt !!

Funktioniert super...........

Danke Thomas ;-)

von Christoph M. (fakulatus)


Lesenswert?

Hellow,

danke fürs neue Plugin, super Sache!

Frage in die Runde: Gibt es eine Möglichkeit, den Code mit dem "PX-400" 
auf den Target zu schreiben, beziehungsweise diesen Programmer in dem 
Plugin zu betreiben? Leider habe ich dies bis Dato noch nicht fertig 
gebracht (habe es mit diversen anderen Pogrammer-Treiber versucht).

Einen anderen Programmer zu nehmen wird wohl schwer möglich sein, ich 
habe ca 40 PX-400 und die weg zu schmeissen macht keinen Sinn :)

von Thomas H. (innot)


Lesenswert?

Hallo Christoph,

Habe mal kurz etwas gegooglet. Der PX-400 funktioniert mit den Programm 
avr osp II. Das ist eine Weiterentwicklung von avr-osp, auch als AVR911 
bekannt.

Probier doch mal in den Peferences bei avrdude den "Atmel AppNote AVR911 
AVROSP" als "Programmer Hardware" zu nehmen. Vielleicht klappt es damit

von Markus (Gast)


Lesenswert?

Hallo,

Ich bin gerade dabei einen Bootloader zu schreiben.

Wo kann ich dem AVR-Plugin eintragen, dass der Code erst ab der Adresse 
0x1E000 beginnen soll?

Vielen Dank im Voraus.

von Thomas H. (innot)


Lesenswert?

Für diesen Spezialfall musst Du dem Linker die nötigen Argumente 
händisch als "other Arguments" unterschieben.

Schau dir mal das Makefile aus diesem 
Beitrag "Re: Portierung des Atmel AES Bootloaders auf avrgcc" an.

Oder etwas allgemeiner hier:

http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_reloc_code

von Christoph M. (fakulatus)


Lesenswert?

Thomas Holland wrote:
> Habe mal kurz etwas gegooglet. Der PX-400 funktioniert mit den Programm
> avr osp II. Das ist eine Weiterentwicklung von avr-osp, auch als AVR911
> bekannt.
>
> Probier doch mal in den Peferences bei avrdude den "Atmel AppNote AVR911
> AVROSP" als "Programmer Hardware" zu nehmen. Vielleicht klappt es damit

Hallo Thomas,
leider nein. Der Programmer arbeitet zwar offiziell mit AVR911, doch 
keiner der vorgeschlagenen Programmer funktioniert wirklich.
Der PX400 hält sich nicht 100% an den AVR911-Standart, auf jeden Fall 
werden mit dem mitgelieferten Programm andere Daten über die 
RS-Schnittstelle gesendet als im Standart definiert...
Falls jemand interesse hat, kann ich gerne die Übertragung schicken, 
habe das Protokoll schon ziemlich raus

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Ich hab sowieso vor einen alternativen Programmer direkt in Java 
weiterzuentwickeln. Hier findest du den bisherigen Code: 
http://avr-eclipse.svn.sourceforge.net/viewvc/avr-eclipse/programmer_plugin/trunk/

Da sollte sich ein weiteres Protokoll relativ einfach integrieren 
lassen.

von Christian I. (alloc)


Lesenswert?

Hi,

wollte mal fragen, ob es möglich ist, mit dem Plugin eine Library ohne 
viel arbeit einzubinden.

Also, dass ich quasi ein Projekt habe, welche gemeinsamen Code enthält, 
und ein weiteres (oder eben mehrere), die mit diesem Projekt verknüpft 
sind und dann von dort die Header includieren können und auch 
automatisch deren C-Code mitcompilieren. Also nicht eine Static-Lib (da 
bräuchte ich ja dann jeweils eine Version pro uC-Typ/F_CPU) sondern dass 
nur die Dateien in andren Projekten mit eingebunden/compiliert werden.

Grüße,
Chris

von Thomas H. (innot)


Lesenswert?

Christian,

hab gerade etwas rumprobiert. Linked Source Folders müsste die Antwort 
Deines Problems sein.

Die Properties Deines Zielprojektes öffnen (nicht von der "Library")

Dann "C/C++ General -> Paths and symbols -> Source Location"

Dort dann "Create /link folder" anklicken.

In dem Dialog erst mal einen Namen eingeben z.B. "UARTLibrary"

Dann "Advanced>>" klicken und "Link to folder in the file system" 
auswählen.

Dann per "Browse..." den Pfad zu Deinem Library Projekt auswählen.
Ein paar mal auf OK und Deine Library ist mit Deinem Zielprojekt 
verlinkt.

Dann musst Du wahrscheinlich noch den neuen Link als Include-Pfad 
aufnehmen.

Also nochmal "C/C++ General -> Paths and symbols" und dann "Includes". 
"Add" Button und dann über den "Workspace..." Button in dem Zielprojekt 
den neuen Ordner (z.b. "UARTLibrary") auswählen.

Ggf. noch "Add to all configurations" auswählen wenn Du mit mehreren 
Build Configurations arbeitest.

Ansonsten "OK" und es sollte (hoffentlich) gehen.

Thomas

von Christian I. (alloc)


Lesenswert?

Hi Thomas,

danke für die schnelle Antwort =)

Irgendwas einfacheres gibt es da nicht? Vor allem, da man so ja auch 
noch einen Dateisystem-Pfad angeben muss und nicht nur ein Pfad im 
Workspace ausreicht.

Gibt es eigentlich irgendwo auch ne funktionierende Hilfe zum CDT und 
dessen Dialogen? Wenn ich in den Dialogen auf das Fragezeichen klick 
kommt meist nur "Topic not found" (oder so ähnlich).

Grüße,
Chris

von Thomas H. (innot)


Lesenswert?

Na ja, zwei Settings pro Projekt finde ich nicht wirklich aufwendig. Und 
wenn Du im "Link folder" Dialog statt auf "Browse..." auf "Variable..." 
klickst, dann kannst Du einmalig eine Variable zu dem Library-Projekt 
anlegen und musst dich danach nicht mehr mit Dateisystem-Pfaden 
auseinandersetzen. (Ich gebe aber zu, dass die CDT Entwickler in dem 
Dialog den "Workspace" Button vergessen haben und es auch keinen Sinn 
macht in dem Dialog nicht das Standard Variablensystem von Eclipse zu 
benutzen)


Vielleicht gibt es noch einen einfacheren Weg, aber Du hast ja selbst 
festgestellt das die Anleitung zu CDT etwas zu wünschen übrig lässt.


Wenn Du mit meiner Lösung nicht zufrieden bist kannst Du ja auch mal auf 
der CDT User Newsgroup anfragen, vielleicht kennt da jemand eine bessere 
Lösung:

http://www.eclipse.org/newsportal/thread.php?group=eclipse.tools.cdt

von Christian I. (alloc)


Lesenswert?

Hi Thomas,

sollte keine Kritik oder so an dir sein (nicht, dass das noch falsch 
rüberkommt ;) ). Ich weis ja, dass für so Sachen die CDT-Entwickler 
zuständig sind. Hatte nur gehofft, dass ich da einfach irgendwie sagen 
kann "referenziere Projekt XY aus dem Workspace" und Eclipse/CDT den 
Rest erledigt ;)

Werde deinen Ratschlag mal befolgen und bei CDT direkt fragen, ob die da 
noch was wissen.

Grüße,
Chris

von Thomas H. (innot)


Lesenswert?

> Hatte nur gehofft, dass ich da einfach irgendwie sagen
> kann "referenziere Projekt XY aus dem Workspace" und Eclipse/CDT den
> Rest erledigt ;)

Die Funktion gibt es in CDT, allerdings wird dann das referenziert 
Projekt mit seinen eigenen Einstellungen compiliert und nicht mit denen 
des referenzierenden Projektes. Und wenn ich Dich richtig verstanden 
habe wolltest Du genau das nicht.

Man könnte auch im 'Library'-Projekt mehrere Build Configurations 
anlegen (für jeden MCU Typ eine) und von referenzierenden Projekt 
jeweils auf eine bestimmte zugreifen (das ist, wenn ich es richtig 
gesehen habe, sogar als "Feature" in CDT eingebaut).

Ist wahrscheinlich sogar eine sauberere Lösung, da man so auch mit 
richtigen static Libraries arbeiten kann. Ist aber auch mit noch mehr 
Aufwand verbunden.

>
> Werde deinen Ratschlag mal befolgen und bei CDT direkt fragen, ob die da
> noch was wissen.

Mach das und Berichte mal wenn es noch eine andere Lösung gibt. CDT ist 
komplex und ich lerne auch gerne noch dazu.

>
> Grüße,
> Chris

LG, Thomas

von Stefan E. (sternst)


Lesenswert?

Thomas Holland wrote:

> Man könnte auch im 'Library'-Projekt mehrere Build Configurations
> anlegen (für jeden MCU Typ eine)

Gut, dass du das gerade ansprichst. Ich habe diesbezüglich ein kleines 
Problem, wegen dem ich schon länger mal nachfragen wollte:
Wenn ich mehrere Build-Configurations anlege, habe ich immer(*) die 
Warnung:
> Invalid project path: Duplicate path entries.

Irgendein funktionales Problem scheint sich daraus nicht zu ergeben, 
aber diese ständige Warnung im Problems-Window ist irgendwie "unschön".

(*) Bei der ersten Configuration erstaunlicherweise nur manchmal.

Eclipse: 3.4.1
Plugin: 2.3.1
Eigenes Makefile (falls das relevant ist)

von Thomas H. (innot)


Lesenswert?

Stefan,

ich habe mal ein bisschen gegooglet. Die Fehlermeldung ist bekannt, aber 
ich habe keine klaren Lösungen gefunden. Es ist aber ein CDT Problem, 
das (anscheinend) nicht mit dem AVR Plugin zusammenhängt. Es gibt dazu 
auch einen (offenen) Bug-Report:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=158940

So wie ich es verstehe erzeugt CDT eine Warnung, obwohl das Problem an 
sich harmlos ist und ignoriert werden könnte. Sozusagen ein "-Wall", das 
nicht abgeschaltet werden kann.

Die Meldung kommt wohl auch nur bei Projekten mit eigenem Makefile und 
Leerzeichen im Projektpfad können der Auslöser sein, müssen es aber 
nicht.

Ich habe gerade kein makefile Projekt zur Hand um die Warnung zu 
reproduzieren und auch keine Zeit mehr am Wochende. Vielleicht schaue 
ich es mir mal nächste Woche an.

Thomas

von Stefan E. (sternst)


Lesenswert?

Thomas Holland wrote:

> ich habe mal ein bisschen gegooglet. Die Fehlermeldung ist bekannt, aber
> ich habe keine klaren Lösungen gefunden.

Das war auch mein Google-Ergebnis. Ich hatte einfach gehofft, dass du 
als "Insider" vielleicht noch einen heißen Tipp hättest. ;-)

> So wie ich es verstehe erzeugt CDT eine Warnung, obwohl das Problem an
> sich harmlos ist und ignoriert werden könnte. Sozusagen ein "-Wall", das
> nicht abgeschaltet werden kann.

Ja, wie gesagt, eher ein "Schönheitsfehler".

> Die Meldung kommt wohl auch nur bei Projekten mit eigenem Makefile und
> Leerzeichen im Projektpfad können der Auslöser sein, müssen es aber
> nicht.

Im Pfad selber sind bei mir keine Leerzeichen, sondern nur im 
Projektnamen. (Die dort rauszunehmen ändert aber nichts)

> Ich habe gerade kein makefile Projekt zur Hand um die Warnung zu
> reproduzieren und auch keine Zeit mehr am Wochende. Vielleicht schaue
> ich es mir mal nächste Woche an.

Falls du tatsächlich da mal nach schauen möchtest, hier noch ein paar 
Beobachtungen:
Man kann manchmal sehen, dass die Warnung während des Build kurz 
auftaucht und dann zum Ende hin wieder verschwindet. Das 
unterschiedliche Verhalten (Warnung nur manchmal oder immer) scheint 
sich irgendwie am Make Target festzumachen:
1) Make Target steht mit im "Build Command", dafür unter "Workbench 
Build Behavior" die Häkchen weg
-> Warnung immer
2) Make Target wird von Eclipse über "Workbench Build Behavior" selber 
angehängt
-> Warnung nur manchmal
ABER:
Wenn ich im "Make Targets"-Window Targets anlege und den Build darüber 
starte (mit Configuration 2), habe ich die Warnung wieder immer, obwohl 
hier Eclipse das Target selber an das Build Command anhängt.

von MarkusB (Gast)


Lesenswert?

Hi Thomas,
die neue Version rockt ja jetzt richtig. Mal ein fettes merci von meiner 
Seite. Wenn jetzt Debuggen noch geht...

von MarkusB (Gast)


Lesenswert?

Ich hab noch eine kleine Anmerkung. Der Button "Upload Project to Target 
Device" bzw der entsprechende Menueintrag hat erst funktioniert 
nachdem ich einmal mit rechts auf das Projekt geklickt habe und dort 
AVR->Upload Project to Target Device ausgewählt habe. Vorher hat er bei 
einem Click auf den Button nur gesagt "No Project selected" oder so 
ähnlich.

Außerdem wären zusätzliche Avrdude Funktionen recht hilfreich, zb einen 
Button/Shortcut für Erase Device, da ich den Controller nach einem Test 
meistens wieder löschen muss

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Es ist nicht nötig, dass man vorher den kompletten Upload im Projekt 
macht, aber wenn man den Button in der Toolbar benutzt muss natürlich 
ein Projekt ausgewählt sein (ein Editor mit einer Datei aus dem Projekt 
aktiv, oder der Eintrag im Projekt-Explorer markiert), sonst ist ja 
nicht klar welches Projekt geflasht werden soll.

von MarkusB (Gast)


Lesenswert?

ich hatte nur ein Projekt offen. Das Projekt hatte nur eine Datei die 
geöffnet und aktiv war. Kann natürlich sein das man das Projekt im 
Projektexplorer aktivieren muss.

von MarkusB (Gast)


Lesenswert?

Mal noch eine Frage: wie behandelt das Plugin den Mega168 Efuse Bug von 
avrdude? Ich hab leider grad keinen 168 griffbereit um das man schnell 
zu testen

von Markus (Gast)


Lesenswert?

@Thomas Holland:

Vielen Dank, ich bin erst heute weider im Büro, war ein paar Tage auf 
IBN.

Wegen dem Bootloader, ich hab es eingegeben und der hat es gemacht!

other Arguments: -Wl,--section-start=.text=0x1E000

von Thomas H. (innot)


Lesenswert?

Hallo MarkusB,

es ist so wie Manuel geschrieben hat: Es muss ein AVR Project oder eines 
seiner Files im Project Explorer (oder Resource Navigator oder C/C++ 
Explorer) angewählt sein damit der "Upload" Toolbar Button funktioniert.


Was den ATmega168 "EFuse Bug" angeht, so habe ich jetzt von Dir zum 
ersten mal davon gehört. Das Plugin hat (bisher) keine Sonderbehandlung 
für den 168 oder irgendeinen anderen AVR Processor. Kannst Du 
beschreiben worum es sich dabei genau handelt oder kennst Du eine Quelle 
in der steht was das Problem ist?

von Thomas H. (innot)


Lesenswert?

@Markus,

gut zu hören. Vielleicht werde ich in einer der übernächsten Versionen 
mal einen "Bootloader Project Wizard" hinzufügen, der diese Einstellung 
automatisch vornimmt.

von MarkusB (Gast)


Lesenswert?

Hi Thomas,
avrdude ließt das Efuse Byte beim Mega168 falsch. Sämtliche Bits sind 
invertiert soweit ich weiß. Ich glaube auch, er schreibt sie falsch.

http://savannah.nongnu.org/bugs/?23794

Es gibt dafür einen Bug Report. Hab aber gerade gelesen das er wohl im 
November gefixt wurde. Vielleicht solltest du zumindest die Version von 
Avrdude abfragen und darauf hinweisen oder so.

von Thomas H. (innot)


Lesenswert?

MarkusB, ich habe mal recherchiert und der Bug ist schon im Dezember 
2005 im avrdude CVS repository behoben worden und dürfte seit avrdude 
5.1 (Januar 2006) nicht mehr relevant sein. 5.1 wird aber selbst bei den 
langsamsten Linux Distros schon lange Geschichte sein und daher lohnt 
sich hier der Aufwand für eine Versionsabfrage nicht.

von MarkusB (Gast)


Lesenswert?

Hi Thomas,
also ich bin auf das Problem aufmerksam geworden weil es mir passiert 
ist. Ich wollte Fusebits setzen und es ging nicht. Und da hatte ich 
avrdude 5.5 (Ubuntu Hardy, avrdude-5.5-1)

Ich hab grad keinen funktionsfähigen 168 in Griffnähe, sonst würde ich 
es nochmal probieren. Aber ich bin mir sicher das der Fehler erst mit 
5.6cvs behoben ist. Leider krieg ich es nicht compiliert

von Thomas H. (innot)


Lesenswert?

Komisch!?

Der Fehler ist eindeutig 2005 behoben worden:
http://cvs.savannah.gnu.org/viewvc/avrdude/avrdude.conf.in?revision=1.67&root=avrdude&view=markup

Auch bei der ältesten winAVR die ich noch auf dem Rechner habe (20071221 
mit avrdude 5.5) hat die avrdude.conf den Fehler nicht mehr. Und die 
Version von Ubuntu hat auch eine gefixte avrdude.conf.

Hast Du vielleicht noch eine ältere avrdude.conf im /usr/bin oder 
sonstwo rumliegen, die vor der aktuellen Version in /etc gefunden wird?

von MarkusB (Gast)


Lesenswert?

Die avrdude.conf aus deinem Link ist von 2005
  avrdude.conf.in,v 1.67 2005/12/01 19:55:17

meine ist von 2007
  avrdude.conf.in,v 1.127 2007/10/29 22:43:00

Der Fehler besteht bei mir definitiv noch. Ich habe es gerade getestet. 
Ich vermute das irgendwem mal eine alte Version reingerutscht ist.

Ich habe jetzt meine avrdude.conf manuell geändert.
ich habe den Teil von Zeile 7990 bis 7995 durch das hier ersetzt
1
          read            = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
2
                            "x x x x x x x x o o o o o o o o";
3
          
4
          write           = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
5
                            "x x x x x x x x i i i i i i i i";
6
          ;
Wenn ich jetzt die Fusebits lese bekomme ich die richtigen Werte

von Thomas H. (innot)


Lesenswert?

MarkusB, wenn das so funktioniert und die bisherige Version mit nur drei 
maskierten bits nicht, dann solltest Du den oben von Dir genannten Bug 
Report wieder aufmachen denn er ist so nicht umgesetzt worden - auch 
nicht bei avrdude 5.6 (da hat Jörg wohl - so wie ich - falsch verstanden 
was bei dem Patch die funktionierende und was die nicht funktionierende 
Version ist)

von MarkusB (Gast)


Lesenswert?

Hm, so war es auf jeden Fall. Ich hab die original avrdude.conf aus den 
Quellen von Intrepid Ibex genommen. Mit den Original Dateien hatte ich 
das Problem.

Anschließend hab ich die Änderung vorgenommen, jetzt funktioniert es. 
Womöglich

von Alex (Gast)


Lesenswert?

Saubere Arbeit Thomas!
Und ich freue mich schon sehr auf die fürs nächste Update angekündigte 
I/O-Ansicht! :)

von MarkusB (Gast)


Lesenswert?

Ich wollte nochmal zwei Verbesserungsvorschläge anbringen.

1. Button/Menu für Erase Device
2. Im Fuse Editor Buttons für Read Fuse und Write Fuse.

Es ist nicht sinnvoll in der Entwicklung jedes mal die Fusebits zu 
schreiben. Manchmal ist es besser wenn man den Fuse Editor öffnet, die 
gewünschten Einstellungen vornimmt, die Fusebits schreibt und danach 
nichts mehr ändert. Derzeit ist es etwas umständlich

von Thomas H. (innot)


Lesenswert?


von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Atmel hat ja mittlerweile mit dem AVR32 Studio auch gemerkt, dass 
Eclipse ein cooles Framework ist. Wäre es nicht sinnvoll, sich von den 
Tools und vom Workflow her daran anzunähern?

Fürs flashen scheint hier ein extra Button links neben dem Debug-Button 
angebracht zu sein. Auch das Registers und Targets View ist in meinen 
Augen sinnvoll.

http://www.mikrocontroller.net/wikifiles/6/66/AVR_C_Perspective.png

von Thomas H. (innot)


Lesenswert?

Manuel, ich habe mir gerade mal AVR32Studio gesaugt und angeworfen.

Die Struktur mit den "Targets" ist doch recht anders und ich weiß nicht 
in wie weit man die in das AVR Plugin integrieren kann. Aber ich werde 
mir mal Gedanken machen ob ein Target zentrierter Workflow (anstatt des 
im Moment Projekt zentrierten Workflows) Sinn macht.

Leider bin ich beim AVR Plugin, im Gegensatz zum AVR32Studio wo alle 
Teile aus einer Hand kommen, auf externe Tools angewiesen und muss mich 
nach deren Bedürfnissen richten und mit den Einschränkungen leben.

Beispiel: Ich schreibe gerade die Debugger Launch Configuration. Die 
wird natürlich auch ein Image File zum Target hochladen können. Aber 
über avarice geht das nicht mit meinem AVR Dragon (warum auch immer). 
Also muss ich noch eine Option haben, mit der avrdude im Rahmen des 
Debug-Starts vorab gestartet wird um das Image zu flashen. Allein dieser 
Sonderfall lässt sich mit dem Target-Management von AVR32Studio nicht 
darstellen.

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

Sicher? Da gibt es doch auch die Möglichkeit Übertragen und Debuggen zu 
trennen. Schau dir mal Seite 19 hier drin an: AVR32015: AVR32 Studio 
getting started

Da gibt es getrennt ein "Target" und einen "Launch provider". Das dürfte 
eigentlich das gleiche Szenario sein.

von MarkusB (Gast)


Lesenswert?

Hi,
statt jetzt alles umzumodeln würde ich sagen es ist sinnvoller, das 
Bedienkonzept so zu lassen wie es ist und die Kraft lieber in die 
Erweiterung inwestieren. Es funktioniert ja so wie es jetzt ist und ich 
sehe darin keinen Nachteil.

Nochmal danke an Thomas für die ganze Arbeit. Endlich gibt es für Linux 
mal was richtig gutes um AVRs zu programmieren.

von Thomas H. (innot)


Lesenswert?

Keine Sorge, ich werde vorsichtig rangehen :-)

Ich bin nur beim Programmieren des Debugging Supports an einem Punkt 
angekommen, an dem ich mir genau überlegen muss wie ich die vielen 
möglichen Varianten ordentlich unter einen Hut bringen kann ohne das es 
unübersichtlich wird. "Targets" á la AVR32Studio wäre eine Möglichkeit, 
aber ich bin noch nicht so überzeugt das sie sich elegant implementieren 
lassen.

von MarkusB (Gast)


Lesenswert?

Noch ein Vorschlag: vielleicht sollte man für AVR Entwicklung eine 
eigene Perspective erstellen. Das AVR Menu und der Download Button sind 
überall zu sehen, auch bei Datenbankentwicklung oder anderen Sachen

von Thomas H. (innot)


Lesenswert?

Sehe ich auch so und habe mir als Erinnerung dazu einen Bug Report 
geöffnet:

https://sourceforge.net/tracker2/?func=detail&aid=2453936&group_id=189165&atid=928231

von Atmega8 A. (atmega8) Benutzerseite


Lesenswert?

@ MarkusB
Du kannst dir auch ein Eclipse für C, eins für Java, eins für ... auf 
die Platte packen.
Ich finde das übersichtlicher und ist nicht so fehleranfällig.
Was spricht dagegen? Der Platz auf deiner Festplatte?

von Manuel Stahl (Gast)


Lesenswert?

Der Workflow, ich hab z.B. viele Projekte, die aus einem Java und einem 
C bzw. AVR Teil bestehen.

von MarkusB (Gast)


Lesenswert?

Ich weiß das das geht, aber wie Manuel gesagt hat, wenn dein AVR Projekt 
aus einem Teil AVR und einem Teil PC besteht ist das Wechseln nervig. 
Und am PC arbeite ich nicht mit C/C++ sondern mit Python.

Außerdem, wenn schon gewünscht wird das man sich an den Look & Feel von 
Eclipse nähert und so macht wie beim AVR32 Studio ist das mit den 
Buttons doch eher ne Kleinigkeit.

Es reicht mir eigentlich wenn ich einmal Eclipse für Web, für "normale" 
Programmierung und das AVR32 Studio hab.

von Simon K. (simon) Benutzerseite


Lesenswert?

Hab grad nochmal ein Feature Request abgedrückt: Gnu99 Language Standard 
als Default benutzen.
Macht Sinn, da ein paar Sachen der avr-libc das brauchen 
(ATOMIC_BLOCK(...) zum Bleistift).
http://sourceforge.net/tracker/index.php?func=detail&aid=2459280&group_id=189165&atid=928234

von 900ss (900ss)


Lesenswert?

Simon K. wrote:
> Hab grad nochmal ein Feature Request abgedrückt: Gnu99 Language Standard
> als Default benutzen.

Und was soll gemacht werden, wenn jemand anderes gerne einen anderen 
Standard als default haben möchte? So ein Default ist in meinen Augen 
völlig sinnfrei. Es muß nicht einmal einen Default geben. Du mußt ja 
sowieso durch die Project-Optionen durch und diverse Dinge einstellen. 
Da wo es Sinn macht, da sollte man einen Default nehmen (stabs als 
Debug-Info z.B., weil man sonst garnicht debuggen kann unter Eclipse). 
Alle anderen Optionen , die nicht solcher Art sind, brauchen keinen 
default Wert.
Die Default-Werte bergen auch die Gefahr, dass man sein Hirn abschaltet 
beim Einstellen der Project-Optionen. Und schon geht erstmal etwas 
nicht.
Selbst die Möglichkeit seine bevorzugten Einstellungen abzuspeichern ist 
sinnfrei, da sich im nächsten Projekt sowieso wieder fast alles ändert 
und du deinen Kopf sowieso damit beschäftigen mußt.

Also lange Rede kurzer Sinn: Solche Requests vielleicht nicht loslassen, 
da sie von wirklich wichtiger Arbeit ablenken und damit Zeit stehlen.

Just my 2 cts.

Schöne Weihnachten :-)

Gruß
900ss

von Simon K. (simon) Benutzerseite


Lesenswert?

900ss D. wrote:
> Also lange Rede kurzer Sinn: Solche Requests vielleicht nicht loslassen,
> da sie von wirklich wichtiger Arbeit ablenken und damit Zeit stehlen.

Ob der Request vernünftig ist oder nicht, kann Thomas ja auch selber 
noch entscheiden, wenn er da ran geht.

Ich sehe gerade nur nicht, warum man überhaupt mit was anderem als Gnu99 
im Normalfall kompilieren sollte? Nur mit Gnu99 ist volle Kompatibilität 
zur avr-libc gewährleistet und Nachteile hat es (soweit ich das sehe) 
keine.
Außerdem ist ja wohl kaum großartig einen Umstand das einzubauen.

PS: Man kann ja auch ein Default "Template" machen. Das stellt man dann 
einmalig ein und jedes erzeugte C Projekt erhält die Einstellungen des 
Templates.

Wie auch immer. ;)

von 900ss (900ss)


Lesenswert?

Simon K. wrote:
> Ob der Request vernünftig ist oder nicht, kann Thomas ja auch selber
> noch entscheiden, wenn er da ran geht.

Das kostet schon Zeit, sich darüber Gedanken zu machen :-)

> PS: Man kann ja auch ein Default "Template" machen. Das stellt man dann
> einmalig ein und jedes erzeugte C Projekt erhält die Einstellungen des
> Templates.

Dann mach es doch so. Spart zumindest Thomas Arbeit.

Ich habe meine Meinung schon geäußert und bleibe dabei. Du must dein 
Hirn eh benutzen. Copy&Paste gibt gerne Fehler, auch mit so einem 
Template :-)

Natürlich steht es jedem frei, Wünsche zu äußern. Nur mich stört es, 
wenn es Wünsche sind, die "nice to have" sind und damit Zeit 
"verschwenden".

von Simon K. (simon) Benutzerseite


Lesenswert?

900ss D. wrote:
>> PS: Man kann ja auch ein Default "Template" machen. Das stellt man dann
>> einmalig ein und jedes erzeugte C Projekt erhält die Einstellungen des
>> Templates.
>
> Dann mach es doch so. Spart zumindest Thomas Arbeit.
Leider gibt es so eine Funktionalität nicht.

> Ich habe meine Meinung schon geäußert und bleibe dabei. Du must dein
> Hirn eh benutzen. Copy&Paste gibt gerne Fehler, auch mit so einem
> Template :-)
Wieso gibt es denn Fehler wenn man mit Gnu99 standardmäßig kompiliert? 
Das ist ja jetzt wohl völlig aus der Luft gegriffen. Gnu99 hat einfach 
nur mehr Sprachfeatures als C90 (der Compiler Standard), das ist alles.

> Natürlich steht es jedem frei, Wünsche zu äußern. Nur mich stört es,
> wenn es Wünsche sind, die "nice to have" sind und damit Zeit
> "verschwenden".
Genau aus dem Grund ist es ja auch als Feature Request eingestellt und 
nicht als Bug. Ich gehe mal davon aus, dass Bugs wesentlich dringender 
behandelt werden. Außerdem hast du immer noch nicht schlüssig begründet 
wo denn genau das Problem bei der Sache ist. Ich sehe da nur Vorteile 
durch (gerade für Anfängern, die dann die avr-libc benutzen und eine 
"verwirrende" Fehlermeldung bekommen, dass der eingestellte Standard das 
nicht unterstützt).
Warum sollte man denn überhaupt noch in ANSI-C programmieren und nicht 
nach dem neuesten Standard?

Egal, Thomas wird dazu sicher irgendwann mal eine Entscheidung fällen.

von 900ss (900ss)


Lesenswert?

Simon K. wrote:
> 900ss D. wrote:
>>> PS: Man kann ja auch ein Default "Template" machen. Das stellt man dann
>>> einmalig ein und jedes erzeugte C Projekt erhält die Einstellungen des
>>> Templates.
>>
>> Dann mach es doch so. Spart zumindest Thomas Arbeit.
> Leider gibt es so eine Funktionalität nicht.

Doch, du kannst dir ein "Standard-Projekt" anlegen und von diesem immer 
eine Kopie machen, wenn du ein neues Projekt brauchst.

>> Ich habe meine Meinung schon geäußert und bleibe dabei. Du must dein
>> Hirn eh benutzen. Copy&Paste gibt gerne Fehler, auch mit so einem
>> Template :-)
> Wieso gibt es denn Fehler wenn man mit Gnu99 standardmäßig kompiliert?
> Das ist ja jetzt wohl völlig aus der Luft gegriffen. Gnu99 hat einfach
> nur mehr Sprachfeatures als C90 (der Compiler Standard), das ist alles.
Nun mach mal halb lang. Habe ich das irgendwo geschrieben? Sag mir wo 
bevor du dich so aufregst. Ich schrieb das Copy&Paste gerne Fehler gibt. 
Auch wenn du ein Standardprojekt anlegst und dieses kopierst. Es ist 
immer besser (auch beim kopieren) ohne Copy&Paste zu arbeiten. Man 
übersieht leicht etwas und schon sucht man evtl. lange Fehler die nicht 
da wären, wenn man vornherein sein Hirn benutzt hätte um den 
entsprechenden Part (Projekt) mit allen Einstellungen neu zu generieren. 
Dann hätte man es gleich richtig gemacht.

> Genau aus dem Grund ist es ja auch als Feature Request eingestellt und
> nicht als Bug. Ich gehe mal davon aus, dass Bugs wesentlich dringender
> behandelt werden. Außerdem hast du immer noch nicht schlüssig begründet
> wo denn genau das Problem bei der Sache ist.
Doch oben. Aber ich habe den Eindruck, du hast mich nicht verstanden.

> Ich sehe da nur Vorteile
> durch (gerade für Anfängern, die dann die avr-libc benutzen und eine
> "verwirrende" Fehlermeldung bekommen, dass der eingestellte Standard das
> nicht unterstützt).

Gerade für Anfänger ist soetwas meiner Meinung nach nicht so gut. Wenn 
man Anfängern alles vorkaut, dann lernen sie nicht (verstehen auch 
nicht) und bei einem Problem kommen sie dann alleine auch nicht weiter.

> Warum sollte man denn überhaupt noch in ANSI-C programmieren und nicht
> nach dem neuesten Standard?
Hat das irgendwo einer geschrieben?

> Egal, Thomas wird dazu sicher irgendwann mal eine Entscheidung fällen.
Sicher, am Ende ist es Thomas sein Ding. Aber bevor meiner Meinung nach 
"nice to have" Features dort eingebaut werden, sollten andere Dinge 
gemacht werden.

Ich frag mich auch, was so schlimm daran ist, die Einstellung mit der 
Hand zu machen. Gehst du nicht sowieso durch die Einstellungen? Must du 
doch. Paßt doch eh wenig. Oder hast Du standardmäßig immer eine 
Taktfrequenz von 1MHz? Die bietet das Plugin immer an bei einem neuen 
Projekt.

Und immer ruhig mit den Pferden ;-)

von Atmega8 A. (atmega8) Benutzerseite


Lesenswert?

@ 900ss
Ich will auch dass Gnu99 als Default gesetzt wird.

.. nicht traurig sein dass du überstimmt wurdest :)

@ Simon K.
Weshalb gibt es deine AVR-Eclipse Hilfeseite nicht mehr?

http://de.klinkerstein.m-faq.de/index.php/AVR-Eclipse_Tutorial

von Simon K. (simon) Benutzerseite


Lesenswert?

Atmega8 Atmega8 wrote:
> @ Simon K.
> Weshalb gibt es deine AVR-Eclipse Hilfeseite nicht mehr?
>
> http://de.klinkerstein.m-faq.de/index.php/AVR-Eclipse_Tutorial

Weil es die hier gibt:
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin

:-)

von 900ss (900ss)


Lesenswert?

Atmega8 Atmega8 wrote:
> @ 900ss
> Ich will auch dass Gnu99 als Default gesetzt wird.
>
> .. nicht traurig sein dass du überstimmt wurdest :)

Nöö, bin ich nicht. Kein Problem. Meinetwegend kann da auch was rein was 
garnicht funktioniert. Ich gehe eh alle Einstellunge durch und überlege 
mir, was da rein soll wenn ich ein Projekt anlege.

Was mich allerdings traurig stimmt, dass Ihr kein wirklich greifendes 
Argument habt. Alles nur nach dem Motto "Ich möchte aber, weil ich es 
schön finde". Das wäre so als wenn ich wollte, dass immer 16MHz als 
default gesetzt werde. Und als Prozesor verwende ich gerne den ATMEGA32. 
Den hätte ich auch gerne. Einfach Blödsinn. Normalerweise sollte 
nirgends ein default gesetzt werden, damit man seinen Kopf benutzt. Alle 
Felder einfach leer.

Ich find es schade, dass hier "Arbeitszeit" verplempert werden soll wo 
man doch viel sinnvolleres damit machen könnte. Am Ende ist es auch 
Thomas sein Ding.

Gruß
900ss

von Simon K. (simon) Benutzerseite


Lesenswert?

900ss D. wrote:
> Was mich allerdings traurig stimmt, dass Ihr kein wirklich greifendes
> Argument habt.
Sorry, auch wenn Weihnachten ist, aber langsam ist mal gut, oder?

> Alles nur nach dem Motto "Ich möchte aber, weil ich es
> schön finde".
Ja, meine letzten Posts gehen genau nach dem Motto. Ansonsten noch einen 
Tipp: Augen auf und lesen lernen.

> Das wäre so als wenn ich wollte, dass immer 16MHz als
> default gesetzt werde. Und als Prozesor verwende ich gerne den ATMEGA32.
> Den hätte ich auch gerne. Einfach Blödsinn.
Genau! Immer drauf da.
> Normalerweise sollte
> nirgends ein default gesetzt werden, damit man seinen Kopf benutzt. Alle
> Felder einfach leer.

Ums nochmal zu wiederholen, mein Argument war: Gnu99 als Default zu 
setzen, damit das AVR-GCC Plugin kompatibel zur avr-libc ist (man 
bemerke den nicht nur im Namen vorhandenen Zusammenhang zwischen dem 
Plugin und der Bibliothek).

von 900ss (900ss)


Lesenswert?

Simon K. wrote:
> Sorry, auch wenn Weihnachten ist, aber langsam ist mal gut, oder?
Ich schrieb ja schon, immer locker bleiben :-)

> Tipp: Augen auf und lesen lernen.
s.o.

>> Den hätte ich auch gerne. Einfach Blödsinn.
> Genau! Immer drauf da.
Hmm... frage mich wer hier drauf haut und ein wenig persönlich wird.

> Ums nochmal zu wiederholen, mein Argument war: Gnu99 als Default zu
Ich hab dich schon verstanden (kann ja lesen ;-)) aber du verstehst mich 
scheinbar nicht.

Allerdings wird mir dein "Ton" etwas zu unsachlich und er läßt Ärger 
durchblicken. Dafür gibt es bisher keinen Grund. Deshalb ziehe mich dann 
mal zurück. Und wiederholen möchte ich mich auch nicht.
Ende der Diskussion von mir aus. Schlaf gut :-)

von Mike J. (Gast)


Lesenswert?

@  Simon K. /  900ss D.
Ihr beiden habt der Thread von  Thomas Holland  ganz schön vollgemüllt.
:)

von Gast (Gast)


Lesenswert?

Naja 900ss D. möchte halt bei jedem neuen Projekt seine Festplatte 
formatieren und das System neu aufsetzen um sich dann alles ganz genau 
so einzustellen, wie es sein Projekt benötigt. Aus einem gewissen 
Blickwinkel kann ich das schon verstehen...

von 900ss (900ss)


Lesenswert?

Mike J. wrote:
> @  Simon K. /  900ss D.
> Ihr beiden habt der Thread von  Thomas Holland  ganz schön vollgemüllt.
> :)
Stimmt zum Teil leider. :-( Aber damit stehen wir ja nicht alleine da 
:-)

von Thomas H. (innot)


Lesenswert?

Ist man mal ein paar Tage offline und schon geht es hier drunter und 
drüber :-(

Ich habe nur wenig Zeit, deshalb fasse ich micht kurz:

900ss, ich schätze Deine konservative Einstellung was Änderungen angeht 
und ich weiß aus unserem privatem Austausch warum Du gegen die 
vorgeschlagene Änderung des default Language Standards bist.

Ich halte mich bei der Entscheidung an folgende Grundsätze:

1. Die Eclipse UI Guidelines: Möglichst wenig Einstellungsmöglichkeiten 
und dort wo unvermeidbar einen sinnvollen Standard wählen.

2. Minimierung meines Support Aufwandes (Bisher 2 Anfragen bei denen 
gnu99 die Lösung war)

3. Was macht mfile? Das makefile template von mfile war bisher für mich 
immer der Maßstab was Entscheidungen zu Compiler und Linker Optionen und 
deren Defaults angeht. Und hier ist eindeutig "gnu99" der Standard.

Damit spricht alles dafür "gnu99" als Standard zu setzen, es sei denn es 
kann mir jemand eine technische Begründung dagegen liefern.

Die Änderung des Default Language Standards ist ein Einzeiler in der 
plugin.xml und ich werde es mit der nächsten Version ändern.

Damit ist dieses Thema (hoffentlich) durch und wir können uns alle bitte 
wieder ernsthafteren Themen zuwenden.

Weihnachtliche Grüße,

Thomas

(Nach Diktat verreist bis Sonntag)

von Max (Gast)


Lesenswert?

Bei mir geht leider die 2.3 nicht, weil er irgendwie nicht auf den 
System Path beim erstellen eines neuen Projektes zugreifen kann. Auch 
bei Preferences kann ich nicht auf AVR zugreifen...

von 900ss (900ss)


Lesenswert?

Hallo Thomas,

hatte gerade das Problem, dass mir ein MEGA164P nicht mehr angeboten 
wurde in Project.Properties.AVR.Target Hardware.
"Load from CPU" klappte auch nicht. "Target nicht unterstützt" kam von 
AVRDude. Hmmm... Dann festgestellt, dass AVRDude von einer alten 
WinAVR-Verison genutzt wurde. Hatte irgendwann mal den Pfad, der 
eigentlich genutzt werden sollte, geklaut und dann ist durch die 
automatische(?) Suche vom Plugin wohl unter der alten WinAVR-Version ein 
AVRDude gefunden worden und das hat er dann genutzt.

Ich bekomme es aber nicht wieder gerade gebogen. Habe schon den alten 
Pfad (Directory der alten WinAVR-Version) umbenannt, aber irgendwie hat 
er nie wieder nach neuen Pfaden gesucht.
In Window.Preferences.AVR.Paths standen auch die alten WinAVR-Pfade, 
obwohl die garnicht mehr existierten. Es gab natürlich eine 
Fehlermeldung in dem Fenster, dass die Pfade nicht gültig sind. 
Irgendiwe habe ich es nicht hinbekommen, dass er wieder den richtigen 
Pfad nimmt (c:\programme\winavr).
Dann habe ich die Pfade dort manuell eingetragen.

Ein Umschalten der Checkbox "Disable search for system paths at startup" 
hat auch nicht genutzt.

Was hab ich falsch gemacht? Hast du eine Ahnung? Ich fürchte da ist noch 
ein Bug.

Danke für die Antwort schonmal.

Gruß 900ss

von Thomas H. (innot)


Lesenswert?

Hi,

so auf Anhieb fällt mir dazu nichts ein. Ich werde wohl mal den Debugger 
anschmeißen müssen um zu schauen was da genau passiert (sein könnte).

Aber als Quick-Fix damit es bei Dir wieder läuft:

Die Pfade werden in der folgenden Datei gespeichert:

{Dein 
Workspace}\.metadata\.plugins\org.eclipse.core.runtime\.settings\de.inno 
t.avreclipse.core.prefs

Eclipse schließen und einfach die Datei öffnen und die Pfade manuell 
ändern (aufpassen mit den ganzen forward- und backslashes). Vorher noch 
die "Disable search for system paths at startup" Option setzen, damit 
das Plugin die Pfade nicht wieder automatisch überschreibt.

Dann sollte es wieder gehen.

Thomas

von 900ss (900ss)


Lesenswert?

Thomas Holland wrote:

> Die Pfade werden in der folgenden Datei gespeichert:
>
> {Dein
> Workspace}\.metadata\.plugins\org.eclipse.core.runtime\.settings\de.inno 
t.avreclipse.core.prefs

Danke für die Hilfe.
Hmmm... Ich habe ja die Pfade schon manuell unter Eclipse in
"Window.Preferences.AVR.Paths" eingetragen. Dort steht jetzt unter der 
Spalte "Source" Custom. Hat das nicht den gleichen Effekt? Funktioniert 
hat es damit.

Ich habe allerdings in der von dir angegeben Datei trotzdem noch alte 
ungültige Pfade gefunden. Wo die genutzt werden, weiß der 
Plugin-Entwickler ;-)

Gruß
900ss

von 900ss (900ss)


Angehängte Dateien:

Lesenswert?

Hab nochmal einen anderen Versuch gemacht, der aber auch scheiterte.

Ich habe die "prefs" Datei nicht angefaßt.
Wenn ich jetzt wieder mit "Edit" in "Window.Preferences.AVR.Paths" auf 
System umschalte steht der ungültige Pfad darin. In dem Fenster steht 
dann auch "Path is invalid". Also wenn er sich mal verrannt hat, dann 
gibt es scheinbar keine Möglichkeit mehr, da rauszukommen.
Es gibt also nur noch die Möglichkeit, mit der Einstellung "Custom" und 
dann die Pfade manuell eintragen. So läuft es bei mir jetzt.
Ich habe dir mal die Datei angehangen, evtl. hilft es dir ja.

Gruß 900ss

von Thomas H. (innot)


Lesenswert?

Da hatte ich Dich falsch verstanden - ich dachte Custom würde auch nicht 
funktionieren.

Bei Windows versucht das Plugin die Pfade automatisch aus der Registry 
zu lesen. Bei Dir ist dort offensichtlich noch ein Eintrag für die alte 
Version gespeichert (alte Version nur gelöscht und nicht korrekt 
de-installiert?)

Starte mal 'Regedit' und hangele Dich zu 
"HKEY_LOCAL_MACHINE\SOFTWARE\WinAVR" durch. Dort findest Du 
wahrscheinlich noch einen Eintrag mit 'WinAVR_20060125'. Den könntest Du 
dann löschen.

Wenn da nichts ist dann kannst Du noch mal unter 
"HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation" schauen, dort 
sollte es dann einen Ordner 'WinAVR_20060125' geben, den Du auch löschen 
könntest.

Leider ist das Plugin in der Hinsicht etwas simpel Programmiert, 
insofern es immer nur den letzten Eintrag aus den entsprechenden 
Registry Keys nimmt und nicht weiter testet, ob sie auch valide sind. 
Aber wirklich dramatisch ist es ja nicht, da man immer mit 'Custom 
Paths' die Auto-Erkennung überschreiben kann. Wenn ich mal zu viel Zeit 
haben sollte werde ich mir die Funktion noch mal anschauen ob man sie 
ohne allzugroßen Aufwand etwas verbessern kann.

von 900ss (900ss)


Lesenswert?

Thomas Holland wrote:
> Bei Windows versucht das Plugin die Pfade automatisch aus der Registry
> zu lesen. Bei Dir ist dort offensichtlich noch ein Eintrag für die alte
> Version gespeichert (alte Version nur gelöscht und nicht korrekt
> de-installiert?)
Nein, aber die alte glaube ich zuletzt installiert (neben den anderen).
Ich installiere immer in c:\pr..\WinAVR. Danach mach ich ein Rename des 
Verzeichnisses und aktiviere die gewünschte. Ist wohl was 
schiefgegangen.

> Starte mal 'Regedit' und hangele Dich zu
> "HKEY_LOCAL_MACHINE\SOFTWARE\WinAVR" durch. Dort findest Du
> wahrscheinlich noch einen Eintrag mit 'WinAVR_20060125'. Den könntest Du
> dann löschen.
Da war es OK.

> Wenn da nichts ist dann kannst Du noch mal unter
> "HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation" schauen, dort
> sollte es dann einen Ordner 'WinAVR_20060125' geben, den Du auch löschen
> könntest.
Da waren 3 Verzeichnisse:
WinAVR zeigte auf die alte Version 'WinAVR_20060125'
WinAVR_200812xx zeigte auf 'WinAVR'
WinAVR_200812x1 zeigte auf 'WinAVR'

Habe jetzt noch einen Eintrag WinAVR.
In Eclipse ist auch wieder alles OK.
Danke für den Tip.

> Leider ist das Plugin in der Hinsicht etwas simpel Programmiert,
Hmmm... nun ja, wer rechnet auch mit soviel Spieltrieb bei den Anwendern 
;-)

> Paths' die Auto-Erkennung überschreiben kann. Wenn ich mal zu viel Zeit
> haben sollte werde ich mir die Funktion noch mal anschauen ob man sie
> ohne allzugroßen Aufwand etwas verbessern kann.

Hast du noch Zeit? Ich meine bastelst du immer noch am Debug-Plugin?

Es ist ganz schön still geworden hier.

Gruß
900ss

von Thomas H. (innot)


Angehängte Dateien:

Lesenswert?

900ss D. wrote:

> Nein, aber die alte glaube ich zuletzt installiert (neben den anderen).
> Ich installiere immer in c:\pr..\WinAVR. Danach mach ich ein Rename des
> Verzeichnisses und aktiviere die gewünschte. Ist wohl was
> schiefgegangen.

Nein, das Plugin nimmt immer den letzten Eintrag aus der Registry (in 
der Annahme das die zuletzt installierte Version die jeweils neuste 
ist).

Das Du eine ältere Version nachinstallierst ist so nicht vorgesehen :-)


> Hast du noch Zeit? Ich meine bastelst du immer noch am Debug-Plugin?

Ja. Allerdings habe ich etwas größer ausgeholt und bin jetzt erst mal 
dabei ein Target Management zu schreiben mit dem man zentral alle 
Einstellungen für avrdude, avarice, simulavr etc. vornehmen kann.

Damit braucht man für jede Debug Launch Configuration nur noch das 
jeweilige Target anzugeben (bzw. ein Projekt mit einer verbundenen 
Target Configurtion) und muss nicht mehr alles einzeln konfigurieren.

(Siehe angehängten Screenshot)

Das ganze ist aber recht umfangreich und es wird noch eine Weile dauern 
bis es fertig ist.

>
> Es ist ganz schön still geworden hier.

Ja! Ich hoffe mal das es ein gutes Zeichen ist und das Plugin einfach so 
gut funktioniert das kaum noch Probleme auftreten.

von 900ss (900ss)


Lesenswert?

Thomas Holland wrote:
> Das Du eine ältere Version nachinstallierst ist so nicht vorgesehen :-)

Aha. :-)

> Damit braucht man für jede Debug Launch Configuration nur noch das
> jeweilige Target anzugeben (bzw. ein Projekt mit einer verbundenen
> Target Configurtion) und muss nicht mehr alles einzeln konfigurieren.

Mann mann mann. Möge dir nicht die nötige Motivation ausgehen :-)

> (Siehe angehängten Screenshot)

Da bin ich schon drauf gespannt.

>> Es ist ganz schön still geworden hier.
>
> Ja! Ich hoffe mal das es ein gutes Zeichen ist und das Plugin einfach so
> gut funktioniert das kaum noch Probleme auftreten.

Du hast ja auch eine gute Hilfe unter SF installiert. Scheint etwas zu 
helfen :-)

Danke nochmal.

von Simon K. (simon) Benutzerseite


Lesenswert?

Thomas Holland wrote:
>> Es ist ganz schön still geworden hier.
>
> Ja! Ich hoffe mal das es ein gutes Zeichen ist und das Plugin einfach so
> gut funktioniert das kaum noch Probleme auftreten.

Ganz genau so ist es.

von Markus _. (markush)


Lesenswert?

Simon K. wrote:
> Thomas Holland wrote:
>>> Es ist ganz schön still geworden hier.
>>
>> Ja! Ich hoffe mal das es ein gutes Zeichen ist und das Plugin einfach so
>> gut funktioniert das kaum noch Probleme auftreten.
>
> Ganz genau so ist es.

Dem kann ich mich nur anschliessen! Einfach nur eine super Arbeit, 
Thomas. Vielen Dank dafür.

Markus

von Andreas V. (tico)


Lesenswert?

Moin Thomas,

ich habe mir gerade Eclipse Ganymede installiert und versuche nun, das 
AVR-Plugin zu laden. Dabei erhalte ich folgende Fehlermeldung:

No repository found at http://avr-eclipse.sourceforge.net/updatesite/
  Error reading update site 
http://avr-eclipse.sourceforge.net/updatesite/.
  Invalid byte 1 of 1-byte UTF-8 sequence.

Kannst Du mir helfen?

von Thomas H. (innot)


Lesenswert?

Hallo Andreas,

war die letzten Tage nicht zu Hause, daher erst mal die Frage: Geht es 
inzwischen oder hast Du immer noch das Problem?

von Andreas V. (tico)


Lesenswert?

Hallo Thomas,

das Problem hat sich inzwischen in Luft aufgelöst, das AVR-Plugin läuft 
jetzt auch bei mir ganz prima. Warum ich diese Fehlermeldung bekam, weiß 
ich allerdings immer noch nicht.
Kann es sein, dass die Updateseite nur funktioniert, wenn man das Plugin 
zunächst von 
http://sourceforge.net/project/showfiles.php?group_id=189165&package_id=221494&release_id=644246 
herunterlädt und von Hand installiert? Das habe ich nämlich gemacht und 
seitdem ist auch die Fehlermeldung weg.

Gruss
Andreas

von Thomas H. (innot)


Lesenswert?

> Kann es sein, dass die Updateseite nur funktioniert, wenn man das Plugin
> zunächst von
> 
http://sourceforge.net/project/showfiles.php?group_id=189165&package_id=221494&release_id=644246
> herunterlädt und von Hand installiert?

Nein, es sollte auch direkt gehen und hat in der Vergangenheit auch 
immer funktioniert.

Ich vermute mal, dass SourceForge an dem Tag, als Du es versucht hast, 
einen Schluckauf hatte und kurzzeitig Datenmüll geliefert hat.

von gast (Gast)


Lesenswert?

Hallo,

>Ich vermute mal, dass SourceForge an dem Tag, als Du es versucht hast,
>einen Schluckauf hatte und kurzzeitig Datenmüll geliefert hat.

ja so ist es, scheint aber nicht nur SourceForge betroffen zu haben. 
Hier im 061xx Bereich war Internet die letzten Tage Glücksache.

MfG

von 900ss (900ss)


Lesenswert?

Falls es noch niemand probiert hat, das Plugin läuft auch unter der 
neuen Eclipse Version Galileo scheinbar einwandfrei.
Ich habe jedenfalls bisher keine Probleme gehabt.
Wollte ich nur mal gesagt haben.

Gruß
900ss

von Simon K. (simon) Benutzerseite


Lesenswert?

Danke für die Info! Werde gleich mal updaten.

von Rolf L. (rluebess)


Lesenswert?

Hallo,
Erst einmal vielen Dank für das geniale Plug-In! Damit macht das 
Entwickeln direkt wieder Spass ;-)

Eine Frage ist heute aber bei mir aufgetaucht bei der ich irgentwie nen 
Klemmer habe:
In meinem aktuellen Projekt muss ich double-Datentypen verwenden, und 
diese mit der "strtod" Funktion kovertieren, und später auch mit fprintf 
ausgeben

Nach dem ich im Linker unter Toolsettings->AVR C Linker->Libraries-> 
(-l) "m" angegeben habe gibt es beim Kompiliern schon mal keinen Fehler 
mehr.

Allerdings wird im "fprintf"-Befehl der Platzhalter %f nur in ein 
Fragezeichen umgewandelt.
Beim AVR-Studio muss ich in dem Fall wohl die erweiterten Bibliotheken 
einbinden wie z.B. hier in der FAQ beschrieben:

http://www.mikrocontroller.net/articles/FAQ#Aktivieren_der_Floating_Point_Version_von_sprintf_beim_WinAVR_mit_AVR-Studio

Wo/wie kann ich im Eclipse diese Einstellungen vornehmen?

von 900ss (900ss)


Lesenswert?

Rolf Luebess schrieb:
> Nach dem ich im Linker unter Toolsettings->AVR C Linker->Libraries->
> (-l) "m" angegeben habe gibt es beim Kompiliern schon mal keinen Fehler
> mehr.

Mit -lm bindest du die libm.a ein. Du müßtest also in Eclipse, um wie im 
Beispiel für das AVRStudio die libprintf_flt einzubinden, noch 
-lprintf_flt mit angeben.

Nebenbei: double unterstützt der GCC für AVR nicht. Er macht daraus 
intern immer float beim rechnen. Also Vorsicht, wenn du WIKLICH double 
brauchen solltest.

Gruß
900ss

von Rolf L. (rluebess)


Lesenswert?

Hallo 900ss,
Danke für die schnelle Antwort!

> Mit -lm bindest du die libm.a ein. Du müßtest also in Eclipse, um wie im
> Beispiel für das AVRStudio die libprintf_flt einzubinden, noch
> -lprintf_flt mit angeben.
Hmm. zickt immernoch rum... Aber ich schau erstmal genauer ob der Fehler 
nicht doch vorm Computer sitzt ;-)

>
> Nebenbei: double unterstützt der GCC für AVR nicht. Er macht daraus
> intern immer float beim rechnen. Also Vorsicht, wenn du WIKLICH double
> brauchen solltest.
Ups, das wusste ich noch gar nicht. Vielen Dank für den Hinweis! Da werd 
ich wohl etwas genauer prüfen müssen um nicht böse Überraschungen zu 
erleben. Hoffentlich wird das kein KO Kriterium.
btw, weißt du ob das bei der kommerziellen Konkurenz auch so ist(z.B. 
IAR?)

MfG
Rolf

von 900ss (900ss)


Lesenswert?

Rolf Luebess schrieb:

>> Nebenbei: double unterstützt der GCC für AVR nicht. Er macht daraus
>> intern immer float beim rechnen. Also Vorsicht, wenn du WIKLICH double
>> brauchen solltest.
> Ups, das wusste ich noch gar nicht. Vielen Dank für den Hinweis! Da werd
> ich wohl etwas genauer prüfen müssen um nicht böse Überraschungen zu
> erleben. Hoffentlich wird das kein KO Kriterium.
> btw, weißt du ob das bei der kommerziellen Konkurenz auch so ist(z.B.
> IAR?)

Weiß ich nicht sicher, aber ich vermute, der kann das. Kannst ja mal 'ne 
kostenlose Demo probieren. Es gibt hier in der Codesammlung aber auch 
Libs für Double. Must mal die Suche anschmeißen.
Aber ich würde erstmal prüfen, ob du wirklich double brauchst.

von Hermann (Gast)


Lesenswert?

Thomas,

irgendwie war mir so, dass du an einer Debug-Erweiterung programmierst.
Wollte nur mal vorsichtig anfragen, ob man sich da Hoffnung machen darf. 
Ist schon lange nichts mehr passiert. Dein Plugin funktioniert ja auch 
ziemlich gut. Danke nochmal dafür.

Gruß Hermann

von Thomas H. (innot)


Lesenswert?

Hi,

ich habe aus einer Reihe von Gründen (hauptsächlich Beruflich) nicht 
mehr so viel Zeit in die Weiterentwicklung des Plugins stecken können. 
Ich programmier immer mal wieder etwas daran, aber nicht mehr mit der 
Intensität des letzten Jahres (laut Ohloh habe ich im letzten Jahr rund 
6 Mannjahre Entwicklungsarbeit geleistet (und das bei einem reinem 
Freizeitprodukt)).

Daher kann ich leider keine Versprechungen machen, wann es die nächste 
Version des Plugins geben wird.

Thomas

von Christian I. (alloc)


Lesenswert?

Hi Thomas,

hab gerade mal wieder mein Sys neu eingerichtet. Als ich die Optionen 
von Eclipse durchgegangen bin, bin ich natürlich auch beim Path-Dialog 
von AVR-Eclipse vorbeigekommen. Mittlerweile nudelt der seit wohl 20-30 
Minuten auf der SSD rum, ohne das da sichtbar was passiert (Eclipse hart 
abschießen möchte ich eigentlich auch nicht :D ).
Dachte das wäre behoben worden? Naja, hier hängts jedenfalls noch ;)

Grüße,
Chris


/EDIT:
Lag uU an mir ;)
Hatte nen SMB-Share gemountet, glaub das hat er auch versucht komplett 
abzuscannen. Grad unmount -> Rescan in dem Dialog -> sofort fertig.

von ab (Gast)


Lesenswert?

Bei mir hat das Plugin unter Eclipse Galileo nicht funktioniert. Unter 
Ganymade ohne Probleme.

von 900ss (900ss)


Lesenswert?

ab schrieb:
> Bei mir hat das Plugin unter Eclipse Galileo nicht funktioniert. Unter
> Ganymade ohne Probleme.

Kuckst du hier:
Beitrag "Re: AVR Eclipse Plugin 2.3"

Und so wie dort beschrieben ist es noch immer.

von ab (Gast)


Lesenswert?

Ich bestreite das :-)
Zumindest hat das gestern Abend unter Ubuntu 9.04 bei mir nicht 
funktioniert...

von Thomas H. (innot)


Lesenswert?

"funktioniert nicht" ist recht pauschal. Könntest Du etwas spezifischer 
beschreiben was und wie nicht geht.

von woko (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Ihr Lieben, nachdem ich meinen Rechner wegen eines Virenbefalls 
neu installieren musste, habe ich jetzt auch meine "alte" ECLIPSE-AVR 
Toolchain ersetzt und das hier beschriebene AVR Eclipse Plugin 2.3 unter 
ECLIPSE Galileo neu installiert.
Nach Neubau der Projektfiles (delete und ADD im Projekt) kann ich auch 
problemlos compilieren. Echt super das Plugin. Nun mein eiegntliches 
Problem:
Im Source File Editor Fenster werden Fehler angezeigt die eigentlich 
keine sind:
z.B. :
"ISR(TIMER0_OVF_vect).."
wird als Syntax Error mit oranger Schlängellinie markiert. Siehe Anhang. 
Er compiliert das auch einandfrei...
Hab ich irgendwas übersehen einzustellen ?

Viele Grüße woko

von Simon K. (simon) Benutzerseite


Lesenswert?

Hmmm bei mir geht das nach gewisser Zeit weg, bzw. spätestens nach dem 
Kompilieren.
Hast du das Problem auch bei neuen Projekten? Also leg mal mit der 2.3 
ein Projekt an und versuch das da auch noch mal.

von woko (Gast)


Lesenswert?

Hallo Simon,
ja Du hattest Recht, die Fehleranzeigen gehen nach einiger Zeit weg, ich 
hatte einen include referenz Fehler übersehen, und dadurch kannte er den 
ISR wohl nicht. Also ist gelöst....
Gruß woko

von Simon K. (simon) Benutzerseite


Lesenswert?

Sehr gut :-) Das Plugin funktioniert ansonsten nämlich absolut 
problemlos. Gutes Stück Software!

von Oliver (Gast)


Lesenswert?

>ich hatte einen include referenz Fehler übersehen,

Die include-Fehler (wobei, es sind ja keine Fehler im Code, lediglich 
der Editor kommt damit nicht zurecht) sind eigentlich die Ursache für 
die fehlenden Makros und defines, wie ISR(), und die verschwinden erst 
nach dem ersten build.

Irgendwo stimmt da was noch nicht 100%-ig.

Oliver

von woko (Gast)


Lesenswert?

"und die verschwinden erst
nach dem ersten build."
Klar - genauso war das

von woko (Gast)


Lesenswert?

Hallo Zusammmen, ich benötige Eure Hilfe:
verwende Eclipse Galileo mit dem aktuellen AVR Eclipse Plugin. Sobald 
ich im Programm printf oder sprintf Funktionen verwende, bekomme ich 
jetzt die folgenden Linker-Fehler:

Building target: sht75b.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,sht75b.map -Wl,-u,vfprintf -lprintf_flt -lm 
-L"C:\WinAVR\avr\lib" -mmcu=atmega644 -o"sht75b.elf"  ./sht75.o 
./sht75_main.o ./uart.o
C:\WinAVR\avr\lib\libprintf_flt.a(vfprintf_flt.o): In function 
`vfprintf':
(.text+0xfe): undefined reference to `__mulhi3'
C:\WinAVR\avr\lib\libprintf_flt.a(vfprintf_flt.o): In function 
`vfprintf':
(.text+0x10e): undefined reference to `__mulhi3'
make: *** [sht75b.elf] Error 1

Mein Problem ist, offensichtlich findet er die Funktion nicht in den 
avr-libs. Allerdings hab ich keine Ahnung, wie ich denn beeinflussen 
kann wann er für die printf oder sprintf Function welche Lib 
verwendet.Oder muss ich eine bestimmte "includieren" ?
Die floating optionen für den Linker habe ich hoffentlich korrekt 
angegeben.

Bisher unter meiner alten Toolchain hatte ich nie das Problem.
Vielen Dank für Eure Hilfe
woko

von woko (Gast)


Lesenswert?

Hallo, ich habs zumindest so hinbekommen, dass der Linker wieder 
glücklich ist...
und zwar mit den folgende Optionen:
-Wl,-u,vfprintf -lprintf_min -lm
stat:
-Wl,-u,vfprintf -lprintf_flt -lm

Wer kann mir denn sagen wo der Unterschied ist (ich mein für mich als 
Anwender) und wann ich welche Option verwenden sollte.
Warum hat das früher mit der lprintf_flt funktioniert und jetzt nicht 
mehr.?
Gruß woko

von karl (Gast)


Lesenswert?

Hi,

Das AVR-Eclipse Plugin ist super, endlich kann ich mit Linux AVRs 
proggen. Doch ein was stört mich noch, kann man irgendwie gnu99 als 
compilerstandart einstellen? Es ist halt nicht so schön bei jedem 
Projekt dies von Hand bei jedem Projekt zu ändern.

weihnachtliche grüße

von Thomas S. (mts)


Lesenswert?

Hallo an alle AVR-Brenner,

ich bin blutiger C-Anfänger, habe noch keinen AVR richtig angefasst aber 
ich habe mir in den letzten Stunden ersteinmal eine anständige 
Programmierumgebung mit Eclipse und dem AVR-Plugin auf meinem mac-mini 
zusammengebastelt. Jetzt werde ich mich mal langsam an C rantasten...

Ich bedanke mich für die massenhaften Infos hier auf [µC.net]

Grüße aus Thüringen

Thomas

von Stefan K. (sk-ac)


Lesenswert?

Hallo,

ich nutze das AVR Plugin in Galileo.

Ich habe ein normales Projekt, welches auch 1a läuft.

Jetzt will ich ein produktives Projekt mit SVN machen.

Leider macht er:
a) kein auto build
b) läuft der build nicht durch
c) bringen die Projekt Einstellungen beim durchklicken Fehler ("invalid
values" und "NullPointer")

Kann das jemand reproduzieren?

Stefan

von Oliver (Gast)


Lesenswert?

Nein.

Oliver

von 900ss (Gast)


Lesenswert?

Oliver schrieb:
> Kann das jemand reproduzieren?

Nein

von 900ss (Gast)


Lesenswert?

900ss schrieb:
> Oliver schrieb:
>> Kann das jemand reproduzieren?
>
> Nein

Das schrieb garnicht Oliver, sondern Stefan. Warum dort oben Oliver 
gelandet ist?? #schulterzuck#

von Stefan K. (sk-ac)


Lesenswert?

Nach welcher Anleitung geht ihr?

Stefan

von Oliver (Gast)


Lesenswert?

Nach gar keiner. WinAVR installieren, Eclipse installieren, 
AVR-Eclipse-plugin installieren, SVN-plugin installieren, fertig. Funzt 
ohne Probleme unter Windows XP.

Zu Vista oder Windows 7 kann ich nichts sagen.

Oliver

von Stefan K. (sk-ac)


Lesenswert?

Hallo,

ich meinte die Projekterstellung.

Stefan Kuhne

von Thomas H. (innot)


Lesenswert?

Hallo Stefan,

für eine konkrete Hilfe müsstest Du etwas konkreter werden, Deine 
bisherigen Schnipsel sind einfach zu vage.

Hier mal ein paar Fragen die uns vielleicht helfen könnten Dein Problem 
besser zu verstehen (ohne Garantie allerdings :-))

1. Was möchtest Du genau tun: Ein neu erstelltes Eclipse Project in ein 
SVN repository exportieren oder ein in einem SVN Repository schon 
vorhandenes Projekt importieren? Bei letzterem: ist es ein Eclipse AVR 
Project.

2. Wie hast Du das "produktive Projekt" angelegt? Welche Anleitung hast 
Du benutzt (brach man dafür tatsächlich eine Anleitung?). Ggf. das 
Projekt in eine Zip-Datei exportieren und hier hochladen.

3. Ging das "produktive Projekt" von Anfang an nicht oder erst nachdem 
Du SVN darauf losgelassen hast? Mit welchen Fehlermeldungen bricht der 
Build ab (Console)?

4. Was für NullPointer Exceptions waren das (Normalerweise wird der 
Verursacher unter "Details>>>" angezeigt, ansonsten sollten sie im 
Eclipse Error Log gespeichert sein (Bei Eclipse 3.5: Help -> About 
Eclipse -> Installation Details -> Configuration -> View Error Log)

5. Was für ein System hast Du: Windows? Linux? MacOSX? Welches SVN 
Plugin benutzt Du: Subclipse oder Subversive?


Thomas

P.S. Etwas offtopic, aber vielleicht ganz hilfreich ist der folgende 
Artikel:
http://www.tty1.net/smart-questions_de.html

von Stefan K. (sk-ac)


Lesenswert?

Thomas Holland schrieb:

Hallo.

> für eine konkrete Hilfe müsstest Du etwas konkreter werden, Deine
> bisherigen Schnipsel sind einfach zu vage.
>
Sorry.

> 1. Was möchtest Du genau tun: Ein neu erstelltes Eclipse Project in ein
> SVN repository exportieren oder ein in einem SVN Repository schon
> vorhandenes Projekt importieren? Bei letzterem: ist es ein Eclipse AVR
> Project.
>
Ich habe über die SVN Repo Ansicht ein checkout eines Ordners gemacht.
Darin dann mit dem Projekt Wizzard ein AVR Projekt angelegt.

> 2. Wie hast Du das "produktive Projekt" angelegt? Welche Anleitung hast
> Du benutzt (brach man dafür tatsächlich eine Anleitung?). Ggf. das
> Projekt in eine Zip-Datei exportieren und hier hochladen.
>
Das ist:
http://www.mikrocontroller.net/articles/AVR_Eclipse#Projekt_erstellen

> 3. Ging das "produktive Projekt" von Anfang an nicht oder erst nachdem
> Du SVN darauf losgelassen hast? Mit welchen Fehlermeldungen bricht der
> Build ab (Console)?
>
Ja, von anfang an.
Das mit dem Build beim Speichern geht einfach nicht.

Das ander muss ich im Büro testen.
Hier gehen soweit alle testst, ausser auto-Build.

> 4. Was für NullPointer Exceptions waren das (Normalerweise wird der
> Verursacher unter "Details>>>" angezeigt, ansonsten sollten sie im
> Eclipse Error Log gespeichert sein (Bei Eclipse 3.5: Help -> About
> Eclipse -> Installation Details -> Configuration -> View Error Log)
>
An error has occurred. See error log for more details.
java.lang.NullPointerException

!ENTRY org.eclipse.jface 4 2 2010-01-29 13:38:26.427
!MESSAGE Problems occurred when invoking code from plug-in: 
"org.eclipse.jface".
!STACK 0
java.lang.NullPointerException
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.performOK(Disc 
overyTab.java:625)
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.handleToolSele 
cted(DiscoveryTab.java:331)
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.updateData(Dis 
coveryTab.java:295)
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.updateData(Dis 
coveryTab.java:248)
  at 
org.eclipse.cdt.ui.newui.AbstractCPropertyTab.configChanged(AbstractCPro 
pertyTab.java:225)
  at 
org.eclipse.cdt.ui.newui.AbstractCPropertyTab.handleTabEvent(AbstractCPr 
opertyTab.java:533)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.forEach(AbstractPage.java:1024)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.cfgChanged(AbstractPage.java:981)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.handleConfigSelection(AbstractPage 
.java:438)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.populateConfigurations(AbstractPag 
e.java:793)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.contentForCDT(AbstractPage.java:33 
2)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.createContents(AbstractPage.java:2 
39)
  at 
org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage 
.java:232)
  at 
org.eclipse.jface.preference.PreferenceDialog.createPageControl(Preferen 
ceDialog.java:1501)
  at 
org.eclipse.jface.preference.PreferenceDialog$14.run(PreferenceDialog.ja 
va:1258)
  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
  at org.eclipse.core.runtime.Platform.run(Platform.java:888)
  at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
  at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
  at 
org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog. 
java:1252)
  at 
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(Filter 
edPreferenceDialog.java:679)
  at 
org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.ja 
va:708)
  at 
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
  at 
org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(Prefere 
nceDialog.java:704)
  at 
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:8 
64)
  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
  at org.eclipse.core.runtime.Platform.run(Platform.java:888)
  at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
  at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
  at 
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(Stru 
cturedViewer.java:862)
  at 
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredVi 
ewer.java:1175)
  at 
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredVi 
ewer.java:1200)
  at 
org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy. 
java:251)
  at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:245)
  at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:419)
  at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
  at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java: 
134)
  at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
  at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
  at org.eclipse.jface.window.Window.open(Window.java:801)
  at 
org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.jav 
a:157)
  at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
  at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Ac 
tionContributionItem.java:584)
  at 
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContribut 
ionItem.java:501)
  at 
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionCont 
ributionItem.java:411)
  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
  at 
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
  at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
  at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
  at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
  at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
  at 
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java: 
332)
  at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:4 
93)
  at 
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
  at 
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplicat 
ion.java:113)
  at 
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.j 
ava:194)
  at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplicat 
ion(EclipseAppLauncher.java:110)
  at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Eclip 
seAppLauncher.java:79)
  at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 
368)
  at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 
179)
  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:559)
  at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
  at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

!ENTRY org.eclipse.jface 4 2 2010-01-29 13:38:28.080
!MESSAGE Problems occurred when invoking code from plug-in: 
"org.eclipse.jface".
!STACK 0
java.lang.NullPointerException
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.performOK(Disc 
overyTab.java:625)
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.handleToolSele 
cted(DiscoveryTab.java:331)
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.updateData(Dis 
coveryTab.java:295)
  at 
org.eclipse.cdt.managedbuilder.ui.properties.DiscoveryTab.updateData(Dis 
coveryTab.java:248)
  at 
org.eclipse.cdt.ui.newui.AbstractCPropertyTab.configChanged(AbstractCPro 
pertyTab.java:225)
  at 
org.eclipse.cdt.ui.newui.AbstractCPropertyTab.handleTabEvent(AbstractCPr 
opertyTab.java:533)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.forEach(AbstractPage.java:1024)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.cfgChanged(AbstractPage.java:981)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.handleConfigSelection(AbstractPage 
.java:438)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.populateConfigurations(AbstractPag 
e.java:793)
  at 
org.eclipse.cdt.ui.newui.AbstractPage.setVisible(AbstractPage.java:815)
  at 
org.eclipse.jface.preference.PreferenceDialog.selectCurrentPageAgain(Pre 
ferenceDialog.java:1020)
  at 
org.eclipse.jface.preference.PreferenceDialog$9.handleError(PreferenceDi 
alog.java:694)
  at 
org.eclipse.jface.preference.PreferenceDialog$9.access$0(PreferenceDialo 
g.java:687)
  at 
org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.ja 
va:710)
  at 
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
  at 
org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(Prefere 
nceDialog.java:704)
  at 
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:8 
64)
  at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
  at org.eclipse.core.runtime.Platform.run(Platform.java:888)
  at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
  at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
  at 
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(Stru 
cturedViewer.java:862)
  at 
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredVi 
ewer.java:1175)
  at 
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredVi 
ewer.java:1200)
  at 
org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy. 
java:251)
  at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:245)
  at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:419)
  at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
  at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java: 
134)
  at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
  at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
  at org.eclipse.jface.window.Window.open(Window.java:801)
  at 
org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.jav 
a:157)
  at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
  at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Ac 
tionContributionItem.java:584)
  at 
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContribut 
ionItem.java:501)
  at 
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionCont 
ributionItem.java:411)
  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
  at 
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
  at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
  at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
  at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
  at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
  at 
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java: 
332)
  at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:4 
93)
  at 
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
  at 
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplicat 
ion.java:113)
  at 
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.j 
ava:194)
  at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplicat 
ion(EclipseAppLauncher.java:110)
  at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Eclip 
seAppLauncher.java:79)
  at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 
368)
  at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 
179)
  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:559)
  at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
  at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

> 5. Was für ein System hast Du: Windows? Linux? MacOSX? Welches SVN
> Plugin benutzt Du: Subclipse oder Subversive?

Windows 7 Professional x64 mit subclibse.

Danke,
Stefan Kuhne

von Thomas H. (innot)


Lesenswert?

OK, da kommen wir der Sache schon näher.

Den Schalter fürs "Auto-Build bei Save" habe ich gefunden: Er muss jetzt 
(Eclipse 3.5/Galileo) für jedes Projekt einzeln angeschaltet werden. Zu 
finden ist der Schalter unter Project Properties -> C/C++ Build -> 
Behaviour Tab -> 'Build on resource save (Auto Build)'

Wurde wahrscheinlich so gemacht, um global Autobuild (z.B. für Java) 
anschalten zu können, ohne das es für C Projekt aktiv ist (ich finde 
autobuild geht nur für sehr kleine C Projekt, sonst wird die Wartezeit 
nach jedem Save einfach zu lang)

Zu den NullPointerExceptions: Kann ich reproduzieren, auch bei nicht-SVN 
Projekten. Da scheint es eine Inkompatibilität zwischen dem Plugin und 
Eclipse 3.5 zu geben.
Ich werde am Wochenende mal den Debugger anwerfen und schauen ob ich den 
Grund finde.

Die Exceptions treten (bei mir) aber nur auf, wenn man bei den Project 
Properties die Seite 'C/C++ Build' -> 'Discovery Options' anwählt und 
dann 'OK' oder 'Apply' klickt.
Also als Workaround diese Seite einfach nicht mehr anwählen.

Thomas

von 900ss (900ss)


Lesenswert?

Thomas Holland schrieb:
> Zu den NullPointerExceptions: Kann ich reproduzieren, auch bei nicht-SVN
> Projekten.

Wie hast du das denn hinbekommen? Ich habe mir eben wirklich alle 
erdenkliche Mühe gegeben, klappt nicht. Läuft perfekt, im Ernst.

Meine Eclipse-Version:
Version: 3.5.1.R35x_v20090910-9gEeG1_FthkNDSP2odXdThaOu9GFDPn83DGB7
Build id: M20090917-0800
Das AVR-Plugin ist das neueste von Dir.

Stefan Kuhne schrieb:
> Ich habe über die SVN Repo Ansicht ein checkout eines Ordners gemacht.
> Darin dann mit dem Projekt Wizzard ein AVR Projekt angelegt.

Normalerweise kannst du schon beim auschecken anwählen "Checkout with 
the "New Project Wizard". In dem Ablauf kannst du dann schon wählen, das 
es ein AVR-Projekt werden soll. Dann brauchst du das nicht hinterher 
machen, wußte auch garnicht dass das möglich ist.

OT auch an @Stefan:
Zu deiner Art hier Fragen zu stellen. Ich verweise auf zwei Links unten. 
Thomas sein Link (http://www.tty1.net/smart-questions_de.html) spricht 
das zwar an, aber das ließt sich keiner durch, weil es zu lang ist.

Beide Links sind Postings von J.W., der mir damit aus der Seele spricht:

Beitrag "Re: Wohin entwickelt sich microcontroller.net?"
Beitrag "Re: Wohin entwickelt sich microcontroller.net?"

Das ist der Grund, warum meine Antwort genauso knapp, ohne Bemühungen 
und undurchsichtig ausfällt, wie die Frage gestellt wurde. Thomas ist da 
etwas toleranter "gestrickt" :-) Und so ein Errorlog, wie du oben 
gepostet hast, aknn man auch in eine Datei packen und als Anhang 
mitschicken. Das bedingt allerdings auch mehr Mühe beim Poster.

So und nun viel Erfolg beim Programmieren deiner AVRs :-)

von Thomas H. (innot)


Lesenswert?

Also, der Fehler mit den NullPointerExceptions liegt nicht am Plugin, 
sondern an CDT und ist bekannt: 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=291690

Der Fix kommt mit CDT 6.0.2 am 26.02. raus.

Warum der Fehler nur manchmal auftritt (und bei manchen garnicht) konnte 
ich trotz intensiven Debuggings nicht nachvollziehen. Scheint ein 
HeisenBug ( http://catb.org/jargon/html/H/heisenbug.html ) oder ein 
MandelBug ( http://catb.org/jargon/html/M/mandelbug.html ) zu sein.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Lesenswert?

Hallöchen..

Bin Neuling was das programmieren in C mit Eclipse und dem AVR-PlugIn 
angeht. Habe davor immer mit AVR-Studio gearbeitet. Ich habe mein 
C-Programm (es besteht nur aus einem Source-File) aus AVR-Studio in 
Eclipse kopiert. Leider treten diverse Syntax-Fehler auf, die ich nicht 
verstehe. Mein C-Programm lief mit AVR-Studio problemlos.

Beim speichern des C-Programms kommt diese Fehlermeldung:
"Save could not be compledet. Some characters cannot be mapped using 
"Cp1252" character encoding."

Meine Entwicklungsumgebeung:
Win7 64Bit
aktuelles WinAVR
aktuelles AVR-Studio
aktuelles Eclipse IDE for C/C++ Developers
AVR Eclipse Plugin Version 2.3

Includes:
1
#include    <avr\io.h>               // AVR Register und Konstantendefinitionen
2
#include    <util\delay.h>           // Bibliothek mit Warteroutinen (es wird kein Timer im ATmega verwendet)
3
#include    <avr\interrupt.h>        // Timer-Interuppts
4
#include   <avr/pgmspace.h>    // Zugriff auf int. Programmspeicher
5
#include  <avr/eeprom.h>      // Zugriff auf int. EEPROM

Beispiel einiger Syntax-Fehler (?????):
1
//----------------------------------------------------------
2
//  externer Interrupt vom PIR-Sensor (falling edge)
3
//----------------------------------------------------------
4
????? ISR(INT0_vect)
5
    {
6
  pir_flag=1;
7
    }
8
9
//----------------------------------------------------------
10
//  Display-Texte
11
//----------------------------------------------------------
12
?????? const char text_5[]  PROGMEM = "   Temperaturen   ";  // Menüseite "Temperaturen"
13
14
//----------------------------------------------------------
15
//  Grafik: Thermometer-Symbol (14*32 Pixel)
16
// 1.Byte oben links, dann senkrecht vortlaufen
17
//----------------------------------------------------------
18
????? const char thermometer_sym[] PROGMEM =
19
{
20
0x0E, // Symbol-Breite
21
0x04, // Symbol-Höhe in Page (1 Page = 8 Bit)
22
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,
23
0x00,0x00,0x80,0x10,0x00,0x00,0x00,0x40,0x26,0x00,0xFF,
24
0xFF,0x3F,0x4F,0x80,0x00,0x00,0x80,0x5F,0x40,0x00,0xFE,
25
0xFF,0x5F,0x40,0x00,0xFE,0xFF,0x5F,0x82,0x00,0x00,0x80,
26
0x5F,0x00,0xFF,0xFF,0x3F,0x4F,0x0C,0x00,0x00,0x40,0x26,
27
0x12,0x41,0x10,0x84,0x10,0x12,0x41,0x10,0x04,0x0F,0x00,
28
0x00,0x00,0x00,0x00
29
};
30
31
// ---- Speicherbereich im EEPROM
32
???? uint8_t   eekomfort_temp_funktion    EEMEM = 0x03;   // Komfort-Funktion
33
???? uint8_t   eelcd_helligkeit      EEMEM = 0x04;  // Display-Helligkeit

Vielen Dank für Eure Hilfe. Im Anhang der Source-Code

Gruß Rolf

von Rolf D. (rolfdegen)


Lesenswert?

Falls mehr Interesse besteht, dann gehts hier zur Projekt-Seite: 
http://www.cczwei-forum.de/cc2/thread.php?threadid=4266&threadview=0&hilight=&hilightuser=0&page=1

Gruß Rolf

von Andreas (Gast)


Lesenswert?

Rolf Degen schrieb:
> Beim speichern des C-Programms kommt diese Fehlermeldung:
>
> "Save could not be compledet. Some characters cannot be mapped using
>
> "Cp1252" character encoding."

File-> Properties -> Text file encoding -> und dann UTF-8 eingeben ist 
dieses Problem gelöst.

Grüße
Andreas

von Andreas (Gast)


Lesenswert?

Ich habe das Programm gerade mal compiliert. Bei mir geht es 
einwandfrei. Man musste nur unter den Projekteigenschaften für den 
Compiler bei Language Standard: ISO C99 (-std=c99) einstellen. Dann 
klappts auch mit dem Compiler

Grüße
Andreas

von Rolf D. (rolfdegen)


Lesenswert?

Hallöchen..

Danke für die Tips. Funktioniert jetzt.

Der Compiler gibt mir nur noch folgende Warnmeldung nach dem compilieren 
aus:
1
# warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"

Was kann das bedeuten?

von Oliver (Gast)


Lesenswert?

Rolf Degen schrieb:
> Was kann das bedeuten?

In etwa:

"Compiler optimizations disabled; functions from <util/delay.h> won't 
work as designed"

Schalt halt die Optimierung ein.

Oliver

von Rolf D. (rolfdegen)


Lesenswert?

Hallo

Die Optimierung stand in den AVR-Compiler Properties auf -Os. Nach dem 
kompilieren hatte mein Programmcode eine Größe von ca. 48kByte. Nachdem 
ich alle Optimierungseinstellungen ausprobiert habe (keine war unter 
16kByte) habe ich die Einstellung wieder auf -Os zurückgestellt und 
nocheinmal kompiliert. Jetzt liegt er wie bei AVR-Studio knapp über 
16kByte und passt in meinen ATmega169.

Danke für Eure Mithilfe. Klasse Forum. Hab diese Wocheende viel 
dazugelernt.

Gruß Rolf

von Thomas Z. (thozei)


Lesenswert?

Ein "bisschen" OT. Ich würde gerne Eclipse benutzen (wegen des Plugins). 
Wie schaffe ich es, meherere Source-Fenster gleichzeitig anzuzeigen 
(Side-by-Side) ????


tia, Thomas

von Anon Y. (avion23)


Lesenswert?

ziehen auf den bereich wo man normalerweise die geöffneten dateien 
auswählen kann.

von Andreas H. (andreas31)


Lesenswert?

Thomas Zeisluft schrieb:
> Wie schaffe ich es, meherere Source-Fenster gleichzeitig anzuzeigen
>
> (Side-by-Side) ????

Oder Doppelclick auf die jeweilige zu öffnende Datei im Projekt Explorer

von Thomas Z. (thozei)


Lesenswert?

Danke  :-)

Thomas

von Manuel Stahl (Gast)


Lesenswert?

Wenn du mehrere Monitore hast, ist es oft auch praktisch einzelne Views 
komplett aus dem Eclipse-Hauptfenster zu lösen und auf den anderen 
Monitor zu schieben. Geht natürlich auch mit Source-Editoren.

von Thomas H. (innot)


Lesenswert?

Hi,

nach langer Zeit habe ich mich mal wieder an das Plugin gemacht und habe 
zumindest mal versucht, alle bekannten Bugs zu beheben. Version 2.3.2 
(beta 1) steht jetzt auf Sourceforge zum Download bereit: 
https://sourceforge.net/projects/avr-eclipse/files/

Ich werde es auch in ein paar Tagen auf der UpdateSite bereitstellen, 
sobald ich genug Feedback bekomme dass das Plugin keine neuen Fehler 
hat.

Hier die Änderungen dieser Version:
1
================================================================================
2
Version 2.3.2 [23. June 2010]
3
4
Changed / Improved:
5
-----------------------------
6
* Fuse description files updated to AVR Tools Build 700 (4.18 SP2)
7
* Bug 2485661: Added a new Assembler tool settings option for assembler specific
8
               paths (-Wa,-I)
9
* gnu99 language standard now default for new projects
10
* Plugin download is now a P2 repository which can be installed via "Install New Software..."
11
               
12
Fixes:
13
-----------------------------
14
* Bug 2453936: AVR specific GUI Elements visible in all Perspectives
15
* Bug 2453946: ClassCastExceptions / [All Configurations]
16
               Partial fix -- no Exceptions anymore but MultiConfig still not supported
17
* Bug 2454094: Remove AVRDude settings from static library projects
18
* Bug 2494131: Invalid optional paths block the Paths Preference page
19
* Bug 2715567: Tool Settings: Assembler Debug Format not inhibited
20
* Bug 2872447: getWinAVRBasePath throws exception on Vista 64
21
* avr/io.h parser updated for recent changes in the avr/io.h format
22
23
  
24
================================================================================

Ich habe es zwar nur kurz getestet, aber das Plugin scheint auch unter 
dem brandneuen Eclipse 3.6 (Helios) problemlos zu funktionieren. Helios 
soll heute released werden, ist aber bisher (19:30) noch nicht auf der 
Download Page erschienen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Vielen Dank Thomas! Ich arbeite schon längere Zeit regelmäßig mit deinem 
Plugin. Das ist bisher die beste IDE um AVRs zu programmieren, wie ich 
finde.


Ein "Keep up the good work" von mir :-)

von Stefan (Gast)


Lesenswert?

Hallo Thomas!

Ich nutze das Plugin auch regelmäßig.

Vielen Dank für deine Arbeit!


Gruß Stefan

von Markus J. (markusj)


Lesenswert?

Bei mir läuft AVR Eclipse 2.3.1 auf Helios problemfrei, ein herzliches 
Dankeschön für das tolle Plugin!

Ich bin schon gespannt auf 2.3.2 ...

mfG
Markus

von Thomas H. (innot)


Lesenswert?

Und es gibt mal wieder ein Bugfix-Release.

Version 2.3.4 steht auf Sourceforge zum download bereit. Wie schon bei 
den letzten Releases ist es ein P2 Repository, das man mit Eclipse 
3.5/3.6 über 'Install Software' direkt installieren kann.

Auch die Updatesite geht, nach einigen Problemen in den letzten Wochen, 
wieder.

Sourceforge: https://sourceforge.net/projects/avr-eclipse/files/
Updatesite:  http://avr-eclipse.sourceforge.net/updatesite/


Hier die aktuellen Änderungen:
1
================================================================================
2
Version 2.3.4 [07. August 2010]
3
4
Changed / Improved:
5
-----------------------------
6
* F/R 2905839: Upload Project To Target Device from any point in Project
7
8
Fixes:
9
-----------------------------
10
* Bug 3023718: Errors when working with XMega MCUs
11
* Bug 2872447: getWinAVRBasePath throws exception on Vista 64 (finally)
12
  
13
================================================================================

Ein Update ist damit interessant für alle, die mit XMegas rumspielen 
oder für Windows-64bit-Nutzer.

Wenn keine neuen Fehler mehr auftreten werde ich damit die 2.3 Serie 
abschließen und mich mal wieder neuen Features zuwenden.

Thomas

von 900ss (900ss)


Angehängte Dateien:

Lesenswert?

Hallo Thomas,

hab gerade von dem Update gelesen und doch direkt mein Eclipse (Galileo 
V3.5) gestartet. Er hat auch brav gemeldet dass es ein Update des 
AVR-Plugins gibt. Ich hab das Update gestartet und nach akzeptieren der 
License kam folgendes eine Fehlermeldung, siehe Anhang.

Mein Path zum Plugin:
http://avr-eclipse.sourceforge.net/updatesite/

Im Helios hab ich das Plugin noch nicht installiert, da bin ich noch am 
schnuppern. Es ist ja schließlich nicht alles Gold was glänzt ;-)

Gruss 900ss

von Michael 9. (michael93) Benutzerseite


Lesenswert?

Hi,

ich hab auch eben die neue Version runtergeladen und installiert, sie 
funktioniert auch bei mir (Galileo, Ubuntu 10.04) nicht).

Grüße,
Michael

PS: Tolles Plugin (ich mein nicht die Versionen mit Fehler, sondern die 
die funktionieren) hast du da geschrieben, fettes Danke!

von Thomas H. (innot)


Lesenswert?

Ich habe mal nach Eurer Fehlermeldung gegoogelt und dieser Fehler tritt 
häufiger auf (nicht nur mit meinem Plugin), und zwar immer dann, wenn 
die Haupt-Updatesite von Eclipse nicht erreichbar ist oder aufgrund von 
Updates kurzfristig inkonsistent ist.
Das ist wohl ein Designproblem des Eclipse-Updatemechanismus. Siehe z.B. 
hier: http://forums.instantiations.com/viewtopic.php?f=4&p=10999

Bitte den Update einfach nochmal probieren. Wenn das nicht klappt 
Eclipse mit dem Parameter '-clean' aus einer Shell starten. Spätestens 
damit sollte klappen.

Ich habe gerade mehrfach das Plugin installiert, immer mit einer 
jungfräulichen 'Eclipse for C/C++ Developer' Installation (Galileo + 
Helios). Sowohl die direkte Installation als auch ein Update von 2.3.3 
haben problemlos funktioniert.


Thomas

von Simon K. (simon) Benutzerseite


Lesenswert?

@Thomas: Danke! Ich freue mich immer, wenn ich sehe, dass da noch Leben 
im Plugin ist. Wobei ich ehrlich gesagt zugeben muss, dass ich schon 
länger mit den ATxmegas am rumbasteln bin und mir bisher kein Fehler 
aufgetreten ist.

Wie auch immer ;-) Habe zur Zeit die gleichen Probleme wie 900ss.

An error occurred while collecting items to be installed
  session context was:(profile=epp.package.cpp, 
phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect, 
operand=, action=).
  No repository found containing: 
osgi.bundle,de.innot.avreclipse,2.3.4.20100807PRD
  No repository found containing: 
osgi.bundle,de.innot.avreclipse.core,2.3.4.20100807PRD
  No repository found containing: 
osgi.bundle,de.innot.avreclipse.doc,2.3.4.20100807PRD
  No repository found containing: 
osgi.bundle,de.innot.avreclipse.source,2.3.4.20100807PRD
  No repository found containing: 
org.eclipse.update.feature,de.innot.avreclipse,2.3.4.20100807PRD
  No repository found containing: 
org.eclipse.update.feature,de.innot.avreclipse.source,2.3.4.20100807PRD


Mal abwarten.

von Markus J. (markusj)


Lesenswert?

Hallo,

2.3.4 ist scheinbar noch nicht wirklich auf der Updatesite angekommen, 
zumindest steht auf http://avr-eclipse.sourceforge.net/updatesite/ 
nichts von der betreffenden Version. (In der site.xml [1] übrigens auch 
nicht)

mfG
Markus

[1] http://avr-eclipse.sourceforge.net/updatesite/site.xml

von Thomas H. (innot)


Lesenswert?

Ich bin im Moment ziemlich ratlos warum die Updatesite bei mir 
problemlos funktioniert und bei euch nicht.

Vielleicht ist es wirklich ein Problem mit Caches. Sourceforge stellt 
den "Expires" HTTP Header recht großzügig ein, so das evtl. sichtbare 
und unsichtbare Caches noch veraltete Seiten zwischenspeichern.

Um das zu checken bitte mal die folgenden Links öffnen und im Browser 
einen reload erzwingen (Firefox: STRG+F5, IExplorer STRG+SHIFT+F5)

http://avr-eclipse.sourceforge.net/updatesite/site.xml
http://avr-eclipse.sourceforge.net/updatesite/content.xml
http://avr-eclipse.sourceforge.net/updatesite/artifacts.xml

Damit sollten diese Dateien auch in den unsichtbaren Caches, die manche 
ISPs haben, aktualisiert sein und in allen Dateien sollte Version 
2.3.4.20100807 auftauchen.

Wenn das nichts hilft dann bitte folgendes ausprobieren:

In Eclipse unter "Window -> Preferences -> Install/Update -> Available 
Software Sites" den Eintrag für das AVR Plugin löschen und wieder neu 
anlegen. Damit werden alle Daten, die Eclipse für die Updatesite 
gespeichert hat, gelöscht.

von Simon K. (simon) Benutzerseite


Lesenswert?

Thomas Holland schrieb:
> http://avr-eclipse.sourceforge.net/updatesite/site.xml
> http://avr-eclipse.sourceforge.net/updatesite/content.xml
> http://avr-eclipse.sourceforge.net/updatesite/artifacts.xml

Habe ich mal gemacht.

> Damit sollten diese Dateien auch in den unsichtbaren Caches, die manche
> ISPs haben, aktualisiert sein und in allen Dateien sollte Version
> 2.3.4.20100807 auftauchen.
Also nach dem Aktualisieren kann ich jetzt tatsächlich deine neue 2.3.4 
Version sehen.

Update geht aber trotzdem nicht.
Ein -clean habe ich auch schon ausprobiert. Geht ebenfalls nicht.

> Wenn das nichts hilft dann bitte folgendes ausprobieren:
>
> In Eclipse unter "Window -> Preferences -> Install/Update -> Available
> Software Sites" den Eintrag für das AVR Plugin löschen und wieder neu
> anlegen. Damit werden alle Daten, die Eclipse für die Updatesite
> gespeichert hat, gelöscht.

Löschen der Site, Neustarten, Hinzufügen der Site, Update anstoßen 
klappt!
Benutze Eclipse Galileo. Build 20100218

Ein großes Danke an dich!

von Georg W. (gewe)


Lesenswert?

Hi zusammen,

bei mir hat das Update anstandslos geklappt.

Gallileo auf XP.

cu
Georg

von Markus J. (markusj)


Lesenswert?

Jetzt funktioniert es plötzlich (ohne weiteres zutun) ... auch die o.g. 
Dateien sind jetzt aktuell.
Schätze dass da in irgend einem Cache zwischen den SF-Servern und mir 
noch alte Daten hängen geblieben waren.

Danke für den Support und das Plugin!

mfG
Markus

von Michael 9. (michael93) Benutzerseite


Lesenswert?

Hi nochmal,

also, ich habs grad nochmal probiert und es ging einwandfrei.

Danke,
Michael

von Tobi (Gast)


Lesenswert?

Läuft, vielen lieben Dank!

von Thomas H. (innot)


Lesenswert?

So, nachdem sich die Probleme mit der Updatesite so langsam in Luft 
aufzulösen scheinen kann ich beruhigt schlafen gehen.

Danke an alle, die das Plugin gleich getestet haben und Feedback gegeben 
haben.

Thomas

von 900ss (900ss)


Lesenswert?

Guten Morgen Thomas,

ich hoffe dein Schlaf war erholsam ;-)

Thomas Holland schrieb:
> Um das zu checken bitte mal die folgenden Links öffnen und im Browser
> einen reload erzwingen (Firefox: STRG+F5, IExplorer STRG+SHIFT+F5)
>
> http://avr-eclipse.sourceforge.net/updatesite/site.xml
> http://avr-eclipse.sourceforge.net/updatesite/content.xml
> http://avr-eclipse.sourceforge.net/updatesite/artifacts.xml

Danach hat es geklappt. Bzw. eben hab ich es ohne diese "reloads" nicht 
mehr probiert gehabt. Danke Dir.

900ss

von 900ss (900ss)


Lesenswert?

Hi Thomas,

ich möchte nochmal auf ein Problem zurückkommen, dass ich schonmal hatte 
und wir haben auch einen Workaround gefunden.

Siehe hier:
Beitrag "Re: AVR Eclipse Plugin 2.3"

Ich bin auch erstaunt, dass da kein andere Anwender drüber stolpert. 
Bisher hab ich jedenfalls nichts davon gelesen.


Ich habe mir vor Monaten einen neuen Rechner eingerichtet. Dort habe ich 
den WinAVR nicht auf dem offiziellen Weg installiert, sondern ich habe 
von der alten Platte alle dort installierten WinAVR-Versionen so rüber 
kopiert.
Es entstehen dann also keine Einträge in der Registry, das Plugin findet 
also nichts und trägt unter "Window.Preferences.AVR.Paths" keine Pfade 
ein.
Wenn ich die WinAVR-Version wechsel, dann mache ich ein "Rename" der 
Verzeichnisse.
Ich habe jetzt unter "Window.Preferences.AVR.Paths" wieder "custom" und 
den gültigen Pfad eingetragen (c:\Programme\WinAvr). "Disable search" 
ist OFF.
Nachdem ich mir die #include Pfade in einem Projekt angesehn habe, waren 
dort jetzt zusätzlich zu den alten falschen Pfaden auch die richtigen 
eingetragen. Alles gut. Jetzt hab ich Eclipse beendet, die WinAVR 
Version gewechselt und Eclipse wiweder gestartet. Jetzt steht in dem 
Projekt kein neuen Pfad aber alle alten ungültigen. Das könnte ich jetzt 
in der prefs-Datei per Hand ändern. Hmmm.... :-/

Nun gut, also mit Workarounds bekommt man es wohl hin.
Aber ich finde das suboptimal ;-)

Wenn ich die Toolchain ändere, dann sollte es doch möglich sein, dass 
das automatisch gerade gebogen wird. Also meinetwegend einen Button 
"rescan".
Wenn dann "Window.Preferences.AVR.Paths" auf "custom" steht, dann gräbt 
er das nochmal durch, löscht die alten Pfadangaben im Projekt und trägt 
die neuen gültigen ein. Der Rescan-Button, dann auch irgendwo im Projekt 
unterbringen.

Ich würde als Workaround auch noch akzeptieren, in 
"Window.Preferences.AVR.Paths"  "Disable search" auf ON und dass ich die 
Pfadangaben im Projekt editieren kann. Das geht leider auch nicht, dort 
sind die Pfadangaben nicht editierbar, man kann nur neue hinzufügen und 
die könnte man dann auch ändern.

Lange Rede kurzer Sinn, wenn man die Toolchain wechselt, ist es etwas 
krampfig. Wenn ich "custom" unter "Window.Preferences.AVR.Paths" 
eintrage, dann macht er keinen Update der Projektpfade, auch wenn 
"Disable search" auf OFF steht. Das ist wohl eher ein Bug oder hab ich 
was falsch verstanden.

Wieso ist da noch kein anderer drüber gefallen?

Für das Gedanken machen sag ich schon mal danke. Wenn dann alles so 
bleibt, finde ich es zwar nicht schön, werde aber auch nicht in Tränen 
ausbrechen ;-)

900ss

von Thomas H. (innot)


Lesenswert?

Hallo 900ss,

doch, das ist auch schon anderen aufgefallen. Ich hatte auch schon 
rumexperimentiert, aber das Problem war, das vor CDT 7.0 (Helios) kein 
API vorhanden war um alte Einträge zu löschen. Es war schlicht unmöglich 
bei laufendem Eclipse an die Listen zu kommen, da sie alle intern als 
'private' markiert waren und damit nicht zugänglich.

Ich habe es noch nicht ausprobiert, aber ab 7.0 gibt es jetzt wohl ein 
API um alte Einträge zu löschen. Und die ersten Builds von CDT 7.0.1 
(Release ca. Sep'10) haben wohl auch einen Button um alle alten Einträge 
zu löschen.
Siehe: https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372

Da Du sicher nicht der einzige bist, der mit mehreren avr-gcc toolchains 
arbeitet habe ich mir auch schon überlegt, ob es nicht Sinn macht, 
mehrere Toolchains parallel zu unterstützen und dann jeweils eine pro 
Build-Configuration auszuwählen. Vielleicht tut sich auch auf der CDT 
Front was dazu: https://bugs.eclipse.org/bugs/show_bug.cgi?id=142619

Dazu möchte ich aber noch abwarten, was mit WinAVR passiert. Atmel hat 
ja die Entwicklung übernommen und die aktuelle Beta-Version ist nur noch 
ein Plugin für das Hauseigene (zukünftige) AVRStudio4Eclipse. Vielleicht 
kann man das ja irgendwie nutzen.


Thomas

von Albert .. (albert-k)


Lesenswert?

Hallo zusammen
Ich habe ein Problem bei der Verwendung des Plugins. Und zwar tritt ein 
Problem beim Aufruf von AVRDUDE auf.

Dabei wird folgender Aufruf getätigt (aus der Konsole in Eclipse 
gelesen)
1
avrdude -c avrispmkII "-P COM3" -p m16 -U flash:w:Stromsenke.hex
Wie zu sehen ist werden zusätzliche Hochkommata beim Port eingefügt. Das 
stimmt natürlich nicht un der Com Port kann nicht geöffnet werden. "The 
Port for the programmer is blocked" kommt als Fehlermeldung.

Wenn ich den befehl direkt in der Kommandozeile ohne die Hochkommata, 
also wie folgt aufrufe
1
avrdude -c avrispmkII -P COM3 -p m16 -U flash:w:Stromsenke.hex
fuktioniert es auch einwandfrei. Meine Frage ist nun wie ich diesen 
Fehler in Eclipse beheben kann?

von Albert .. (albert-k)


Lesenswert?

Ich habe die Lösung gefunden. Und zwar habe ich unter 
Window->Preferences->AVR->AVRDude bei der Programmer Configuration im 
Feld override default Port vor und hinter dem COM3 noch eine leerzeile 
gehabt. Diese leerzeilen dürfen nicht sein da ansosnten wohl diese 
Hochkommata eingefügt werden. Nach deren Entfernung geht nun alles 
wunderbar.

von Markus J. (markusj)


Lesenswert?

Thomas Holland schrieb:
> Dazu möchte ich aber noch abwarten, was mit WinAVR passiert. Atmel hat
> ja die Entwicklung übernommen und die aktuelle Beta-Version ist nur noch
> ein Plugin für das Hauseigene (zukünftige) AVRStudio4Eclipse. Vielleicht
> kann man das ja irgendwie nutzen.

Atmel hat die 8-Bit GCC-Toolchain veröffentlicht [1], wie schauts mit 
dem Support dafür aus? Manuelles reinhacken sollte ja möglich sein, 
würde die Pfaderkennung die neue Toolchain auch automatisch finden? Ein 
erster Versuch ohne die WinAVR-Installation zu deinstallieren ergab 
keine Änderungen.

mfG
Markus

[1] Beitrag "Re: WinAVR-2010 soll die letzte Version sein?"

von Thomas H. (innot)


Lesenswert?

Das Plugin sollte mit der neuen AVR Toolchain von Atmel problemlos 
funktionieren. Man muss nur die Pfade in den Preferences von 'System' 
auf 'Custom' stellen und entsprechend umbiegen.

Eine automatische Erkennung wird es auch geben sobald ich mal wieder 
ernsthaft an dem Plugin arbeiten werde.

Thomas

von Simon K. (simon) Benutzerseite


Lesenswert?

Sehr interessant. Benutze dein Plugin immer noch regelmäßig.

Hat schon jemand Erfahrungen mit der AVR Toolchain von Atmel? Haben die 
jetzt einfach nur den Namen geändert und den Support (Bugtracker) von 
WinAVR übernommen? Oder ist das komplett neu aufgesetzt? Was soll mich 
bewegen die Software statt dem WinAVR (AVR-GCC avr-libc) zu benutzen?

von Markus J. (markusj)


Lesenswert?

Simon K. schrieb:
> Was soll mich
> bewegen die Software statt dem WinAVR (AVR-GCC avr-libc) zu benutzen?

Neuere GCC-Versionen (4.4.3 statt 4.3.3), Support für neuere Devices, 
behobene Bugs, neue Bugs ;)

mfG
Markus

von Thomas H. (innot)


Lesenswert?

> Haben die
> jetzt einfach nur den Namen geändert und den Support (Bugtracker) von
> WinAVR übernommen?

im Prinzip ja. Außer neuen Versionen der Toolchain und minimal andere 
Registry-Einträge (weshalb das Plugin die neue Toolchain nicht 
automatisch erkennt), hat sich, zumindest auf den ersten Blick, nicht 
viel verändert.

P.S. es gibt noch eine Alternative zum alten WinAVR: 
http://www.makehackvoid.com/group-projects/mhvavrtools mit GCC 4.5.x für 
alle, die es ganz aktuell haben möchten. Habe ich aber noch nicht 
ausprobiert, sollte aber genauso gut funktionieren.

von Markus J. (markusj)


Lesenswert?

Hallo zusammen,

bei meinem Linux-Umstieg ist mir eine Kleinigkeit unangenehm 
aufgefallen, die das Arbeiten mit dem Plugin momentan etwas erschwert:
Im Gegensatz zu Eclipse unter Win(AVR/-dows) werden hier die Headerfiles 
der avr-libc nicht automatisch unter "Paths and Symbols" eingetragen.

Mein Setup: Ubuntu 10.10, Eclipse Helios SR2 mit CDT 7.0.2 (von 
eclipse.org heruntergeladen/installiert) und AVR Eclipse 2.3.4, daneben 
noch eine Reihe weiterer Java-Plugins.

Quizfrage: Bug, Feature oder Fehler meinerseits, und wenn letzteres: Was 
mache ich falsch?

mfG
Markus

von 900ss (900ss)


Lesenswert?

Markus J. schrieb:

> Quizfrage: Bug, Feature oder Fehler meinerseits, und wenn letzteres: Was
> mache ich falsch?

Schonmal ganz oben im Eröffnungsposting nachgelesen oder in der Doku des 
Plugins:
http://avr-eclipse.sourceforge.net/user%20manual/concepts/avr_path_management.html

Evtl. hilft dir das ja weiter.

von Markus J. (markusj)


Lesenswert?

Mea culpa, es geht um die Projektoptionen, nicht um die Konfiguration 
von (AVR) Eclipse selbst.
Die Erkennung der avr-gcc-Installation bereitete keine Probleme, es geht 
nur darum, dass die gefundenen Pfade nicht unter "Paths and Symbols" 
meiner Projekte auftauchen, damit findet der Indexer die Headerfiles der 
avr-libc nicht und Eclipse jammert bei jedem Aufruf einer 
avr-libc-Funktion.
Das Kompilieren selbst funktioniert weiterhin problemlos, die Pfade 
werden also zumindest an avr-gcc übergeben.

mfG
Markus

von Andreas (Gast)


Lesenswert?

Hallo Thomas,

ich verwende Dein Plugin mit Eclipse Indigo SR1. Funktioniert soweit 
super, nur der Befehl "AVR Device Explorer" scheint in dieser 
Eclipse-Version ein Problem zu haben, eine View zu öffnen. Folgende 
Ausgabe ist zu sehen:
1
org.eclipse.core.runtime.AssertionFailedException: null argument:
2
  at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85)
3
  at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73)
4
  at org.eclipse.jface.viewers.StructuredViewer.assertElementsNotNull(StructuredViewer.java:599)
5
  at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1011)
6
  at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:917)
7
  at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:1067)
8
  at org.eclipse.jface.viewers.AbstractListViewer.inputChanged(AbstractListViewer.java:332)
9
  at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
10
  at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
11
  at de.innot.avreclipse.ui.views.avrdevice.AVRDeviceView.providerChanged(AVRDeviceView.java:478)
12
  at de.innot.avreclipse.ui.views.avrdevice.AVRDeviceView.createPartControl(AVRDeviceView.java:202)
13
  at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)
14
  at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)
15
  at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
16
  at org.eclipse.ui.internal.Perspective.showView(Perspective.java:2245)
17
  at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1145)
18
  at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3921)
19
  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
20
  at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3918)
21
  at org.eclipse.ui.handlers.ShowViewHandler.openView(ShowViewHandler.java:162)
22
  at org.eclipse.ui.handlers.ShowViewHandler.execute(ShowViewHandler.java:76)
23
  at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
24
  at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
25
  at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
26
  at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
27
  at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
28
  at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)
29
  at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)
30
  at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)
31
  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
32
  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
33
  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
34
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
35
  at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
36
  at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
37
  at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
38
  at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
39
  at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
40
  at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
41
  at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
42
  at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
43
  at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
44
  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
45
  at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
46
  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
47
  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
48
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
49
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
50
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
51
  at java.lang.reflect.Method.invoke(Unknown Source)
52
  at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
53
  at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
54
  at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

Ist vielleicht nur eine Kleinigkeit, kannst Du das fixen? Ich fand den 
Device Explorer immer sehr praktisch!

von Andreas (Gast)


Lesenswert?

So, ich habe nun mal selbst etwas nachgeforscht und festgestellt, dass 
das Problem mit dem Befehl AVR Device Explorer mit der Zeile
1
#elif defined (__AVR_M3000__)
in den neueren Versionen der Datei include/avr/io.h zusammenhängt.
Der Parser des Plugins scheint diesen Namen nicht zu mögen. Wenn man ihn 
ändert, z.B. in
1
#elif defined (__AVR_ATm3000__)
funktionierts. Die io.h so zu verändern geht natürlich nur, wenn man den 
M3000 nicht verwendet, sonst findet der Compiler die Deviceinformationen 
nicht.

von Thomas H. (innot)


Lesenswert?

Danke für die Info, ich werde es bei nächster Gelegenheit fixen.

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.