Installation von AVR-GCC unter WinXP

Gast #6207
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.
Gast #6208
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.
Gast #6209
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 ;)
Gast #6210
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
Gast #6211
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.
Gast #6212
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren