# Makefile für CRC16-Demo
P = crc16
D = attiny13
F = 9600000
# Einbuchstabige Makros ersparen die lästigen Klammern
# So wird der gewünschte (neuere) Compiler vor den Suchpfad gesetzt
PATH := c:\programme\winavr\gcc530\bin;$(PATH)
# Architektur-Präfix (der auch mal "msp430-" oder "arm-none-eabi-" heißen kann)
A = avr-
C = $Agcc -Wall -Wno-parentheses -Wno-array-bounds -Os -mmcu=$D -DF_CPU=$F -std=c++14
#Y = avrdude -p $D -c pony-stk200 -P lpt1
#Hier steht ein avrisp zur Verfügung
Y = avrdude -c avrisp2 -P usb -p $D
# all = Bauziel wenn make ohne Ziel aufgerufen wird.
# Erwartungsgemäß Compiler- und Linkeraufruf, damit eine Echse herauskommt.
# In Programmer's Notepad durch WinAVR mit "Compile" belegt — ich hab's auf F7 gelegt
all: $P.lst
# Compile+link: „Ausführbare“ Datei generieren
%.elf: *.cpp Makefile
$C -o $@ $(filter %.cpp,$^)
$Asize $@
# Für avrdude Binärdatei generieren (Hex-Dateien haben bei mir ausgedient)
%.flash: %.elf
$Aobjcopy -j .text -j .data -O binary $< $@
# Listing-Datei generieren
%.lst: %.elf
$Aobjdump -d $< > $@
$Astrip $<
# Chip-Programmierung mit avrpp
program-avrpp:
avrpp -ff $P.elf
flash-avrpp: $P.elf
avrpp $<
# flash = Bauziel für Programmer's Notepad, vorkonfiguriert durch WinAVR — ich hab's auf Strg+F5 gelegt
# Chip-Programmierung mit avrdude
flash: $P.flash
$Y -e -U $@:w:$<:r
fuse:
$Y -U e$@:w:0xFD:m -U h$@:w:0xD1:m -U l$@:w:0xDD:m
read.fuse:
$Y -v -U lock:r:-:i
# program = Bauziel für Programmer's Notepad, vorkonfiguriert durch WinAVR — ich hab's auf F5 gelegt
# Es ist Geschmackssache ob man die Ziele "fuse" und "flash" trennt;
# bei Massenprogrammierung ist der doppelte Aufruf von avrdude besser zu vermeiden.
program: fuse flash
# Projektverzeichnis aufräumen
clean:
$(RM) $P.flash $P.lst
# Liste der unechten Ziele
.PHONY : all clean program flash read.*
.PRECIOUS : $O $P.elf
Vorgefundene Kodierung: UTF-8 | 0
|