MCU := atmega32 SRCDIR := ./src CC := avr-gcc OBJCOPY := avr-objcopy SIZE := avr-size AVARICE := avarice GDB := avr-gdb CFLAGS := -g -Wall -Wstrict-prototypes -mmcu=$(MCU) -I. -O2 LDFLAGS = -Wl,-Map=$(@:.elf=.map),--cref OBJCOPY_OPT := -R .eeprom JTAG_OPT := -B 500KHz -j /dev/ttyS0 DEB_HOST := localhost DEB_PORT := 4242 DEB_INITFILE := .gdbcmds notarget: @echo Keine Paramter. Stopp! runninglight.elf: $(SRCDIR)/runninglight.o clean: rm -f *.hex rm -f *.bin rm -f *.elf rm -f *.map rm -f $(SRCDIR)/*.o rm -f $(SRCDIR)/*.s # Rule, um aus einer .c Datei eine .o Datei zu erzeugen %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # Rule, um eine ELF Datei zu erzeugen %.elf: $(CC) $(LDFLAGS) -mmcu=$(MCU) $^ -o $@ chmod a-x $@ # Rule, um eine ELF Datei in das Intel HEX Format umzuwandeln %.hex: %.elf $(OBJCOPY) -O ihex $(OBJCOPY_OPT) $< $@ # Rule, um eine ELF Datei in das binäre Format umzuwandeln %.bin: %.elf $(OBJCOPY) -O binary $(OBJCOPY_OPT) $< $@ chmod a-x $@ # Dieses Target startet alle benötigten Programme um den OCD- # Debugger zu benutzen. %.debug: %.elf -killall $(AVARICE) $(AVARICE) $(JTAG_OPT) --detach $(DEB_HOST):$(DEB_PORT) echo "target remote $(DEB_HOST):$(DEB_PORT)" >$(DEB_INITFILE) # $(GDB) -x $(DEB_INITFILE) $< ddd --args -x $(DEB_INITFILE) $< -rm -f $(DEB_INITFILE) # Target programmiert die Datei in den Mikrocontroller # mit Hilfe des JTAGICE von Atmel %.prog: %.bin $(AVARICE) $(JTAG_OPT) -e -p -v -f $<