working blinker with usb debug
authornotaz <notasas@gmail.com>
Thu, 11 Sep 2014 23:21:15 +0000 (02:21 +0300)
committernotaz <notasas@gmail.com>
Thu, 11 Sep 2014 23:21:15 +0000 (02:21 +0300)
Makefile [new file with mode: 0644]
main.c [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..d934bba
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,35 @@
+CC = $(CROSS_COMPILE)gcc
+CXX = $(CROSS_COMPILE)g++
+OBJCOPY = $(CROSS_COMPILE)objcopy
+SIZE = $(CROSS_COMPILE)size
+
+TOOLSPATH = tools
+
+TARGET = test
+
+# CPPFLAGS += -DUSB_SERIAL -DLAYOUT_US_ENGLISH
+CPPFLAGS += -D__MK20DX256__ -DF_CPU=48000000
+CPPFLAGS += -DUSB_RAWHID
+CPPFLAGS += -Wall -g -Os -mcpu=cortex-m4 -mthumb -nostdlib # -MMD
+CXXFLAGS += -std=gnu++0x -felide-constructors -fno-exceptions -fno-rtti
+LDFLAGS = -Os -Wl,--gc-sections -mcpu=cortex-m4 -mthumb -Tteensy3/mk20dx256.ld
+LDLIBS += -lm
+
+C_FILES := $(wildcard *.c)
+CT_FILES := $(wildcard teensy3/*.c)
+OBJS += $(C_FILES:.c=.o) $(CT_FILES:.c=.o)
+
+all: $(TARGET).hex
+
+$(TARGET).elf: $(OBJS) $(LDSCRIPT)
+       $(CC) $(LDFLAGS) -o "$@" $(OBJS) $(LDLIBS)
+
+%.hex: %.elf
+       $(SIZE) "$<"
+       $(OBJCOPY) -O ihex -R .eeprom "$<" "$@"
+
+clean:
+       $(RM) $(TARGET).hex $(TARGET).elf $(OBJS)
+
+up: $(TARGET).hex
+       teensy_loader_cli -mmcu=mk20dx128 -w $<
diff --git a/main.c b/main.c
new file mode 100644 (file)
index 0000000..511a599
--- /dev/null
+++ b/main.c
@@ -0,0 +1,47 @@
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include "teensy3/core_pins.h"
+#include "teensy3/usb_seremu.h"
+#include "teensy3/usb_rawhid.h"
+
+ssize_t _write(int fd, const void *buf, size_t nbyte)
+{
+       char tbuf[64];
+       int ret;
+
+       if (fd != 1 && fd != 2) {
+               snprintf(tbuf, sizeof(tbuf), "write to fd %d\n", fd);
+               usb_seremu_write(tbuf, strlen(tbuf));
+       }
+
+       ret = usb_seremu_write(buf, nbyte);
+       return ret < 0 ? ret : nbyte;
+}
+
+void yield(void)
+{
+}
+
+int main(void)
+{
+       int ret;
+
+       delay(1000); // wait for usb..
+
+       printf("starting, rawhid: %d\n", usb_rawhid_available());
+
+       // ret = usb_rawhid_recv(buf, 2000);
+       // ret = usb_rawhid_send(buf, 2000);
+
+       pinMode(13, OUTPUT);
+       pinMode(14, OUTPUT);
+       while (1) {
+               CORE_PIN13_PORTSET = CORE_PIN13_BITMASK;
+               CORE_PIN14_PORTSET = CORE_PIN14_BITMASK;
+               delay(500*4);
+               CORE_PIN13_PORTCLEAR = CORE_PIN13_BITMASK;
+               CORE_PIN14_PORTCLEAR = CORE_PIN14_BITMASK;
+               delay(500*4);
+       }
+}