Forum: Compiler & IDEs Eclipse (mars) und AVR -- Fehlermeldungen


von White Rabbit (Gast)


Lesenswert?

Hallo.
Ich habe versucht, Eclipse (mars, C/C++ Version) zusammen mit dem AVR 
Plugin zum Laufen zu bringen ... die Installation klappte zwar soweit, 
aber ich kann nichts compilieren. Stattdessen erhalte ich diverse 
Fehlermeldungen.

Meine Anleitung war diese hier:
http://www.instructables.com/id/How-to-get-started-with-Eclipse-and-AVR/?ALLSTEPS

Natürlich habe ich auch die Anleitung hier im Forum gefunden aber die 
scheint wesentlich älter zu sein??
https://www.mikrocontroller.net/articles/AVR_Eclipse

Aber der Reihe nach:
Ich kann zwar ein Projekt erstellen "AVR Cross Target App", doch der 
Wizzard bietet mir anschließend im Menu "MCU Type" nichts an. Es ist 
einfach nichts anwählbar.

Danach habe ich New --> Source File --> main.c erstellt und z.B. dieses 
kurze Script eingefügt:
http://peterstuifzand.nl/2008/01/30/i-programmed-my-first-attiny2313.html

Ohne überhaupt compiliert zu haben, erhalte ich direkt 6 Warnungen, wie 
z.B. "Symbol DDRB could not be resolved". Wenn ich danach auf "Build" 
klicke, erscheint in der Eclipse-Konsole:

16:52:35 **** Build of configuration Release for project Blink ****
make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections 
-fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields 
-mmcu=atmega16 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o 
"main.o" "../main.c"
Finished building: ../main.c

Building target: Blink.elf
Invoking: AVR C++ Linker
avr-g++ -Wl,-Map,Blink.map,--cref -mrelax -Wl,--gc-sections 
-mmcu=atmega16 -o "Blink.elf"  ./main.o
/usr/lib/gcc/avr/4.8.2/../../../avr/lib/avr5/crtm16.o: In Funktion 
`__bad_interrupt':
../../../../crt1/gcrt1.S:195: Nicht definierter Verweis auf `main'
collect2: error: ld returned 1 exit status
make: *** [Blink.elf] Fehler 1

Und das war's ... hat einer eine Idee, woran das scheitert bzw was 
schief gelaufen ist?

Danke!

von hp-freund (Gast)


Lesenswert?

White Rabbit schrieb:
> Ich kann zwar ein Projekt erstellen "AVR Cross Target App", doch der
> Wizzard bietet mir anschließend im Menu "MCU Type" nichts an. Es ist
> einfach nichts anwählbar.

Moin,

ich habe das mal ausprobiert. Die Liste bleibt nur leer wenn mars beim 
Start den avr-gcc Pfad nicht findet.
Ich denke Du musst die Pfadeinstellungen zum avr-gcc anpassen.

von White Rabbit (Gast)


Lesenswert?

Hm -- wo mache ich das? Dachte, dass die toolchain automatisch gefunden 
wird?

von White Rabbit (Gast)


Lesenswert?

... ach ja: Und warum sind da die anderen Meldungen bzgl "Unknown 
symbol?" -- das hat doch anscheinend nichts mit dem anderen Problem zu 
tun, oder?

von hp-freund (Gast)


Lesenswert?

Ich weiß nicht wie Du dein mars startest und ob avr-gcc dann schon 
bekannt ist.

Startest Du dein eclipse von der konsole aus oder durch klick?

Von der konsole kannst Du vorher zur Kontrolle avr-gcc aufrufen.
Wenn Du nur klickst muss der avr-gcc im System- oder Benutzerpfad 
vorhanden sein.

von White Rabbit (Gast)


Lesenswert?

ich starte es aus /opt/eclipse mit
./eclipse
Darin ist avr-gcc ebenfalls bekannt:

$ avr-gcc --version
avr-gcc (GCC) 4.8.2

Es ist ja auch nicht so, dass nichts compiliert wird ... sondern eher, 
dass ich die Einstellungen nicht verändern kann und der Editor zudem 
diverse Fehlermeldungen bringt.

Das Problem scheint übrigens bekannt zu sein: Status: offen (!)
http://sourceforge.net/p/avr-eclipse/support-requests/25/?page=1

