diff options
-rw-r--r-- | software/hhd70dongle/Makefile | 27 | ||||
-rw-r--r-- | software/hhd70dongle/hhd70dongle.c | 21 | ||||
-rw-r--r-- | software/teensy.include.mk | 121 |
3 files changed, 169 insertions, 0 deletions
diff --git a/software/hhd70dongle/Makefile b/software/hhd70dongle/Makefile new file mode 100644 index 0000000..80f23a5 --- /dev/null +++ b/software/hhd70dongle/Makefile @@ -0,0 +1,27 @@ +##
+## spreadspace teensy utils
+##
+##
+## Copyright (C) 2011 Christian Pointner <equinox@spreadspace.org>
+##
+## This file is part of spreadspace teensy utils.
+##
+## spreadspace teensy utils is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## any later version.
+##
+## spreadspace teensy utils is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with spreadspace teensy utils. If not, see <http://www.gnu.org/licenses/>.
+##
+
+NAME := hhd70dongle
+OBJ := hhd70dongle.o
+BOARD_TYPE := teensy2
+
+include ../teensy.include.mk
diff --git a/software/hhd70dongle/hhd70dongle.c b/software/hhd70dongle/hhd70dongle.c new file mode 100644 index 0000000..267f63e --- /dev/null +++ b/software/hhd70dongle/hhd70dongle.c @@ -0,0 +1,21 @@ +/*
+ * Blinks the led using a simple delay loop.
+ */
+
+#include "avr/io.h"
+#include "util/delay.h"
+
+#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))
+
+int main(void)
+{
+ CPU_PRESCALE(0);
+ PORTE = 0x00;
+ DDRE = 0x00;
+
+ for(;;) {
+ _delay_ms(250);
+ PORTE ^= 1<<PORTE6;
+ }
+}
+
diff --git a/software/teensy.include.mk b/software/teensy.include.mk new file mode 100644 index 0000000..62a5ab3 --- /dev/null +++ b/software/teensy.include.mk @@ -0,0 +1,121 @@ +## +## spreadspace teensy utils +## +## +## Copyright (C) 2011 Christian Pointner <equinox@spreadspace.org> +## +## This file is part of spreadspace teensy utils. +## +## spreadspace teensy utils is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## any later version. +## +## spreadspace teensy utils is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with spreadspace teensy utils. If not, see <http://www.gnu.org/licenses/>. +## + +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 + +CC = avr-gcc +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +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: $(HEXFILE) + +%.d: %.c + @set -e; rm -f $@; \ + $(CC) -MM $(CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$; echo '(re)building $@' + +ifneq ($(MAKECMDGOALS),distclean) +-include $(SRC:%.c=%.d) +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 {} \; + +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 $< + +reset: + $(DFU) $(MCU) reset + +run: + $(DFU) $(MCU) start |