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!
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.
Hm -- wo mache ich das? Dachte, dass die toolchain automatisch gefunden wird?
... ach ja: Und warum sind da die anderen Meldungen bzgl "Unknown symbol?" -- das hat doch anscheinend nichts mit dem anderen Problem zu tun, oder?
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.
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 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.
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?!?
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....
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.
Noch vergessen: nach der Installation von eclipse zuerst wie gewohnt ein neues C Projekt erstellen. Mit hoffentlich gefüllter MCU Liste ;-)
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.
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.
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.
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.
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...
>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?
Lies noch mal den ersten Beitrag von White Rabbit. Es hat das Plugin sozusagen ausgetrickst.
@ 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.
Amateur schrieb: > in einem anderen Projekt Wie wurde das erstellt? Mit dem Plugin ohne MCU Auswahl?
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?
> 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/
Installiere mal eclipse als Benutzer neu, dann schauen wir mal...
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.
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)
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...
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 ;-)
>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.
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/
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é
Na das klingt doch gut. Ich habe trotzdem ein Mini Projekt angehängt.
> 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.
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)
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!)
> 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)
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?!?
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
Übrigens sind all meine Variablen LC_xxxx=C Probier doch mal die gefundene Lösung von 15:01
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=
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??
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.
Glückwunsch! White Rabbit schrieb: > Wie sieht denn bei euch sonst die Datei .profile aus?? Lass die mal lieber in Ruhe ;-)
> Lass die mal lieber in Ruhe ;-)
Ja wie? Der Eintrag ist ja offenbar "notwendig", um hier Erfolg zu
haben, oder???
Ja, der schon. Aber bitte sonst nichts mehr ändern.... ...bis zum nächsten Problem.
Ü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??)
> .... 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??
White Rabbit schrieb: > Profil-Einstellungen?? Muss wohl. Wenn es bis jetzt noch kein Prog gestört hat, hat es auch - fast - niemand gemerkt. Bye
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.
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.
> 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=
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 :-)
> 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?!?
@ 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é
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é
Ok, ich frage mich nur wie/wo ich das vorhandene Plugin jetzt patche oder ersetze? Oder muss ich dein .jar ganz neu installieren?
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.
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
@René, listet denn avrdude in der Konsole die Programmer auf? avrdude -c ?
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é
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 ?
Achtung: die avrdude.conf ist evtl. mehrfach vorhanden.
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...
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é
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é
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
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é
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
White Rabbit schrieb: > #!/bin/bash > export LC_MESSAGES=C > ./eclipse & Also dann ist das wohl die beste Lösung.
Ach übrigens: der aktuelle Programmer wird in einer versteckten Datei im Workspace eingetragen.
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é
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é
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.