Zitat Zitat von jagdfalke
Ach du Schande, ich glaub das wird was größeres sich da einzuarbeiten. So ein paar C-Befehle lernen ist ja nicht so schwer, aber bis man da mal was compiliert kriegt wird was größeres. Ich kenn das ganze Prinzip mit Makefiles und den Make-Befehlen gar nicht.

Hier mal das Makefile: Vielleicht kann es jemand so hinbauen, damit ich wenigstens mal testen kann ob das flashen funktioniert.
Das Beispiel kommt offenbar mit einem schon generiertem hex daher; mit avrm8ledtest_pre.hex
Zum laden ein "make load_pre" ausführen.

make ist schon eine eigene Welt mit vielen Fallstricken und Fehlerquellen, vor allem bei komplexeren Projekten.

GCC kannst du auch ohne make benutzen, direkt von der Commandline aus. Das ist etwas umständlicher, aber für den Anfang auf jeden Fall klarer und leichter zu durchschauen!

Geändert hab ich an dem makefile nix, nur ein paar Kommentare dazu gemacht. So sonderlich toll ist das Makefile übrigens nicht, weil es viele Redundanzen enthält und man schnell was vergisst, wenn andere/neue Quellen hinzu kommen.

Code:
#Hier wird der Compiler festgelegt (und auch der Linker)
# CC ist eine vordefinierte Variable von make
# anstatt $(CC) könnte man unten auch einfach avr-gcc schreiben
CC=avr-gcc
# Vatiable für objcopy definieren, braucht man um hex zu erstellen aus elf32 etc
OBJCOPY=avr-objcopy
# optimize for size:
# Optionen für gcc, hier könnte zB ein -v dazu
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
...
# Regel zum erstellen der hex
avrm8ledtest.hex : avrm8ledtest.out 
	$(OBJCOPY) -R .eeprom -O ihex avrm8ledtest.out avrm8ledtest.hex 
# Regel zum Linken. avr-gcc wird wie ein Linker aufgerufen.
# Wenn GCC Objekte sieht, leitet er an den linker weiter.
# impliziter linker-Aufruf. 
# Anstatt .out sollte die suffix besser .elf sein!
#denn es wird elf32 erzeugt und kein aout!
avrm8ledtest.out : avrm8ledtest.o 
	$(CC) $(CFLAGS) -o avrm8ledtest.out -Wl,-Map,avrm8ledtest.map avrm8ledtest.o 
# compile: erstelle ein Objekt-File aus der Quelle
avrm8ledtest.o : avrm8ledtest.c 
	$(CC) $(CFLAGS) -Os -c avrm8ledtest.c
# you need to erase first before loading the program.
# load (program) the software into the eeprom:
load: avrm8ledtest.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=avrm8ledtest.hex -dprog=dapa  -v=3 --hash=32
# here is a pre-compiled version in case you have trouble with
# your development environment
load_pre: avrm8ledtest_pre.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=avrm8ledtest_pre.hex -dprog=dapa -dno-poll -v=3 --hash=32
Zitat Zitat von jagdfalke
Wo ist der gcc-Aufruf? Oder besser: Was ist ein gcc-Aufruf?

Vielleicht brauch ich erstmal weitere Links zum Thema Make usw. !?

mfg
jagdfalke
http://www.gnu.org/software/make/manual/make.html
http://de.wikipedia.org/wiki/Make
http://www.linuxfibel.de/make.htm