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 $< >$@
Vorgefundene Kodierung: UTF-8 | 0
|