]> git.tdb.fi Git - model-railway-devices.git/blobdiff - firmware/Makefile
Add some utility functions for interfacing with hardware
[model-railway-devices.git] / firmware / Makefile
index 68d6f4c922be4ec5b8546e6c4a5cdca7e0339729..c17d9919ecf938b8bf4608768ae5dbeddcf7fc3a 100644 (file)
@@ -1,23 +1,45 @@
 # $Id$
 
-MCU = atmega328p
-CLOCK = 16000000
-CFLAGS = -Wall -Os -ffunction-sections -fdata-sections -mmcu=$(MCU) -DF_CPU=$(CLOCK)
-LDFLAGS = -Os -Wl,--gc-sections -mmcu=$(MCU)
+MCU := atmega328p
+CLOCK := 16000000
+CC := avr-gcc
+CFLAGS := -Wall -Os -ffunction-sections -fdata-sections -mmcu=$(MCU) -DF_CPU=$(CLOCK)
+LDFLAGS := -Os -Wl,--gc-sections -mmcu=$(MCU)
+AVRDUDE := avrdude
+OBJCOPY := avr-objcopy
+ifeq ($(MCU),atmega168)
+BAUD := 19200
+else
+BAUD := 57600
+endif
 
 help:
        @echo "Targets:"
        @echo "  %.hex:    Build firmware from %.c"
        @echo "  upload-%: Upload firmware to AVR"
+       @echo "  clean:    Clean all built files"
+       @echo
+       @echo "Variables:"
+       @echo "  MCU:      Microcontroller type"
+       @echo "            Arduino Duemilanove = atmega328p (default)"
+       @echo "            Arduino Mini = atmega168"
 
 %.hex: %.elf
-       avr-objcopy -O ihex $< $@
+       $(OBJCOPY) -O ihex $< $@
 
 %.elf: %.o
-       avr-gcc $(LDFLAGS) -o $@ $<
+       $(CC) $(LDFLAGS) -o $@ $^
 
 %.o: %.c
-       avr-gcc -c $(CFLAGS) -o $@ $<
+       $(CC) -c $(CFLAGS) -o $@ $<
 
 upload-%: %.hex
-       avrdude -p$(MCU) -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:$<:i
+       $(AVRDUDE) -p$(MCU) -carduino -P/dev/ttyUSB0 -b$(BAUD) -D -Uflash:w:$<:i
+
+clean:
+       $(RM) *.hex
+       $(RM) *.elf
+       $(RM) *.o
+
+s88w-t.elf: serial.o timer.o eeprom.o
+s88w-r.elf: serial.o lcd.o