von hp-freund (Gast)


Lesenswert?

Von dem Problem habe ich nichts mitbekommen ;-)

Da ich mehrere Versionen von eclipse/gcc habe, sind meine auch nicht in 
den Standartordnern installiert.
Dazu evtl. später mehr...

Teste doch erst mal ob in der Konsole avr-gcc funktioniert:
neuen Ordner anlegen mit einer Datei
test.c:
1
#include <avr/io.h>
2
int main()
3
{
4
  DDRB  = 0xFF;
5
  PORTB  = 0xFF;
6
  while(1) {}
7
}

Dann:

avr-gcc test.c -o test -mmcu=atmega16

Wenn das funktioniert von diesem Ordner aus eclipse aufrufen.

von White Rabbit (Gast)


Lesenswert?

also direkt aus der Konsole heraus funktioniert es (hätte mich auch 
gewundert wenn nicht (übrigens: hier läuft ein Kubuntu 14.04 LTS 64 Bit)

Es wurde ohne zu meckern die Datei 3975 Aug 11 11:46 test angelegt.

Der Aufruf von eclipse klappt natürlich auch. Ich kann die Datei
test.c öffnen aber dann nicht kompilieren, weil es kein Projekt ist(?)

Wenn ich deine Code-Zeilen allerdings wieder in einem anderen Projekt 
unter main.c einfüge und "Compile all" verwende, erhalte ich erneut "3 
Problems"
(Nicht definierter Verweis auf main, Symbol DDRB could not be resolved 
und Symbol PortB could not be resolved)

Wenn ich compiliere (Build all), erscheint:

11:53:21 **** Incremental Build of configuration Release for project 
Blinky2 ****
make all
Building target: Blinky2.elf
Invoking: AVR C++ Linker
avr-g++ -Wl,-Map,Blinky2.map,--cref -mrelax -Wl,--gc-sections 
-mmcu=atmega16 -o "Blinky2.elf"  ./main.o
/usr/lib/gcc/avr/4.8.2/../../../avr/lib/avr5/crtm16.o: In Funktion 
`__bad_interrupt':
../../../../crt1/gcrt1.S:195: Nicht definierter Verweis auf `main'
collect2: error: ld returned 1 exit status
make: *** [Blinky2.elf] Fehler 1

11:53:21 Build Finished (took 70ms)

Also nicht viel anders als vorher?!?

von hp-freund (Gast)


Lesenswert?

Gut. Dann ist mit avr-gcc alles ok.

eclipse ist zum Glück so Aufgebaut das es in einem beliebigen 
Verzeichnis installiert werden kann.

Wenn Du möchtest installiere doch im aktuellen Ordner (wo die test.c 
drin ist) ein frisches eclipse mit avr-plugin.

Das kannst Du bei Bedarf später einfach wieder löschen wenn es nicht 
gehen sollte - was ich aber nicht glaube, da es bei mir unter Ubuntu 
14.04 LTS 64 Bit ja funktioniert.

1. herunterladen von mars:
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/R/eclipse-cpp-mars-R-linux-gtk-x86_64.tar.gz

2. entpacken:
tar xvf eclipse-cpp-mars-R-linux-gtk-x86_64.tar.gz

3. starten:
eclipse/eclipse &

4. avr-plugin Version 2.4.1 installieren von:
http://avr-eclipse.sourceforge.net/updatesite


Dann sehen wir weiter....

von Amateur (Gast)


Lesenswert?

Kann es sein, dass der Prozessor nicht korrekt definiert ist?
io.h ist ja so etwas wie eine Standartbibliothek. Aber die 
Registerbezeichner sind prozessorabhängig.

Beim "manuellen" Aufruf durch:

>>avr-gcc test.c -o test -mmcu=atmega16<<

geschah dies ja durch den mmcu-Parameter.

von hp-freund (Gast)


Lesenswert?

Noch vergessen: nach der Installation von eclipse zuerst wie gewohnt ein 
neues C Projekt erstellen. Mit hoffentlich gefüllter MCU Liste ;-)

von hp-freund (Gast)


Lesenswert?

