Skript file: /~heha/basteln/PC/FunkUsb/FunkUsb.zip/FunkUsb/ve/Makefile

DEVICE=attiny85
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $(DEVICE)
USBDRV = ../../usbdrv

COMPILE = avr-gcc -Wall -Wno-parentheses -Os -I. -I$(USBDRV) -mmcu=$(DEVICE) -DF_CPU=16500000

OBJECTS = usbdrvasm.o usbdrv.o FunkUsb.o flash_rw.o DCF77.o Wetter.o crypt.o FlashBuf.o

# symbolic targets:
all: FunkUsb.hex disasm
disasm: FunkUsb.lst

usbdrvasm.o: $(USBDRV)/usbdrvasm.S usbconfig.h Makefile
	$(COMPILE) -c $< -o $@
	
usbdrv.o: $(USBDRV)/usbdrv.c usbconfig.h Makefile
	$(COMPILE) -c $< -o $@
	
FunkUsb.o: FunkUsb.c usbconfig.h FunkUsb.h Makefile
	$(COMPILE) -c $< -o $@

flash_rw.o: flash_rw.c flash_rw.h Makefile
	$(COMPILE) -c $< -o $@

DCF77.o: DCF77.c FunkUsb.h Makefile
	$(COMPILE) -c $< -o $@

Wetter.o: Wetter.c FunkUsb.h Makefile
	$(COMPILE) -c $< -o $@

crypt.o: crypt.S
	$(COMPILE) -c $< -o $@

FlashBuf.o: FlashBuf.S
	$(COMPILE) -c $< -o $@

flash: FunkUsb.hex
	$(AVRDUDE) -U flash:w:FunkUsb.hex:i

EFUSE = 0xFE
# 			SELFPRGEN = 0
HFUSE = 0xD7
# Fuse high byte:
# 0 1 0 1   0 1 1 1
# ^ ^ ^ ^   ^ \-+-/ 
# | | | |   |   +------ BODLEVEL 2..0 (brownout trigger level: keiner)
# | | | |   +---------- EESAVE (preserve EEPROM on Chip Erase: ja)
# | | | +-------------- WDTON (watchdog timer always on: nein)
# | | +---------------- SPIEN (enable serial programming: egal)
# | +------------------ DWEN (debug wire enable: nein)
# +-------------------- RSTDISBL (disable external reset: ja)
LFUSE = 0xE1
# Fuse low byte:
# 1 1 1 0   0 0 0 1
# ^ ^ \+/   \--+--/
# | |  |       +------- CKSEL 3..0 (clock selection -> HF PLL)
# | |  +--------------- SUT 1..0 (startup timer: langsam)
# | +------------------ CKOUT (clock output on CKOUT pin: nein)
# +-------------------- CKDIV8 (divide clock by 8: nein)
program:
	$(AVRDUDE) -U efuse:w:$(EFUSE):m -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m -U flash:w:FunkUsb.hex:i

readcal:
	$(AVRDUDE) -U calibration:r:con:i | head -1

clean:
	rm -f FunkUsb.hex FunkUsb.eep FunkUsb.lst FunkUsb.elf *.o

# file targets:
FunkUsb.elf: $(OBJECTS)
	$(COMPILE) -Wl,--section-start=.bootloader=0x1880 -o $@ $^
	avr-size --mcu=$(DEVICE) -C $@

FunkUsb.hex: FunkUsb.elf
	rm -f FunkUsb.hex FunkUsb.eep
	avr-objcopy -j .text -j .data -O ihex $< $@

FunkUsb.lst: FunkUsb.elf
	avr-objdump -d -t $< >$@
Detected encoding: ASCII (7 bit)2