summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-01-31 22:16:41 +0000
committerDamien George <damien.p.george@gmail.com>2016-04-13 16:07:47 +0100
commitf9448ddc2c49d7cdaf7dee8ed5e88837e8964f05 (patch)
tree8a8d82158a8f4a23b76e183a461b7a70ebb41066
parent0a2e9650f5383bc1190d6b27a3d923e313c3d879 (diff)
downloadmicropython-f9448ddc2c49d7cdaf7dee8ed5e88837e8964f05.tar.gz
micropython-f9448ddc2c49d7cdaf7dee8ed5e88837e8964f05.zip
minimal: Add example of frozen persistent bytecode (.mpy file).
frozentest.py is frozen into the binary as frozen bytecode. The .mpy file is included so that there is no dependency on the cross compiler.
-rw-r--r--minimal/Makefile5
-rw-r--r--minimal/frozentest.mpybin0 -> 255 bytes
-rw-r--r--minimal/frozentest.py7
-rw-r--r--minimal/mpconfigport.h3
4 files changed, 14 insertions, 1 deletions
diff --git a/minimal/Makefile b/minimal/Makefile
index 3206a21214..457d63e31e 100644
--- a/minimal/Makefile
+++ b/minimal/Makefile
@@ -50,6 +50,7 @@ SRC_C = \
lib/utils/pyexec.c \
lib/libc/string0.c \
lib/mp-readline/readline.c \
+ $(BUILD)/_frozen_mpy.c \
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
@@ -59,6 +60,10 @@ else
all: $(BUILD)/firmware.elf
endif
+$(BUILD)/_frozen_mpy.c: frozentest.mpy
+ $(ECHO) "MISC freezing bytecode"
+ $(Q)../tools/mpy-tool.py -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h -mlongint-impl=none $^ > $@
+
$(BUILD)/firmware.elf: $(OBJ)
$(ECHO) "LINK $@"
$(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
diff --git a/minimal/frozentest.mpy b/minimal/frozentest.mpy
new file mode 100644
index 0000000000..c8345b1910
--- /dev/null
+++ b/minimal/frozentest.mpy
Binary files differ
diff --git a/minimal/frozentest.py b/minimal/frozentest.py
new file mode 100644
index 0000000000..0f99b74297
--- /dev/null
+++ b/minimal/frozentest.py
@@ -0,0 +1,7 @@
+print('uPy')
+print('a long string that is not interned')
+print('a string that has unicode αβγ chars')
+print(b'bytes 1234\x01')
+print(123456789)
+for i in range(4):
+ print(i)
diff --git a/minimal/mpconfigport.h b/minimal/mpconfigport.h
index 95e216b129..c8f9838650 100644
--- a/minimal/mpconfigport.h
+++ b/minimal/mpconfigport.h
@@ -3,6 +3,7 @@
// options to control how Micro Python is built
#define MICROPY_QSTR_BYTES_IN_HASH (1)
+#define MICROPY_QSTR_EXTRA_POOL mp_qstr_frozen_const_pool
#define MICROPY_ALLOC_PATH_MAX (256)
#define MICROPY_ALLOC_PARSE_CHUNK_INIT (16)
#define MICROPY_EMIT_X64 (0)
@@ -43,7 +44,7 @@
#define MICROPY_PY_IO (0)
#define MICROPY_PY_STRUCT (0)
#define MICROPY_PY_SYS (0)
-#define MICROPY_MODULE_FROZEN (0)
+#define MICROPY_MODULE_FROZEN_MPY (1)
#define MICROPY_CPYTHON_COMPAT (0)
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE)
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE)