terom@0: QMSK_ARDUINO = qmsk terom@0: terom@0: PROG = hello terom@0: terom@0: ELF = build/src/$(PROG).elf terom@0: HEX = build/src/$(PROG).hex terom@0: terom@0: build/src/hello.elf: build/src/hello.o \ terom@1: build/qmsk/src/serial.o \ terom@0: build/qmsk/src/timer.o terom@0: terom@0: ## terom@0: all: $(HEX) terom@0: terom@0: build: terom@0: mkdir -p build/src build/qmsk/src terom@0: terom@0: clean: terom@0: rm -rf build/ terom@0: terom@0: ## Compiler terom@0: MCU = atmega328p terom@0: terom@0: # CPU clock frequency terom@0: CPU = 16000000 terom@0: STD = c99 terom@0: terom@0: CC = avr-gcc terom@0: CPPFLAGS = -DF_CPU=$(CPU)UL -I$(QMSK_ARDUINO)/include terom@0: CFLAGS = -mmcu=$(MCU) -std=$(STD) -Os -g terom@0: LDFLAGS = -mmcu=$(MCU) terom@0: LDLIBS = -lc terom@0: terom@0: build/%.o: %.c terom@0: $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< terom@0: $(CC) -MM $(CPPFLAGS) -MT $@ -MF build/$*.d $< terom@0: terom@0: build/%.elf: terom@0: $(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS) terom@0: terom@0: # existing .d files for rebuilding existing .o's terom@0: -include $(wildcard build/*/*.d) terom@0: terom@0: dump: $(ELF) terom@0: avr-objdump -d $(ELF) terom@0: terom@0: ## Assembler terom@0: AS = avra terom@0: ASFLAGS = terom@0: terom@0: %.hex: %.s terom@0: $(AS) $(ASFLAGS) $< terom@0: mv $<.hex $@ terom@0: terom@0: ## Flashing terom@0: # Arduino Duemilanove terom@0: AD_PART = m328p terom@0: AD_PROG = arduino terom@0: AD_BAUD = 57600 terom@0: AD_PORT = /dev/arduino terom@0: terom@0: AD = avrdude terom@0: ADFLAGS = -p $(AD_PART) -c $(AD_PROG) -b $(AD_BAUD) -P $(AD_PORT) terom@0: terom@0: build/%.hex: build/%.elf terom@0: avr-objcopy -O ihex -R .eeprom $< $@ terom@0: terom@0: .PRECIOUS: build/%.elf terom@0: terom@0: upload: $(HEX) terom@0: $(AD) $(ADFLAGS) -U flash:w:$< terom@0: terom@0: ## Console terom@0: SERIAL_BAUD = 9600 terom@0: SERIAL_FLOW = n terom@0: SERIAL_PARITY = n terom@0: SERIAL_BITS = 8 terom@0: SERIAL_PORT = $(AD_PORT) terom@0: terom@0: SERIAL_TERM = picocom terom@0: SERIAL_FLAGS = -b $(SERIAL_BAUD) -f $(SERIAL_FLOW) -p $(SERIAL_PARITY) -d $(SERIAL_BITS) terom@0: terom@0: console: terom@0: $(SERIAL_TERM) $(SERIAL_FLAGS) $(SERIAL_PORT) terom@0: