Hallo,
ich bin dabei gerade von Bascom auf C umzusteigen. C hatte ich mal in der Schule und hoffe das es mir dadurch etwas leichter Fällt
Na jdenfalls habe ich das AVR Studio installiert und der hat ja automatische auch WinAVR installiert. Das Verzeichniss der Includes eingestellt und dann habe ich diese kleine Programm geschrieben.
Anschließend wollte ich es Compilieren und dann kan folgender Fehler:Code:/* erstes Programm */ #include <avr/io.h> int main (void) { ddrb = 0xff; //Alle Pins von Port B als Ausgänge Portb = 0xff; //Portb0 und Portb1 = High, Rest Low while(1) { //leere Schleife } return 0; //Wird nie erreicht, ist aber nötig }
DAs Makefile sieht folgender Maßen aus:Code:make: *** No rule to make target `../main.c', needed by `main.o'. Stop.
Ich konnte erstmal kein Fehler finden. Ich denke mal der liegt im DEtail und das habe ich noch nicht so richtig rausCode:############################################################################### # Makefile for the project erstes_Programm ############################################################################### ## General Flags PROJECT = erstes_Programm MCU = atmega16 TARGET = erstes_Programm.elf CC = avr-gcc.exe ## Options common to compile, link and assembly rules COMMON = -mmcu=$(MCU) ## Compile options common for all C compilation units. CFLAGS = $(COMMON) CFLAGS += -Wall -gdwarf-2 -DF_CPU=8000000UL -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d ## Assembly specific flags ASMFLAGS = $(COMMON) ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2 ## Linker flags LDFLAGS = $(COMMON) LDFLAGS += ## Intel Hex file production flags HEX_FLASH_FLAGS = -R .eeprom HEX_EEPROM_FLAGS = -j .eeprom HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 ## Include Directories INCLUDES = -I"C:\WinAVR\avr\include" ## Objects that must be built in order to link OBJECTS = main.o ## Objects explicitly added by the user LINKONLYOBJECTS = ## Build all: $(TARGET) erstes_Programm.hex erstes_Programm.eep size ## Compile main.o: ../main.c $(CC) $(INCLUDES) $(CFLAGS) -c $< ##Link $(TARGET): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET) %.hex: $(TARGET) avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@ %.eep: $(TARGET) avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ %.lss: $(TARGET) avr-objdump -h -S $< > $@ size: ${TARGET} @echo @avr-size -C --mcu=${MCU} ${TARGET} ## Clean target .PHONY: clean clean: -rm -rf $(OBJECTS) erstes_Programm.elf dep/* erstes_Programm.hex erstes_Programm.eep ## Other dependencies -include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
Wäre nett wenn ihr mir helfen könntet.
thx Arno
Edit: Habe jetzt mal be Google geuscht und herausbekommen das es ein Fehler in der Version 4.1.1 von AVR sTudio gibt. Hba eaber Version 4.1.2 drauf. Andere Sachen die ich gefunden habe gehen auch nicht.







Zitieren

Lesezeichen