Amateur schrieb:
> Beim "manuellen" Aufruf durch:
>
>>>avr-gcc test.c -o test -mmcu=atmega16<<
>
> geschah dies ja durch den mmcu-Parameter.

Genau das ist wohl der Zusammenhang mit der leeren MCU Liste.

von White Rabbit (Gast)


Lesenswert?

Dein Vorgehen unterscheidet sich nicht von meinem ... und ich habe das 
schon mehrfach so gemacht ... einziger Unterschied: als root unter /opt 
entpackt. Sollte es das sein??

Ich kann's ja nochmal als User ausprobieren und mich dann melden.

von hp-freund (Gast)


Lesenswert?

White Rabbit schrieb:
> Ich kann's ja nochmal als User ausprobieren und mich dann melden.

Irgenwie hatte ich auch schon so eine Ahnung das das Problem mit dem 
Plugin vielleicht eine Rechteangelegenheit sein könnte.

von Amateur (Gast)


Lesenswert?

Ich würde nichts auf ein Rechteproblem setzen.

Kann mir nicht vorstellen, dass der Zugriff auf "io.h" funktioniert und 
der auf "xxx.inc" nicht. Beim "Fehlen" von io.h sollte, der Compiler, 
eine entsprechende Fehlermeldung ausgegeben.

von hp-freund (Gast)


Lesenswert?

Amateur schrieb:
> Beim "Fehlen" von io.h sollte, der Compiler,
> eine entsprechende Fehlermeldung ausgegeben.

So weit ist es ja noch garnicht.
Es geht mehr darum das das Plugin etwas nicht findet...

von Amateur (Gast)


Lesenswert?

>So weit ist es ja noch garnicht.

Ich dachte immer, dass Compiler von "oben" nach unten arbeiten. Sprich:
Er liest (oder auch nicht) io.h, kommt dann zu main und findet dort: 
DDRB. Dies wird wegen eines "keine Ahnung" moniert.

Ein Fehler beim Plug-In sollte es erst gar nicht so weit kommen lassen.

Hat denn die Kommandozeile andere Rechte wie das Programm?

von hp-freund (Gast)


Lesenswert?

Lies noch mal den ersten Beitrag von White Rabbit.
Es hat das Plugin sozusagen ausgetrickst.

von Amateur (Gast)


Lesenswert?

@ hp-freund
Ich bezog mich auf den Post von 11:53.

>Wenn ich deine Code-Zeilen allerdings wieder in einem anderen Projekt
>unter main.c einfüge und "Compile all" verwende, erhalte ich erneut "3
>Problems"
>(Nicht definierter Verweis auf main, Symbol DDRB could not be resolved
>und Symbol PortB could not be resolved)

Also hat der Compiler wohl die Symbole DDRB und PORTB erreicht...
Darüber hinaus kenn' ich aber niemanden mit Namen: Blinky2.

von hp-freund (Gast)


Lesenswert?

Amateur schrieb:
> in einem anderen Projekt

Wie wurde das erstellt? Mit dem Plugin ohne MCU Auswahl?

von White Rabbit (Gast)


Lesenswert?

hp-freund schrieb:
> Amateur schrieb:
>> in einem anderen Projekt
>
> Wie wurde das erstellt? Mit dem Plugin ohne MCU Auswahl?

Ja, genau! Ich konnte halt bei MCU nichts auswählen ... da habe ich ohne 
weiter gemacht ... klar, dass das zu Fehler führt. Aber wo liegt die 
Ursache?

von White Rabbit (Gast)


Lesenswert?

> Darüber hinaus kenn' ich aber niemanden mit Namen: Blinky2.
Ich habe das Projekt so genannt -- in Anlehnung an:

http://www.instructables.com/id/How-to-get-started-with-Eclipse-and-AVR/step7/Make-a-new-project/

von hp-freund (Gast)


Lesenswert?

Installiere mal eclipse als Benutzer neu, dann schauen wir mal...

von White Rabbit (Gast)


Lesenswert?

Amateur schrieb:
> Ich würde nichts auf ein Rechteproblem setzen.


Gerade nochmal alles ganz frisch als User versucht und zuvor extra
~/.eclipse  und /opt/eclipse gelöscht.
Es bleibt dabei -- unter MCU kann ich weiterhin nichts auswählen. Es 
scheint also KEIN Rechteproblem zu sein ... hätte mich auch gewundert.

