Quelltext /~heha/mb-iwp/FlyStick/Firmware.zip/bootloadHID/Makefile

# Makefile für das Projekt VR-FlyStick (Variante C: Drahtloser HID-Joystick)
# Bootloader für „Empfangsteil“ (AccessPoint)

## General Flags
PROJECT = BL
DEVICE  = atmega8
F_CPU   = 12000000
USBDRV  = ../../Durchflussmesser/usbdrv
COMPILE = avr-gcc.exe -Wall -Os -I$(USBDRV) -I. -mmcu=$(DEVICE) -D F_CPU=$(F_CPU)
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $(DEVICE) -E noreset

OBJECTS = usbdrvasm.o $(PROJECT).o

HFUSE = 0xC0
# 1 1 0 0  0 0 0 0
# ↑ ↑ ↑ ↑  ↑ └┬┘ └─── BOOTRST	(Boot reset: @0x1800)
# │ │ │ │  │  └────── BOOTSZ	(Boot area size: 2 kByte)
# │ │ │ │  └───────── EESAVE	(Preserve EEPROM over chip erase: YES)
# │ │ │ └──────────── CKOPT	(Clock option: Full output swing)
# │ │ └────────────── SPIEN	(Serial Programming Enable: YES)
# │ └──────────────── WDTON	(Watchdog Timer always on: NO)
# └────────────────── RSTDISBL	(External Reset Disable: NO)

#LFUSE = 0x9F blöd		(Start-up time: 1.4 ms)
LFUSE = 0xAE
# 1 0 1 0  1 1 1 0
# ↑ ↑ └┬┘  └─┴─┴─┴─── CKSEL	(Oscillator selection: Crystal oscillator 12 MHz)
# │ │  └───────────── SUT	(Start-up time: 85 µs, minimum)
# │ └──────────────── BODEN	(BrownOut Enable: YES)
# └────────────────── BODLEVEL	(BrownOut Level: 2.7V)

all: $(PROJECT).hex $(PROJECT).lst

disasm: $(PROJECT).lst

$(PROJECT).o: $(PROJECT).c Makefile usbconfig.h bootloaderconfig.h
	$(COMPILE) -c $< -o $@

usbdrv.o: $(USBDRV)/usbdrv.c Makefile usbconfig.h bootloaderconfig.h
	$(COMPILE) -c $< -o $@
	
usbdrvasm.o: $(USBDRV)/usbdrvasm.S Makefile usbconfig.h bootloaderconfig.h
	$(COMPILE) -c $< -o $@
	
$(PROJECT).elf: $(OBJECTS)
	$(COMPILE) -o $@ $(OBJECTS) -Ttext 0x1800

%.hex: $(PROJECT).elf
	avr-objcopy -j .text -j .data -O ihex $< $@
	@avr-size $<

%.lst: $(PROJECT).elf
	avr-objdump -d $< > $@

.PHONY: clean program fuse flash
clean:
	-rm -rf $(OBJECTS) $(PROJECT).elf $(PROJECT).map $(PROJECT).lst

program:
	$(AVRDUDE) -U flash:w:$(PROJECT).hex:i -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m -U lock:w:0x2F:m

flash: $(PROJECT).hex
	$(AVRDUDE) -U flash:w:$(PROJECT).hex:i -U lock:w:0x2F:m

verify:
	$(AVRDUDE) -U flash:v:$(PROJECT).hex
Vorgefundene Kodierung: UTF-80