3

我在Micropython 1.9.3上。我知道如何使用mpy-cross将 a.py变成.mpy可以由 Micropython 虚拟机执行的编译 python。

问题是,如果我尝试使用@micropython.nativeie 将 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

4

1 回答 1

1

我从micropython 论坛上的某个人那里得到了答案:

你不能。它是一个 TODO 项目。如果要将其放入闪存中,可以将其作为冻结源代码嵌入到某些端口中。只需将这些文件放在名为 scripts 的子目录中,例如 esp8266/scripts 或 stm32/scripts。但它仍然会在导入时编译并消耗 RAM。通常,当这种编码变体仅用于代码的小的、时间关键的部分时,这不应该受到伤害。

于 2017-11-06T15:55:12.577 回答