aboutsummaryrefslogtreecommitdiff
path: root/pic16bit/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'pic16bit/Makefile')
-rw-r--r--pic16bit/Makefile66
1 files changed, 66 insertions, 0 deletions
diff --git a/pic16bit/Makefile b/pic16bit/Makefile
new file mode 100644
index 000000000..4fab7f61c
--- /dev/null
+++ b/pic16bit/Makefile
@@ -0,0 +1,66 @@
+include ../py/mkenv.mk
+
+# qstr definitions (must come before including py.mk)
+QSTR_DEFS = qstrdefsport.h
+
+# include py core make definitions
+include ../py/py.mk
+
+XC16 = /opt/microchip/xc16/v1.24
+CROSS_COMPILE = $(XC16)/bin/xc16-
+
+PARTFAMILY = dsPIC33F
+PART = 33FJ256GP506
+
+INC = -I.
+INC += -I..
+INC += -I../lib/mp-readline
+INC += -I../stmhal
+INC += -I$(BUILD)
+INC += -I$(XC16)/include
+INC += -I$(XC16)/support/$(PARTFAMILY)/h
+
+CFLAGS_PIC16BIT = -mcpu=$(PART) -mlarge-code
+CFLAGS = $(INC) -Wall -Werror -ansi -std=gnu99 -nostdlib $(CFLAGS_PIC16BIT) $(COPT)
+
+#Debugging/Optimization
+ifeq ($(DEBUG), 1)
+CFLAGS += -O0 -ggdb
+else
+CFLAGS += -O1 -DNDEBUG
+endif
+
+LDFLAGS = --heap=0 -nostdlib -T $(XC16)/support/$(PARTFAMILY)/gld/p$(PART).gld -Map=$@.map --cref -p$(PART)
+LIBS = -L$(XC16)/lib -L$(XC16)/lib/$(PARTFAMILY) -lc -lm -lpic30 -lp$(PART)
+
+SRC_C = \
+ main.c \
+ board.c \
+ pic16bit_mphal.c \
+ modpyb.c \
+ modpybled.c \
+ modpybswitch.c \
+ stmhal/pybstdio.c \
+ stmhal/pyexec.c \
+ lib/mp-readline/readline.c \
+
+SRC_S = \
+# gchelper.s \
+
+OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o) $(SRC_S:.s=.o))
+
+all: $(BUILD)/firmware.hex
+
+$(BUILD)/firmware.hex: $(BUILD)/firmware.elf
+ $(ECHO) "Create $@"
+ $(Q)$(CROSS_COMPILE)bin2hex $<
+
+$(BUILD)/firmware.elf: $(OBJ)
+ $(ECHO) "LINK $@"
+ $(Q)$(LD) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
+ $(Q)size $@
+
+$(PY_BUILD)/gc.o: CFLAGS += -O1
+$(PY_BUILD)/vm.o: CFLAGS += -O1
+
+include ../py/mkrules.mk