von White Rabbit (Gast)


Lesenswert?

hp-freund schrieb:
> Installiere mal eclipse als Benutzer neu, dann schauen wir mal...

Übrigens: Eclipse kommt hier nicht aus der Softwareverwaltung von Ubuntu 
(nur nochmal zur Klarstellung ... dürfte aber klar sein!??)

Ich habe diese Version benutzt:
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/marsr
(64 Bit, Linux)

von Amateur (Gast)


Lesenswert?

Habe schon lange nicht mehr unter Linux gearbeitet. Früher gab es mal 
ein Tool, das die Systemaufrufe protokolliert hat. Z. B. File open usw. 
Keine Ahnung wie das hieß. Würde dies mal versuchen. Da kann man sehen, 
wenn Pfade, wo auch immer diese gesetzt wurden, nicht stimmen oder durch 
nutzlose defaults ersetzt wurden...

von hp-freund (Gast)


Lesenswert?

White Rabbit schrieb:
> dürfte aber klar sein!??

Klar!

Du hast die gleiche Version installiert die ich auch habe.
Mit AVR-Plugin Version 2.4.1 ?

Amateur schrieb:
> ein Tool, das die Systemaufrufe protokolliert

strace

Ist aber eine Meeeenge protokolliert ;-)

von Amateur (Gast)


Lesenswert?

>Ja, genau! Ich konnte halt bei MCU nichts auswählen ...

Das darf nicht sein!

Normalerweise geschieht dies - einmalig - während der Projektanlage. 
Schau dort nochmal genau hin.

Da sich die Port- und Registerzugriffe der einzelnen Prozessoren sehr 
stark voneinander unterscheiden, ist diese Angabe unumgänglich.
Eine C-Code Übersetzung kann ohne diese Information auch nicht 
durchgeführt werden.

von White Rabbit (Gast)


Lesenswert?

Es wird scheinbar alles für einen ATMega16 per default eingestellt?
Zumindest steht das oben im compile-Befehl und wird auch scheinbar per
Default hier gesetzt:

[workspace]/.metadata/.plugins/org.eclipse.core.runtime/.settings/de.inn 
ot.avreclipse.core.prefs

Wer hat einen Code-Schnipsel, der mit einem ATMega16 läuft? Den könnte 
ich ja mal ausprobieren...

Und das AVR-Plugin ist Version 2.4.1 - ja. Es kommt von
http://avr-eclipse.sourceforge.net/updatesite/

von René S. (thebit)


Lesenswert?

Servus

wenn keine MCU ausgewählt werden kann liegt das Problem dort. Allerdings 
ist das Problem bekannt und es liegt am AVR Plugin seit 2.4.0. Dort ist 
im Code einer Java Class ein Leerzeichen zuviel. Es gibt eine gepatchte 
Version die dieser Class, welche man im Pluginordner einfügen und 
entsprechend benennen muss.

Einfach mal das Forum hier durchsuchen, da gab es mal einen thread dazu. 
Dort habe ich die Info's damals gefunden. Die Datei kann ich ja heute 
abend mal hier ranhängen.

Alternativ wäre die Möglichkeit einfach die MCU an den Programmer zu 
hängen und beim Erstellen des Projektes bei MCU "get from Hardware" 
anzuwählen.


Gruß René

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Na das klingt doch gut.

Ich habe trotzdem ein Mini Projekt angehängt.

von White Rabbit (Gast)


Lesenswert?

> Allerdings
> ist das Problem bekannt und es liegt am AVR Plugin seit 2.4.0. Dort ist

Ja, bekannt aber nicht gefixt. Ich hatte die Seite ja schon hier zitiert 
... mir ist aber nicht ganz klar, wo ich den Patch einpflegen 
soll/muss?


> Alternativ wäre die Möglichkeit einfach die MCU an den Programmer zu
> hängen und beim Erstellen des Projektes bei MCU "get from Hardware"

Wie gesagt: Das Drop-Down-Menu bei MCU ist "tot" -- da kann ich GAR 
nichts auswählen. Und bei der Taktfrequenz steht ebenfalls immer ein 
"fester Eintrag" -- ebenfalls nicht änderbar.

