X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=Makefile;h=23528a0821dd8cd349a3ebd319e2e9e77b12cb23;hb=a3e62ade9b96ec057b5c624103e9738ddcb39fa0;hp=076d26cdb436e01ca63551a87b40361579b0c3e4;hpb=4677b0d00de7ae1e577cc8f5971b35e1bf7c0768;p=openparking.git diff --git a/Makefile b/Makefile index 076d26c..23528a0 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,25 @@ + +PROGRAM=firmware +SRC=firmware.c rs485.c +OBJ=$(SRC:.c=.o) + + +MCU=atmega328p +# AVRDUDE_MCU=$(MCU) +AVRDUDE_MCU=atmega328p +AVRDUDE_PROGRAMMER=arduino + +CFLAGS=-Wall -Os -mmcu=$(MCU) -DUSE_LOGGING=1 -DF_CPU=16000000UL -std=gnu99 +LDFLAGS= +AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER) -P /dev/ttyUSB0 -b 57600 + +FORMAT=ihex + +CC=avr-gcc +OBJCOPY=avr-objcopy +OBJDUMP=avr-objdump +AVRDUDE=avrdude + WEB_DIR=/home/kas/html/board/ WEB_FILES=pcb-back.png pcb-front.png schematics.png handlebar.png GERBER_FILES=\ @@ -10,13 +32,14 @@ GERBER_FILES=\ board.outline.gbr \ board.plated-drill.cnc -all: - @echo "Usage: make [clean|web|gerber|fab|board.pcb]" +all: $(PROGRAM).hex $(PROGRAM).eep clean: rm -f board.cmd board.jpg board.net board.new.pcb board.pcb- \ board.png board.ps board.sch~ pcb-back.png pcb-front.png \ - schematics.png *.gbr *.cnc + schematics.png *.gbr *.cnc \ + $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s \ + eeprom.raw version.c web: $(WEB_FILES) test -d $(WEB_DIR) && install -m 644 $(WEB_FILES) $(WEB_DIR) @@ -61,3 +84,49 @@ fab: $(GERBER_FILES) echo "You may also want to do git tag gerber-fab-$$D" ' .PHONY: gerber + +program: $(PROGRAM).hex $(PROGRAM).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i + +program_flash: $(PROGRAM).hex + $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i + +program_eeprom: $(PROGRAM).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) eeprom:w:$(PROGRAM).eep:i + +dump_eeprom: + $(AVRDUDE) $(AVRDUDE_FLAGS) -U eeprom:r:eeprom.raw:r + od -tx1 eeprom.raw + +objdump: $(PROGRAM).elf + $(OBJDUMP) --disassemble $< + +.PRECIOUS : $(OBJ) $(PROGRAM).elf + +%.hex: %.elf + $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ + +%.eep: %.elf + $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ + --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ + +%.elf: $(OBJ) + $(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS) + +%.o: %.c lights.h Makefile + $(CC) -c $(CFLAGS) $< -o $@ + +%.s: %.c lights.h Makefile + $(CC) -S -c $(CFLAGS) $< -o $@ + +%.o: %.S + $(CC) -c $(CFLAGS) $< -o $@ + +clean: + +version.c: + ./version.pl > version.c + +.PHONY: all clean dump_eeprom program program_flash program_eeprom objdump \ + version.c +