Makefile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. include ../../py/mkenv.mk
  2. # qstr definitions (must come before including py.mk)
  3. QSTR_DEFS = qstrdefsport.h
  4. # include py core make definitions
  5. include $(TOP)/py/py.mk
  6. XC16 = /opt/microchip/xc16/v1.24
  7. CROSS_COMPILE = $(XC16)/bin/xc16-
  8. PARTFAMILY = dsPIC33F
  9. PART = 33FJ256GP506
  10. INC += -I.
  11. INC += -I$(TOP)
  12. INC += -I$(BUILD)
  13. INC += -I$(XC16)/include
  14. INC += -I$(XC16)/support/$(PARTFAMILY)/h
  15. CFLAGS_PIC16BIT = -mcpu=$(PART) -mlarge-code
  16. CFLAGS = $(INC) -Wall -Werror -std=gnu99 -nostdlib $(CFLAGS_PIC16BIT) $(COPT)
  17. #Debugging/Optimization
  18. ifeq ($(DEBUG), 1)
  19. CFLAGS += -O0 -ggdb
  20. else
  21. CFLAGS += -O1 -DNDEBUG
  22. endif
  23. LDFLAGS = --heap=0 -nostdlib -T $(XC16)/support/$(PARTFAMILY)/gld/p$(PART).gld -Map=$@.map --cref -p$(PART)
  24. LIBS = -L$(XC16)/lib -L$(XC16)/lib/$(PARTFAMILY) -lc -lm -lpic30 -lp$(PART)
  25. SRC_C = \
  26. main.c \
  27. board.c \
  28. pic16bit_mphal.c \
  29. modpyb.c \
  30. modpybled.c \
  31. modpybswitch.c \
  32. lib/utils/pyexec.c \
  33. lib/utils/sys_stdio_mphal.c \
  34. lib/mp-readline/readline.c \
  35. SRC_S = \
  36. # gchelper.s \
  37. OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o) $(SRC_S:.s=.o))
  38. # List of sources for qstr extraction
  39. SRC_QSTR += $(SRC_C)
  40. # Append any auto-generated sources that are needed by sources listed in
  41. # SRC_QSTR
  42. SRC_QSTR_AUTO_DEPS +=
  43. all: $(BUILD)/firmware.hex
  44. $(BUILD)/firmware.hex: $(BUILD)/firmware.elf
  45. $(ECHO) "Create $@"
  46. $(Q)$(CROSS_COMPILE)bin2hex $<
  47. $(BUILD)/firmware.elf: $(OBJ)
  48. $(ECHO) "LINK $@"
  49. $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
  50. $(Q)size $@
  51. $(PY_BUILD)/gc.o: CFLAGS += -O1
  52. $(PY_BUILD)/vm.o: CFLAGS += -O1
  53. include $(TOP)/py/mkrules.mk