von hp-freund (Gast)


Lesenswert?

Dann wundert es mich warum es bei mir funktioniert.

java?

Meine Version:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) 
(7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

von White Rabbit (Gast)


Lesenswert?

René S. schrieb:

> Einfach mal das Forum hier durchsuchen, da gab es mal einen thread dazu.

Meinst du evtl diese Lösung?
Beitrag "AVR Eclipse: Keine Bauteilauswahl möglich"  (ganz unten!)

von White Rabbit (Gast)


Lesenswert?

> java?

Bei mir:
java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

von White Rabbit (Gast)


Lesenswert?

Was kommt bei euch in der Konsole, wenn ihr diesen Befehl benutzt:

avr-gcc -Wa,-mlist-devices --target-help

Hier wird die komplette Hilfe nochmal ausgegeben ... sollten dan nicht 
ausschließlicheÜ die untestützten Devices ausgegeben werden? Das wird 
der
Fehler sein, denke ich?!?

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Das mit den Leerzeichen könnte die Lösung sein.

White Rabbit schrieb:
> Was kommt bei euch in der Konsole, wenn ihr diesen Befehl benutzt:
>
> avr-gcc -Wa,-mlist-devices --target-help

siehe Anhang

von hp-freund (Gast)


Lesenswert?

Übrigens sind all meine Variablen LC_xxxx=C

Probier doch mal die gefundene Lösung von 15:01

von hp-freund (Gast)


Lesenswert?

hp-freund schrieb:
> Übrigens sind all meine Variablen LC_xxxx=C

Das war Unsinn :-(

LANG=de_DE.UTF-8
LANGUAGE=de_DE
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

von White Rabbit (Gast)


Lesenswert?

Wahnsinn -- es hat geklappt!! Der simple Eintrag
export LC_MESSAGES=C

unter .profile löst beide Probleme zusammen! Konnte gerade erfolgreich 
kompilieren und die Warnungen sind ebenfalls verschwunden!!!
Krass, dass das nirgendwo steht bzw noch krasser, dass das kein "known 
"Bug"" ist??! Wie sieht denn bei euch sonst die Datei .profile aus??

von Amateur (Gast)


Lesenswert?

Ist es nicht möglich den Prozessor als Parameter dem Compiler bzw. 
Assembler zu übergeben?

In Deiner Konfiguration würde ja sonst eine Entwicklungsumgebung, für 
nur einen Prozessor, bestehen.

Die darauf folgen Meckerer würden jedes Forum überlaufen lassen...

>Es wird scheinbar alles für einen ATMega16
Das ist ebenfalls unwahrscheinlich. Für den ATMega16 sind die Werte 
PORTB und DDRB definiert. Du könntest also Code erzeugen, er würde aber 
auf einem anderen Prozessor, als dem ATMega16, nicht laufen.

von hp-freund (Gast)


Lesenswert?

Glückwunsch!

White Rabbit schrieb:
> Wie sieht denn bei euch sonst die Datei .profile aus??

Lass die mal lieber in Ruhe ;-)

von White Rabbit (Gast)


Lesenswert?

> Lass die mal lieber in Ruhe ;-)
Ja wie? Der Eintrag ist ja offenbar "notwendig", um hier Erfolg zu 
haben, oder???

von hp-freund (Gast)


Lesenswert?

Ja, der schon. Aber bitte sonst nichts mehr ändern....


...bis zum nächsten Problem.

von White Rabbit (Gast)


Lesenswert?

Übrigens hat jetzt auch direkt avrdude und "Target Hardware" -- Load 
from MCU geklappt. Das ging vorher auch nicht .... das Problem scheint 
also gelöst.
Trotzdem bleibt es seltsam, dass nur ich davon betroffen bin???
Profil-Einstellungen??

(Mein Rechner ist schon über mehrere Kubuntu-Releases mitgewachsen. 
Vielleicht lief da irgendwas im meinem pers. Profil schief??)

von White Rabbit (Gast)


Lesenswert?

> .... das Problem scheint also gelöst.

War vielleicht etwas zu voreilig : Jetzt ist mein KDE halb englisch und 
halb deutsch!! (K-Menu...)
Was ist denn nun schon wieder??

