summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--esp8266/Makefile17
-rw-r--r--esp8266/main.c5
-rw-r--r--esp8266/mpconfigport.h1
-rw-r--r--esp8266/scripts/main.py1
4 files changed, 24 insertions, 0 deletions
diff --git a/esp8266/Makefile b/esp8266/Makefile
index 389e86edf9..c891c50dcb 100644
--- a/esp8266/Makefile
+++ b/esp8266/Makefile
@@ -6,6 +6,9 @@ QSTR_DEFS = qstrdefsport.h #$(BUILD)/pins_qstr.h
# include py core make definitions
include ../py/py.mk
+MAKE_FROZEN = ../tools/make-frozen.py
+
+SCRIPTDIR = scripts
PORT = /dev/ttyACM0
CROSS_COMPILE = xtensa-lx106-elf-
ESP_SDK = $(shell $(CC) -print-sysroot)/usr
@@ -51,6 +54,7 @@ SRC_C = \
modpybpin.c \
modesp.c \
utils.c \
+ $(BUILD)/frozen.c \
STM_SRC_C = $(addprefix stmhal/,\
printf.c \
@@ -77,6 +81,19 @@ OBJ += $(addprefix $(BUILD)/, $(LIB_SRC_C:.c=.o))
all: $(BUILD)/firmware-combined.bin
+SCRIPTDIR_FILE = $(BUILD)/scriptdir
+
+ifeq ($(wildcard $(SCRIPTDIR_FILE)),)
+$(shell $(MKDIR) -p $(BUILD))
+$(shell echo $(SCRIPTDIR) > $(SCRIPTDIR_FILE))
+else ifneq ($(shell cat $(SCRIPTDIR_FILE)), $(SCRIPTDIR))
+$(shell echo $(SCRIPTDIR) > $(SCRIPTDIR_FILE))
+endif
+
+$(BUILD)/frozen.c: $(wildcard $(SCRIPTDIR)/*) $(SCRIPTDIR_FILE)
+ $(ECHO) "Generating $@"
+ $(Q)$(MAKE_FROZEN) $(SCRIPTDIR) > $@
+
.PHONY: deploy
deploy: $(BUILD)/firmware-combined.bin
diff --git a/esp8266/main.c b/esp8266/main.c
index 81618cd63f..59b415c1d9 100644
--- a/esp8266/main.c
+++ b/esp8266/main.c
@@ -32,6 +32,7 @@
#include "py/runtime0.h"
#include "py/runtime.h"
#include "py/stackctrl.h"
+#include "py/frozenmod.h"
#include "py/gc.h"
#include "pyexec.h"
#include "gccollect.h"
@@ -46,6 +47,10 @@ STATIC void mp_reset(void) {
mp_init();
mp_obj_list_init(mp_sys_path, 0);
mp_obj_list_init(mp_sys_argv, 0);
+#if MICROPY_MODULE_FROZEN
+ mp_lexer_t *lex = mp_find_frozen_module("main", 4);
+ mp_parse_compile_execute(lex, MP_PARSE_FILE_INPUT, mp_globals_get(), mp_locals_get());
+#endif
}
void soft_reset(void) {
diff --git a/esp8266/mpconfigport.h b/esp8266/mpconfigport.h
index cae5398f97..6d70c48e21 100644
--- a/esp8266/mpconfigport.h
+++ b/esp8266/mpconfigport.h
@@ -36,6 +36,7 @@
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_LONGLONG)
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE)
#define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_TERSE)
+#define MICROPY_MODULE_FROZEN (1)
// type definitions for the specific machine
diff --git a/esp8266/scripts/main.py b/esp8266/scripts/main.py
new file mode 100644
index 0000000000..83bc52a321
--- /dev/null
+++ b/esp8266/scripts/main.py
@@ -0,0 +1 @@
+# This script is run on boot