Micropython 1.9.3 - Как скомпилировать.py @micropython.native код в.mpy?
Я нахожусь на Micropython 1.9.3. Я умею пользоваться mpy-cross
повернуть .py
в скомпилированный питон .mpy
это может быть выполнено виртуальной машиной Micropython.
Проблема в том, что если я пытаюсь скомпилировать с помощью @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
1 ответ
Я получил ответ от кого-то на форуме micropython:
Ты не можешь. Это предмет TODO. Если вы хотите поместить его во флэш-память, вы можете встроить его в виде замороженного исходного кода в некоторые порты. Просто поместите эти файлы в подкаталог, называемый scripts, например esp8266/scripts или stm32/scripts. Но он все равно будет компилироваться во время импорта и потреблять оперативную память. Как правило, это не должно повредить, когда этот вариант кодирования используется только для небольших, критичных ко времени участков кода.