von hp-freund (Gast)


Lesenswert?

White Rabbit schrieb:
> Profil-Einstellungen??

Muss wohl.
Wenn es bis jetzt noch kein Prog gestört hat, hat es auch - fast - 
niemand gemerkt.

Bye

von hp-freund (Gast)


Lesenswert?

Hatte mich ja schon zeitgleich verabschiedet aber na ja.

Was gibt locale aus?

Siehe meine LC_ Liste oben.

Notfalls musst Du ein update der Sprachpakete durchführen.

von White Rabbit (Gast)


Lesenswert?

hp-freund schrieb:
> White Rabbit schrieb:
>> Profil-Einstellungen??


hmm ... warum sorgt der Eintrag denn für englische Menus?
(auch LibreOffice usw sind bei mir davon betroffen).
Schalte ich das wieder aus, ist es wieder deutsch!

Ist zwar jetzt OT, aber interessieren würde es mich doch.

In den KDE Einstellungen ist natürlich alles auf default "Deutsch" 
eingestellt.

von White Rabbit (Gast)


Lesenswert?

> Was gibt locale aus?

bei mir:

locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

von hp-freund (Gast)


Lesenswert?

Sieht soweit gleich aus.

http://www.linuxwiki.de/locale

Ich bin erst mal weg.
Schaue heute Abend noch mal rein, aber ich denke das Sprachproblem hast 
Du bis dahin gelöst :-)

von White Rabbit (Gast)


Lesenswert?

> Schaue heute Abend noch mal rein, aber ich denke das Sprachproblem hast
> Du bis dahin gelöst :-)

Hab' mir jetzt zunächst mit einem Startscript geholfen:

#!/bin/bash 
export LC_MESSAGES=C
./eclipse &

Damit läuft es hier ... was auch immer, da schief gegangen ist?!?

von René S. (thebit)


Lesenswert?

@ White Rabbit

ja so ähnlich, es gibt aber eine gepatche Datei die du in den 
Pluginordner kopierst. Dann kannst du dir die Sache mit den Sprachen 
sparen.

Ich schaue nachher mal nach, ich habe die gepatchte Version. Bin aber 
noch @Work.


Gruß René

von René S. (thebit)


Angehängte Dateien:

Lesenswert?

Hier die gepatchte Datei für das AVR Plugin. Getestet mit Eclipse Mars 
auf Lubuntu 14.04 32bit. Die Locale stehen alle auf de_DE UTF8. Eclipse 
ist mit englischer Oberfläche installiert, ob das auch mit dem deutschen 
Language Pack funktioniert habe ich noch nicht getestet.


Gruß René

von White Rabbit (Gast)


Lesenswert?

Ok, ich frage mich nur wie/wo ich das vorhandene Plugin jetzt patche 
oder ersetze? Oder muss ich dein .jar ganz neu installieren?

von hp-freund (Gast)


Lesenswert?

Moin,

das Plugin kannst Du einfach in den eclipse/plugins Ordner kopieren und 
die Alte überschreiben oder vorher sichern.
Musst nur beim nächsten Update daran denken.

von René S. (thebit)


Lesenswert?

Wenn du dein Eclipse in /user/share/eclipse installiert hast und es als 
Normal User aufrufst erstellt eclipse in deinem /home/user Verzeichnis 
ein Unterverzeichnis /.eclipse unter diesem liegen weitere 
Unterverzeichnisse. in einem davon befindet sich der Ordner Plugins. 
Dort ersetzt du die vorhandene Datei mit der gepatchten.

Startest du Eclipse mit sudo dann befinden sich die Plugins unter 
/usr/share/eclipse/plugins.

Bei mir gibt es beide Verzeichnisse da ich nur wenn Eclipse mit root 
Rechten läuft den Programmer unter avrdude einstellen kann. Das dies 
auch unter normalen Rechten funktioniert habe ich noch nicht hinbekommen 
obwohl nirgends im Netz diese Problematik behandelt wird.

Dafür suche ich noch eine Lösung.
Hier nochmal genau was passiert:

Starte ich Eclipse mit dem normalen Useraccount kann ich unter File > 
properties > avrdude keinen Programmer auswählen. Auch bei Klick auf new 
passiert nichts. Starte ich Eclipse mit sudo funktioniert es. Der 
Workaround avrdude mit chmod a+s zu versehen nützt auch nichts. Ist bei 
Luna und Mars gleich.

