mikrocontroller.net

Forum: Compiler & IDEs AVR GCC 3.2.0 -> WinAVR


Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die derzeit etwas ruhige Phase in unserer Firma, wollte ich mal dazu 
nutzen WinAVR zu nutzen und den veralteten AVR GCC über Bord zu werfen.

Gesagt, getan, jedoch habe ich einige Probleme diesen ans laufen zu 
bekommen in meinem UltraEdit. Diese Variablen habe ich natürlich 
entsprechend abgeändert auf:

set AVR=D:/avrgcc
set CC=avr-gcc
set PATH=D:\avrgcc\utils\bin;%path%

Hab WinAVR in D:\avrgcc installiert.

Beim Compilieren des Demo-Examples oder des TWI-Tests bekomme ich dann 
aber folgenden (mir nichts sagenden) Error:

avr-gcc -O -g -Wall -ffreestanding -mmcu=atmega128   -c -o twitest.o 
twitest.c
process_begin: CreateProcess((null), avr-gcc -O -g -Wall -ffreestanding 
-mmcu=atmega128 -c -o twitest.o twitest.c, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.

make: *** [twitest.o] Error 2

Welche Datei ist denn gemeint, die WinAVR nicht finden kann? Am Makefile 
scheints jedenfalls nicht zu liegen, denn ich glaube kaum das die 
Beispielmakefiles falsch sind ;)

@Andreas Schwarz: Kannst du nichtmal ne Rubrik WinAVR machen mit ner 
Installationsanleitung um den mit AVR Studio und UltraEdit ans laufen zu 
bekommen? Probleme mit dem WinAVR scheints nämlich häufiger zu geben, 
aber das heißt ja nur das ich nicht der einzige Dummy hier bin ;)

Gruß Ben

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Welche Datei ist denn gemeint, die WinAVR nicht finden kann?

IMHO die Shell (bash, oder was immer da für eine Unix-Shell
dabei sein sollte).  Ich glaube mich zu erinnern, daß Eric
diese in seiner ersten WinAVR-Version vergessen hatte beizufügen
(man kann aber die alte von avrfreaks nehmen), sollte aber
inzwischen behoben sein.

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in der Tat ist keine bash.exe vorhanden, aber auch als ich die von 
avrfreaks genommen habe kommt der selbe Fehler, d.h. das kanns 
eigentlich nicht sein.

Habe im übrigen die aktuellste WinAVR-Version (heute morgen frisch 
runtergeladen von Sourceforge).

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lösche die umgebungsvariablen...
die werden nicht benötigt..
setzte nur folgenden path:

d:\avrgcc\bin
d:\avrgcc\utils\bin

schau auch mal in readme.txt im winavr ordner

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hab WinAVR nocheinmal deinstalliert und im Ordner "WinAVR" auf D: 
neuinstalliert. Die 3 obigen Zeilen hab ich aus der autoexec.bat 
gelöscht und jetzt D:\WinAVR\bin und D:\WinAVR\utils\bin als 
Umgebungsvariable (Path) gesetzt.

Die ausgeführte make.exe ist nun auf jedenfall diejenige aus dem 
WinAVR\utils\bin-Ordner. Leider führt das ganze nach wie vor zu diesem 
Fehler:

avr-gcc -g -Wall -O2 -mmcu=at90s2313    -c -o demo.o demo.c
process_begin: CreateProcess((null), avr-gcc -g -Wall -O2 
-mmcu=at90s2313 -c -o demo.o demo.c, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.

make: *** [demo.o] Error 2

Achja: Ich verwende WinNT 4 SP6 (Falls das irgendwen interessieren 
sollte ;))

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja nebenbei noch erwähnt:

Der Befehl

avr-gcc -g -Wall -O2 -mmcu=atmega16 -c -o logpro.o logpro.c

wird anstandslos abgearbeitet, d.h. compilieren tut er ja schonmal.

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
folge mal dem link..dort findest du eine projektx.zip im anhang eines 
posts.
versuch das mal bitte und sag bescheid


http://www.mikrocontroller.net/forum/read-2-19534.html

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p.s:

die heisst sh.exe und nicht bash.exe

Autor: Benno Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habs in den Ordner d:\WinAVR\doc\examples\projectx\ kopiert, 
anschließend make gemacht. Ergebnis siehe Bildanhang.
Erstellt wird allerdings eine projectx.d und eine testit.d.

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommando zurück, hatte vergessen im Makefile die DIRAVR Variable 
umzustellen, jetzt klappts in der Konsole.. in UltraEdit leider noch 
nicht (selber Fehler wie vorher).

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und auch das ist jetzt erledigt, hab in meine autoexec.bat folgendes 
reingeschrieben:

set AVR=D:/WinAVR
set CC=avr-gcc
set PATH=D:\WinAVR\bin;D:\WinAVR\utils\bin;%path%

Vielen Dank an alle die geholfen haben für die Problemfindung :)

Kleine Frage noch nebenbei: Wofür ist das CC=avr-gcc?
Der Name des C-Compilers?

Autor: Benno Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage:

Habe ein altes Projekt neu compiliert, jetzt finde ich folgende Warnings 
und kann damit nicht wirklich was anfangen, da keine Zuordnung zu einer 
Quellcodezeile erfolgt:

-------- begin --------
[...]
avr-objdump -h -S logpro.elf > logpro.lss
objtool loadelf logpro.elf mapfile logpro.map writecof logpro.cof
WARNING - symbol 'x' could not be resolved to a type - using VOID.
WARNING - symbol 'x' could not be resolved to a type - using VOID.
WARNING - symbol 'x' could not be resolved to a type - using VOID.
WARNING - symbol 'x' could not be resolved to a type - using VOID.
WARNING - symbol 'x' could not be resolved to a type - using VOID.
Size after:
   text     data      bss      dec      hex  filename
      0     7450        0     7450     1d1a  logpro.hex
-------- end --------

Irgendwelche Hinweise?

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bezüglich Deines "Error Logs": besser als ein Bild sind
allemal tausend Worte. :-)

WinNT (und darüber) kann ganz prima Unix-EA-Umlenkungen in der
Shell, Verzeihung, im Kommandointerpreter.  Einfach

make ... 2> logfile

...und die Fehlermeldungen stehen danach in "logfile".  Wenn
man beides umlenken will (stdout & stderr):

make ... > logfile 2>&1

Ja, die Variable CC beschreibt den zu verwendenden C-Compiler.
Voreinstellung ist "cc".  Kann man auch im Makefile setzen (dort
nennt sich das dann offiziell nicht "Variable", sondern "Macro",
was auf der linken Seite des Gleichheitszeichens steht).  Mit
dieser Variante hier macht man Gebrauch von einer Eigenschaft
von make, daß Environment-Variablen die eingebauten Makefile-
Macros überschreiben können.

Die Warnungen besagen, daß objtool nicht in der Lage war, das
Symbol "x" einem Datentyp zuzuordnen.  Kann ein Bug in objtool
sein, kann auch sein, daß im Rahmen des AVR COFF Formates diese
Zuordnung gar nicht möglich ist.  Die Möglichkeiten, Debug-
Informationen in COFF unterzubringen, sind nicht gerade rosig...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.