So sieht das neue Makefile jetzt aus:
Das ist jetzt ein einfaches klar strukturiertes makefile das auch bei "make flash" und einer geänderten Datei in SOURCES das hex file neu baut. Ist immer noch fast das selbe. Der Schritt aus den Sources die OBJ Variable zu machen.Code:############################################################ # Projekteinstellungen ############################################################ # MCU MCU=atmega168p F_CPU=16000000 LFUSE=0xde HFUSE=0xdf EFUSE=0x01 # Die Sources SOURCES = OBJ = main.cpp rs232.cpp parser.cpp timer1.cpp io.cpp # Die Zieldateien ELF = usbstepper.elf HEX = usbstepper.hex MAP = usbstepper.map ############################################################ # Compiler Flags. Muss vermutlich nicht angepasst werden ############################################################ CFLAGS=-g -DF_CPU=$(F_CPU) -Wall -Os --std=c++11 -mcall-prologues ############################################################ # Die Toolchain. Muss vermutlich nicht angepasst werden # Die AVRDUDE Zeile muss an den Programmer und # die Ziel CPU angepasst werden ############################################################ AVRDUDE=sudo avrdude -p m168 -c avrispmkii -P USB CC=avr-g++ RM=rm -f OBJCOPY=avr-objcopy AVRSIZE=avr-size OBJDUMP=avr-objdump ############################################################ # Ab hier muss nichts mehr angepasst werden ############################################################ # OBJ = Sources mit ersetzter Dateiendung OBJ=$(SOURCES:%.cpp=%.o) all: hex hex: elf $(OBJCOPY) -R .eeprom -O ihex $(ELF) $(HEX) elf: $(OBJ) $(CC) -mmcu=$(MCU) $(CFLAGS) -o $(ELF) -Wl,-Map,$(MAP) $(OBJ) %.o: %.cpp $(CC) -mmcu=$(MCU) $(CFLAGS) -c $< .phony: flash flash: hex $(AVRDUDE) -e -U flash:w:$(HEX) # Ziele ohne Abhängigkeiten clean: $(RM) $(OBJ) $(ELF) $(HEX) $(MAP) readfuse: $(AVRDUDE) lfuse:r:-:i -v writefuse: $(AVRDUDE) -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m size: $(ELF) $(AVRSIZE) -B $(ELF) dump: $(OBJDUMP) -d --demangle $(ELF)
Gruß
Georg







Zitieren

Lesezeichen