edit: Mars mit deutscher Oberfläche konnte ich nicht testen. sobald ich 
das Languagepack von babel installiere startet Eclipse nicht mehr

Gruß René

: Bearbeitet durch User
von hp-freund (Gast)


Lesenswert?

@René,

listet denn avrdude in der Konsole die Programmer auf?

avrdude -c ?

von René S. (thebit)


Lesenswert?

Servus hp-freund

kann ich im Moment nicht sagen, bin derzeit out of programmer mein 
Dragon ist in den ewigen Jagdgründen.

Allerdings dürfte das auch keine Rolle spielen. Wenn ich Eclipse mit 
sudo starte kann ich dann im avrdude Menü auf new klicken. Dann öffnet 
sich ein weiteres Fenster und dort kann ich dann z.B. den Dragon ISP 
auswählen. Starte ich Eclipse als normaler User dann öffnet sich nicht 
mal das Fenster wenn ich auf new klicke. Übrigens unter Windows gibt's 
das Problem nicht dort funktioniert das einstellen des Programmers auch 
ohne das Eclipse als Administrator läuft.


Gruß René

von hp-freund (Gast)


Lesenswert?

Ich frage weil es bei mir funktioniert.
Ein Programmer muss nicht dran sein um einen neuen zu konfigurieren.

Vielleicht liegt das Problem bei den Rechten der avrdude.conf ?

von hp-freund (Gast)


Lesenswert?

Achtung: die avrdude.conf ist evtl. mehrfach vorhanden.

von hp-freund (Gast)


Lesenswert?

Ich habe gerade etwas interessantes festgestellt:

eclipse als user ausgeführt findet die Liste der Programmer auch wenn 
avrdude nicht erreichbar ist.
eclipse muss sich die Liste anders bersorgt haben...

von René S. (thebit)


Lesenswert?

Ich denke auch das es ein Rechte Problem ist. Ich werde heute Abend mal 
schauen. avrdude.conf ist ein guter Tipp. Danke dafür.

Gruß René

von René S. (thebit)


Lesenswert?

hp-freund schrieb:
> eclipse als user ausgeführt findet die Liste der Programmer auch wenn
> avrdude nicht erreichbar ist.
> eclipse muss sich die Liste anders bersorgt haben...

hmmm seltsam. ich habe gestern mal zum Test die ganze Sache erst neu 
installiert weil ich ne Weile nichts mehr mit AVR gemacht hatte. Dabei 
war mir das aufgefallen. Komischerweise wenn Eclipse als root läuft kann 
ich den Programmer anlegen. Die angelegten sehe ich dann als user leider 
nicht. ich kann die weder neu anlegen noch etwas angelegtes auswählen.


Gruß René

von Bernhard M. (boregard)


Lesenswert?

Hi,

seid ihr sicher, daß der normale user auf den Programmer zugreifen darf?

Damit das geht, muss man eine UDEV Regel aufsetzen, als root.

Bei mir sieht das so aus:
1
root@cork:/etc/udev/rules.d# ls -l
2
insgesamt 24
3
-rw-r--r-- 1 root root  597 Aug 15  2012 10-vboxdrv.rules
4
-rw-r--r-- 1 root root 2384 Okt  5  2012 15_usbprog.rules
5
-rw-r--r-- 1 root root  329 Jul 25  2010 40-firewire.rules
6
-rw-r--r-- 1 root root 4117 Nov 20  2014 70-persistent-cd.rules
7
-rw-r--r-- 1 root root  704 Nov 22  2013 70-persistent-net.rules

Die Datei 15_usbprog.rules sieht so aus:
1
root@cork:/etc/udev/rules.d# cat 15_usbprog.rules 
2
# Atmel AVR ISP mkII
3
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="users", MODE="0660"
4
5
# usbprog bootloader
6
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c62", GROUP="users", MODE="0660"
7
8
# USBasp programmer
9
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="users", MODE="0660"
10
11
# USBtiny programmer
12
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c9f", GROUP="users", MODE="0660"

