我在Micropython 1.9.3。我知道如何使用mpy-cross
将.py
转换为可由Micropython虚拟机执行的已编译python .mpy
。
问题是如果我尝试使用@micropython.native
进行编译,即将Python脚本编译为本机代码而不是字节码,我会收到错误:
../../mpy-cross/mpy-cross -o build/frozen_mpy/./frozentest.mpy -s frozentest.py frozentest.py
ValueError:只能保存字节码
在以下.py
@micropython.native
def native_add(a,b):
return (a+b)
c = native_add(2342,4542)
问题
是否无法以.mpy
格式嵌入本机代码?我在mpy-cross/mpconfigport.h
错过了一些选项吗?
我唯一改变的是:
#define MICROPY_EMIT_THUMB (0) // changed it to 1
答案 0 :(得分:1)
我从micropython forum上的某人那里得到了答案:
你做不到。这是一个TODO项目。如果你想把它放入闪存 内存,您可以将其作为冻结源代码嵌入某些端口。刚刚放 这些文件位于一个名为scripts的子目录中,如esp8266 / scripts或 STM32 /脚本。但它仍将在导入时编译 消耗RAM。通常,这不应该伤害,当这个变种 编码仅用于代码的小型,时间关键部分。