Forum: Compiler & IDEs Installation von AVR-GCC unter WinXP


von Timo (Gast)


Lesenswert?

Wie installiere ich AVR-GCC unter Windows XP?

von BAB (Gast)


Lesenswert?


von Bobi (Gast)


Lesenswert?

Bin ein Anfänger. Wüßte auch gerne wie man das unter XP macht.
Was sind Umgebungsvariablen und wie macht man das überhaupt?

Vielen Dank

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

RTFM: F1 drücken -> "Umgebungsvariablen"

von Bobi (Gast)


Lesenswert?

Ok Danke ich weiß jetzt wo man sie erstellt.
Aber was für ein Namen und welche Werte muss ich den für AVRGCC dort 
eingeben?????????ß
Danke

von BAB (Gast)


Lesenswert?

VARIABLE: AVR   WERT: C:/avrgcc
VARIABLE  CC    WERT: avr-gcc

das zum path hinzufügen C:\avrgcc\bin;%path%

von Peter Fleury (Gast)


Lesenswert?

Wieso nicht gleich die neue Version WinAVR installieren ?

Download unter: http://sourceforge.net/projects/winavr

Die Variablen AVR und CC werden nicht mehr gebraucht, nur in PATH 
variable müssen zwei Einträge hinzugefügt werden werden:

c:\winavr\bin;c:\winavr\utils\bin
(falls man Default Installations-Verzeichnis winavr verwendet)

von Marco Vogt (Gast)


Lesenswert?

Ich hab mir jetzt auch WinAVR runtergeladen (die aktuelle Version). Aber 
obwohl ich jetzt schon mehrere "Howtos" gelesen habe, schaffe ich es 
einfach nicht mit AVRStudio 3.x ein C Programm zu kompilieren. Ich hab 
keine Ahnung wie der ganze Kram funktioniert und habe es so gemacht:
Ein Projekt erstellt im gcctest Verzeichnis und als Compiler nicht 
Assemlber sondern das andere ausegwählt. Dann eine .c Datei in Sources 
und die passende Makefile geladen. In Settings die gcc.bat eingetragen 
und auf Komilieren geklickt. Erst mal hat er die make.exe nicht 
gefunden. Also hab ich die Path Angaben (hab WinXP und die Angaben auch 
in den Systemvariablen) in die gcc.bat geschrieben. JEtzt lief make und 
spuckt mir wunerschöne Fehler aus:
"make (e=2): Das System konnte die Datei nicht finden
make.exe: ***[gcctest1.o]Error 2
Errors detected during link stage"

JEtzt weiß ich wirklich nicht mehr weiter, weil mir das ABSOLUT nichts 
sagt. Ich denke, dass wenigstens einer von euch GCC nutzt und hoffe dass 
einer das mal Schritt für Schritt in deutscher Spreche erklären kann. 
Vielleicht auch eine ICQ Session :). Es gibt bestimmt noch mehr Leute, 
die sich SEHR darüber freuen würden.

von Peter Fleury (Gast)


Lesenswert?

@Marco

Versuche zuerst einmal in einem Command-Fenster (cmd.exe)
zu kompilieren mittels Aufruf von make.
-> Falls es nicht geht, bitte Makefile und source posten!

Bitte beachten dass WINAVR\.. zuvorderst im PATH eingetragen ist, oder 
besser alte AVRfreaks Verzeichnis aus dem PATH entfernen.

Die Datei gcc.bat und gcc2.bat müssen nach \WINAVR\bin kopiert werden.

von Marco Vogt (Gast)


Lesenswert?

Danke!

Ich hab es mal in der Konsole versucht und diesen Fehler bekommen:

C:\WinAVR\utils\bin>make
avr-objcopy -O avrobj gcctest1.elf gcctest1.obj
avr-objcopy: gcctest1.obj: Invalid bfd target
make: *** [gcctest1.obj] Error 1

Path C:\WinAVR\bin und C:\WinAVR\utils\bin sind gesetzt.

Hier die Makefile:

# Simple Makefile
# Volker Oth (c) 1999

include $(AVR)/include/make1

########### change this lines according to your project 
##################

#put the name of the target mcu here (at90s8515, at90s8535, attiny22, 
atmega603 etc.)
  MCU = at90s2313

#put the name of the target file here (without extension)
  TRG  = gcctest1

#put your C sourcefiles here
  SRC  = $(TRG).c

#put additional assembler source file here
  ASRC =

#additional libraries and object files to link
  LIB  =

#additional includes to compile
  INC  =

#compiler flags
  CPFLAGS  = -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)

#linker flags
  LDFLAGS = -Wl,-Map=$(TRG).map,--cref

########### you should not need to change the following line 
#############
include $(AVR)/include/make2

###### dependecies, add any dependencies you need here 
###################

$(TRG).o : $(TRG).c

und hier der Source:

#include <io.h>

typedef unsigned char  u08;

int main( void )
{
   u08 led, i, j, k;

   outp(0xff,DDRB);            /* use all pins on PortB for output */

   led = 1;                    /* init variable representing the LED 
state */

   for (;;) {
       outp(~led, PORTB);      /* invert the output since a zero means: 
LED on */
       led <<= 1;              /* move to next LED */
       if (!led)               /* overflow: start with Port B0 again */
           led = 1;
       for (i=0; i<255; i++)   /* outer delay loop */
           for(j=0; j<255;j++) /* inner delay loop */
               k++;            /* just do something - could also be a 
NOP */
   }
}

P.S.: Nicht hauen wegen derm langen Post ;)

von BAB (Gast)


Lesenswert?

hi ich hab nur flüchtig drüber geschaut:

###### dependecies, add any dependencies you need here 
###################

$(TRG).o : $(TRG).c
gcctest1.o: gcctest.c  <-- du musst dem compiler sagen was er braucht


oben steht was von C:\WINAVR...
das makefile ist aber von der avrfreaks gcc version...das könnte so gar 
nicht funtionieren...was hast du denn jetzt installiert?

MfG

BAB

von Peter Fleury (Gast)


Lesenswert?

Das makefile und die make-include File der AVRfreaks distribution sind 
nicht kompatibel zum WinAVR.

Bitte schaue das Beispiel-Makefile im Verzeichnis
\WinAVR\sample an.

Vergiss die alten gcctest*.c Beispiele vom der AVRfreaks Distribution, 
diese sind nicht kompatibel zu WinAVR.

Schau lieber das Beispiel
WinAVR\doc\examples\demo\demo.c an.

Weitere Beispiele gibts auf meiner Homepage:
http://www.mysunrise.ch/users/pfleury/avr-software.html

Die Beispiele zeigen die neuen Möglichkeiten von WinAVR, im speziellen 
die neue Syntax für den Port Zugriff.

von Marco Vogt (Gast)


Lesenswert?

JUHUUUUU!!! Es klappt :) Vielen vielen Dank!!!

ICh hab es auch aus AVRStudio mit der WinAVR Makefile versucht - ohne 
Erfolg. Aber jetzt in der Konsole klappt es!

Jetzt muss ich es nur noch hinbekommen, das AVRStudio auch kompilieren 
kann...

von Peter Fleury (Gast)


Lesenswert?

Kannst Du genauer beschreiben was beim kompilieren via AVRStudio nicht 
geht ?

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.