Die Dateien in /etc/udev/rules.d werden einfach der Reihe nach 
ausgewertet, deshalb die Nummer am Anfang des Dateinamens.

Damit nach anlegen der Datei diese auch sicher ausgewertet wird, 
einfach:
1
root@cork:/etc/udev/rules.d# /etc/init.d/udev restart
2
[ ok ] Restarting udev (via systemctl): udev.service.
damit sie neu eingelsen wird. Nach einem Rechnerneustart passiert das 
automatisch.

Gruß,
Bernhard

: Bearbeitet durch User
von René S. (thebit)


Lesenswert?

Bernhard M. schrieb:
> seid ihr sicher, daß der normale user auf den Programmer zugreifen darf?

Das wäre Schritt 2 der noch zu klären ist. Ich habe derzeit keinen 
Programmer angeschlossen. Der Fehler passiert ja schon beim Auswählen 
des Programmers was nur funktioniert wenn eclipse mit root Rechten 
läuft. Wenn eclipse unter dem User läuft dann geht nicht mal das Menü 
auf in dem die verschiedenen Programmer aufgelistet sind.


Gruß René

von Bernhard M. (boregard)


Lesenswert?

René S. schrieb:
> hp-freund schrieb:
>> eclipse als user ausgeführt findet die Liste der Programmer auch wenn
>> avrdude nicht erreichbar ist.
>> eclipse muss sich die Liste anders bersorgt haben...
>
> hmmm seltsam. ich habe gestern mal zum Test die ganze Sache erst neu
> installiert weil ich ne Weile nichts mehr mit AVR gemacht hatte. Dabei
> war mir das aufgefallen. Komischerweise wenn Eclipse als root läuft kann
> ich den Programmer anlegen. Die angelegten sehe ich dann als user leider
> nicht. ich kann die weder neu anlegen noch etwas angelegtes auswählen.
>
>
> Gruß René

Ich konnte das ganze jetzt nachvollziehen.
Bei mir hat das nichts mit root zu tun.
Wenn das AVR Plugin original, wie eclipse es sich von der Webseite holt 
verwendet wird, dann kann man den Programmer auswählen.

Mit der oben verlinkten von Rene gepatchten Version geht das nicht.

Gruß,
Bernhard

: Bearbeitet durch User
von hp-freund (Gast)


Lesenswert?

White Rabbit schrieb:
> #!/bin/bash
> export LC_MESSAGES=C
> ./eclipse &

Also dann ist das wohl die beste Lösung.

von hp-freund (Gast)


Lesenswert?

Ach übrigens: der aktuelle Programmer wird in einer versteckten Datei im 
Workspace eingetragen.

von René S. (thebit)


Lesenswert?

Bernhard M. schrieb:
> Mit der oben verlinkten von Rene gepatchten Version geht das nicht.

Also die Version ist ein Fundstück aus dem Netz. Das ist im Prinzip die 
Version 2.4.0 mit der Änderung für die Geschichte mit der MCU. Da wurde 
in einer Class ein Leerzeichen entfernt und das .jar neu kompiliert. 
Dazu gibt es auch den Quellcode im Netz. Möglicherweise kommen wir aber 
nun dem Problem auf die schliche. Ich werde mal prüfen ob alle 4 Dateien 
die zum AVr Plugin gehören die gleichen Owner haben.


Gruß René

von René S. (thebit)


Lesenswert?

Sodale

hier jetzt funktioniert es und das ganze ohne den locales


Einfach

http://sourceforge.net/projects/avr-eclipse/

die Version 2.4.2 runterladen. In Eclipse bei Help > install new 
Software > add auch archiv klicken. Dann die runtergeladene 2.4.2 
auswählen und installieren..

Sowohl die MCU Auswahl ist möglich als auch die Programmerauswahl.


Gruß René

von Christian B. (christian_b28)


Angehängte Dateien:

Lesenswert?

Ich hatte das Problem mit Mars das in (kopierten)neuen Projekten das 
Problem "Symbol xxx could not be resolved" auftrat, merkwürdigerweise 
hat der Compiler nicht gemeckert, man sah es nur im Quellcode.

Fehler gefunden, den gabs schonmal.

die Einträge im Language Mapping fehlten, warum auch immer.

Christian

: Bearbeitet durch User
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.