summaryrefslogtreecommitdiff
path: root/include.mk
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2012-05-06 19:23:17 +0000
committerChristian Pointner <equinox@spreadspace.org>2012-05-06 19:23:17 +0000
commitc3db73e8e651306a374178109353563f93b5bc21 (patch)
tree4b4c60c2838ed270b34dc92f85a4715c541c28e2 /include.mk
parentadded first (not working) version of include.mk (diff)
first working version for blink
git-svn-id: https://svn.spreadspace.org/avr/trunk@3 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'include.mk')
-rw-r--r--include.mk53
1 files changed, 40 insertions, 13 deletions
diff --git a/include.mk b/include.mk
index 2efc96e..62a5ab3 100644
--- a/include.mk
+++ b/include.mk
@@ -20,21 +20,21 @@
## along with spreadspace teensy utils. If not, see <http://www.gnu.org/licenses/>.
##
-#NAME :=
-#OBJ :=
-#BOARD_TYPE :=
-
ifeq ($(BOARD_TYPE),teensy1)
MCU := at90usb162
+F_CPU := 16000000
endif
ifeq ($(BOARD_TYPE),teensy2)
MCU := atmega32u4
+F_CPU := 16000000
endif
ifeq ($(BOARD_TYPE),teensypp1)
MCU := at90usb646
+F_CPU := 16000000
endif
ifeq ($(BOARD_TYPE),teensypp2)
MCU := at90usb1286
+F_CPU := 16000000
endif
FORMAT := ihex
@@ -45,15 +45,35 @@ SIZE = avr-size
AR = avr-ar rcs
NM = avr-nm
COPY = cp
-
+DFU = dfu-programmer
+
+## Options common to compile, link and assembly rules
+COMMON = -mmcu=$(MCU)
+
+## Compile options common for all C compilation units.
+CFLAGS = $(COMMON)
+CFLAGS += -O2
+CFLAGS += -funsigned-char
+CFLAGS += -funsigned-bitfields
+CFLAGS += -ffunction-sections
+CFLAGS += -fpack-struct
+CFLAGS += -fshort-enums
+CFLAGS += -Wall
+CFLAGS += -Wstrict-prototypes
+CFLAGS += -DF_CPU=$(F_CPU)UL
+
+## Linker flags
+LDFLAGS = $(COMMON)
+LDFLAGS +=
SRC := $(OBJ:%.o=%.c)
.PHONY: clean cleanall distclean program
ELFFILE := $(NAME).elf
+HEXFILE := $(NAME).hex
-all: $(ELFFILE)
+all: $(HEXFILE)
%.d: %.c
@set -e; rm -f $@; \
@@ -68,27 +88,34 @@ endif
$(ELFFILE): $(OBJ)
$(CC) $(OBJ) -o $@ $(LDFLAGS)
+$(HEXFILE): $(ELFFILE)
+ $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $(HEXFILE)
+
%.o: %.c
$(CC) $(CFLAGS) -c $<
-
strip: $(ELFFILE)
$(STRIP) -s $(ELFFILE)
distclean: cleanall
find . -name *.o -exec rm -f {} \;
find . -name "*.\~*" -exec rm -rf {} \;
- rm -f include.mk
- rm -f version.h
- rm -f tun.c
clean:
rm -f *.o
rm -f *.d
rm -f *.d.*
rm -f $(ELFFILE)
+ rm -f $(HEXFILE)
+
+erase:
+ $(DFU) $(MCU) erase | true
+
+program: $(HEXFILE) erase
+ $(DFU) $(MCU) flash $<
-program: $(ELFFILE)
- $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $(ELFFILE:%.elf=%.hex)
- teensy_loader_cli -mmcu=$(MCU) -w -v $@
+reset:
+ $(DFU) $(MCU) reset
+run:
+ $(DFU) $(MCU) start