From fffc6d1a173817fdbc452439b4621c000800c66f Mon Sep 17 00:00:00 2001 From: Tony DiCola Date: Fri, 14 Oct 2016 11:39:42 +0000 Subject: [PATCH] atmel-samd: Add modules directory with frozen bytecode support (like ESP8266 port), and NeoPixel python wrapper module. --- atmel-samd/Makefile | 24 +++++++++++++++---- atmel-samd/frozentest.mpy | Bin 255 -> 0 bytes atmel-samd/{ => modules}/frozentest.py | 0 atmel-samd/modules/neopixel.py | 31 +++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 4 deletions(-) delete mode 100644 atmel-samd/frozentest.mpy rename atmel-samd/{ => modules}/frozentest.py (100%) create mode 100644 atmel-samd/modules/neopixel.py diff --git a/atmel-samd/Makefile b/atmel-samd/Makefile index b6396d2ed0..5d3af6e39a 100644 --- a/atmel-samd/Makefile +++ b/atmel-samd/Makefile @@ -27,6 +27,15 @@ BOSSAC := tools/bossac_osx HAL_DIR=hal/$(MCU_SERIES) +# Frozen bytecode configuration. Any .py files placed in the modules subdirectory +# will be frozen into .mpy files and embedded in the firmware (like the ESP8266 +# port). +MPY_CROSS = ../mpy-cross/mpy-cross +MPY_TOOL = ../tools/mpy-tool.py +FROZEN_MPY_DIR = modules +FROZEN_MPY_PY_FILES := $(shell find -L $(FROZEN_MPY_DIR) -type f -name '*.py') +FROZEN_MPY_MPY_FILES := $(addprefix $(BUILD)/,$(FROZEN_MPY_PY_FILES:.py=.mpy)) + INC += -I. INC += -I.. INC += -I../lib/mp-readline @@ -187,7 +196,7 @@ SRC_BINDINGS_EXPANDED = $(addprefix shared-bindings/, $(SRC_BINDINGS)) \ $(addprefix common-hal/, $(SRC_BINDINGS)) SRC_AUTOGEN = \ - $(BUILD)/_frozen_mpy.c \ + $(BUILD)/frozen_mpy.c \ OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o)) OBJ += $(addprefix $(BUILD)/, $(SRC_ASF:.c=.o)) @@ -199,9 +208,16 @@ SRC_QSTR += $(SRC_C) $(SRC_BINDINGS_EXPANDED) $(STM_SRC_C) all: $(BUILD)/firmware.bin -$(BUILD)/_frozen_mpy.c: frozentest.mpy $(BUILD)/genhdr/qstrdefs.generated.h - $(ECHO) "MISC freezing bytecode" - $(Q)../tools/mpy-tool.py -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=none $< > $@ +# to build .mpy files from .py files +$(BUILD)/$(FROZEN_MPY_DIR)/%.mpy: $(FROZEN_MPY_DIR)/%.py + @$(ECHO) "MPY $<" + $(Q)$(MKDIR) -p $(dir $@) + $(Q)$(MPY_CROSS) -o $@ -s $(^:$(FROZEN_MPY_DIR)/%=%) $^ + +# to build frozen_mpy.c from all .mpy files +$(BUILD)/frozen_mpy.c: $(FROZEN_MPY_MPY_FILES) $(BUILD)/genhdr/qstrdefs.generated.h + @$(ECHO) "Creating $@" + $(Q)$(PYTHON) $(MPY_TOOL) -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=none $(FROZEN_MPY_MPY_FILES) > $@ $(BUILD)/firmware.elf: $(OBJ) $(ECHO) "LINK $@" diff --git a/atmel-samd/frozentest.mpy b/atmel-samd/frozentest.mpy deleted file mode 100644 index c8345b1910611e890fde2e3058f3c41cf2c19970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeZeV3LnvW&i=+Ck($Cv@|p{v^5wQ{>!v8i2Y$mVKf3V#9=fel+OgAMRvWPB?@FV znDRFmsQhIBDwX*QQrq~_pyh+v>v|)>Xbzj){FKt1R6E|ZqWr4Vypq)761{>-)`FtU zyb|Wp04NK>Mwpg_4ZK5{1lSg}i(q1vIiKFEyoD tEfGaJBe7VaG%qtbKP6S++{Sa8&TUpm&PXgOPU23g1Uf>&(8$