diff options
| author | Damien George | 2014-11-27 20:30:33 +0000 |
|---|---|---|
| committer | Damien George | 2014-11-27 20:30:33 +0000 |
| commit | 075d597464be619475535930de2f36abe69176f8 (patch) | |
| tree | 286b765fb8e3c3dc1c741eb825fd7ef49e7e4946 /esp8266/Makefile | |
| parent | 2399aa03b81e6a23f0b2719196c07101884222be (diff) | |
esp8266: New port of Micro Python to ESP8266 wifi module.
Diffstat (limited to 'esp8266/Makefile')
| -rw-r--r-- | esp8266/Makefile | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/esp8266/Makefile b/esp8266/Makefile new file mode 100644 index 000000000..6826ce9dd --- /dev/null +++ b/esp8266/Makefile @@ -0,0 +1,115 @@ +include ../py/mkenv.mk + +# qstr definitions (must come before including py.mk) +QSTR_DEFS = qstrdefsport.h #$(BUILD)/pins_qstr.h + +# include py core make definitions +include ../py/py.mk + +ifeq ($(ESP_SDK),) +$(error ESP_SDK must be set) +endif + +CROSS_COMPILE = xtensa-lx106-elf- + +INC = -I. +INC += -I$(PY_SRC) +INC += -I../stmhal +INC += -I$(BUILD) +INC += -I$(ESP_SDK)/include + +CFLAGS_XTENSA = -fsingle-precision-constant -Wdouble-promotion \ + -D__ets__ -DICACHE_FLASH \ + -fno-inline-functions \ + -Wl,-EL -mlongcalls -mtext-section-literals \ + +CFLAGS = $(INC) -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib $(CFLAGS_XTENSA) $(COPT) + +LDFLAGS = -nostdlib -T esp8266.ld -Map=$(@:.elf=.map) --cref +LIBS = -L$(ESP_SDK)/lib -lmain -ljson -llwip -lpp -lnet80211 -lwpa -lphy -lnet80211 + +LIBGCC_FILE_NAME = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) +LIBS += -L $(dir $(LIBGCC_FILE_NAME)) -lgcc + +# Debugging/Optimization +ifeq ($(DEBUG), 1) +CFLAGS += -g +COPT = -O0 +else +CFLAGS += -fdata-sections -ffunction-sections +COPT += -Os -DNDEBUG +LDFLAGS += --gc-sections +endif + +SRC_C = \ + main.c \ + esp_mphal.c \ + gccollect.c \ + pybstdio.c \ + uart.c \ + modpyb.c \ + +STM_SRC_C = $(addprefix stmhal/,\ + printf.c \ + string0.c \ + pyexec.c \ + readline.c \ + ) + +SRC_S = \ + gchelper.s \ + +OBJ = +OBJ += $(PY_O) +OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o)) +OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o)) +OBJ += $(addprefix $(BUILD)/, $(STM_SRC_C:.c=.o)) +#OBJ += $(BUILD)/pins_$(BOARD).o + +all: $(BUILD)/firmware-combined.bin + +.PHONY: deploy + +deploy: $(BUILD)/firmware-combined.bin + $(ECHO) "Writing $< to the board" + $(Q)esptool.py --port /dev/ttyACM0 write_flash 0 $< + #$(Q)esptool.py --port /dev/ttyACM0 write_flash 0 $(BUILD)/firmware.elf-0x00000.bin + #$(Q)esptool.py --port /dev/ttyACM0 write_flash 0x10000 $(BUILD)/firmware.elf-0x10000.bin + +$(BUILD)/firmware-combined.bin: $(BUILD)/firmware.elf + $(ECHO) "Create $@" + $(Q)esptool.py elf2image $^ + $(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x10000.bin $@ + +$(BUILD)/firmware.elf: $(OBJ) + $(ECHO) "LINK $@" + $(Q)$(LD) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) + $(Q)$(SIZE) $@ + +#MAKE_PINS = boards/make-pins.py +#BOARD_PINS = boards/$(BOARD)/pins.csv +#AF_FILE = boards/stm32f4xx_af.csv +#PREFIX_FILE = boards/stm32f4xx_prefix.c +#GEN_PINS_SRC = $(BUILD)/pins_$(BOARD).c +#GEN_PINS_HDR = $(HEADER_BUILD)/pins.h +#GEN_PINS_QSTR = $(BUILD)/pins_qstr.h +#GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h +#GEN_PINS_AF_PY = $(BUILD)/pins_af.py + +# Making OBJ use an order-only depenedency on the generated pins.h file +# has the side effect of making the pins.h file before we actually compile +# any of the objects. The normal dependency generation will deal with the +# case when pins.h is modified. But when it doesn't exist, we don't know +# which source files might need it. +#$(OBJ): | $(HEADER_BUILD)/pins.h + +# Use a pattern rule here so that make will only call make-pins.py once to make +# both pins_$(BOARD).c and pins.h +#$(BUILD)/%_$(BOARD).c $(HEADER_BUILD)/%.h $(HEADER_BUILD)/%_af_const.h $(BUILD)/%_qstr.h: boards/$(BOARD)/%.csv $(MAKE_PINS) $(AF_FILE) $(PREFIX_FILE) | $(HEADER_BUILD) +# $(ECHO) "Create $@" +# $(Q)$(PYTHON) $(MAKE_PINS) --board $(BOARD_PINS) --af $(AF_FILE) --prefix $(PREFIX_FILE) --hdr $(GEN_PINS_HDR) --qstr $(GEN_PINS_QSTR) --af-const $(GEN_PINS_AF_CONST) --af-py $(GEN_PINS_AF_PY) > $(GEN_PINS_SRC) +# +#$(BUILD)/pins_$(BOARD).o: $(BUILD)/pins_$(BOARD).c +# $(call compile_c) + +include ../py/mkrules.mk |
