43ea73faa6
Reference MCU is dsPIC33J256GP506 with 256k ROM and 8k RAM, on the dsPIC DSC Starter Kit board. The REPL works, GC works, pyb module has LED and Switch objects. It passes some tests from the test suite (most it can't run because it doesn't have the Python features enabled).
67 lines
1.4 KiB
Makefile
67 lines
1.4 KiB
Makefile
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
|