Как вы компилируете код Lua на плате ESP8266? - PullRequest
0 голосов
/ 22 февраля 2019

В модуле node есть метод с именем compile, который компилирует код и создает файлы .lc.

Использую ли я такой инструмент, как nodemcu-tool, для подключения к плате через terminalпараметр и выполнить node.compile('myfile.lua') команды для создания .lc файлов?

Если init.lua скомпилирован как init.lc, то после сброса плата выполнит скомпилированный код?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Если init.lua скомпилировано как init.lc, то при сбросе плата выполнит скомпилированный код?

Да, согласно нашему FAQ

Обратите внимание, что если вы используете require("XXX") для загрузки своего кода, тогда будет автоматически выполняться поиск XXX.lc, а затем XXX.lua, поэтому вам не нужно включать условную логику для загрузки версии байт-кода, если она существует, с откатом к источнику.в противном случае версия.

Тем не менее, обратите внимание, что ваш init.lua, как ожидается, будет довольно небольшим с фактическим приложением, разбитым на отдельные файлы, загружаемые динамически.

(Как)Использую ли я такой инструмент, как nodemcu-tool, для подключения к плате через параметр terminal и выполнения команд node.compile('myfile.lua') для создания .lc файлов?

Согласно команде ссылка :

$ nodemcu-tool upload --port=/dev/ttyUSB0 myfile.lua --compile

0 голосов
/ 22 февраля 2019

Как вы компилируете код lua на плате ESP8266?

Это зависит от используемых вами инструментов.Рабочий процесс, который я бы использовал:

  1. Загрузка кода Lua в NodeMCU с помощью nodemcu-uploader
  2. Подключение к NodeMCU с помощью picocom
  3. Скомпилируйте файл, используяnode.compile()
  4. (необязательно) Загрузите файл еще раз, используя nodemcu-uploader

Различные инструменты могут незначительно изменить соответствующие шаги, но в целом идея останется прежней:

upload -> compile (-> download)

Если init.lua после сброса скомпилирован как init.lc, будет ли плата исполнять скомпилированный код?

Попробуйте;)

Если это не сработает, вы всегда можете просто написать одну строку init.lua, для которой требуется init.lc;не похоже, что это повлияет на вашу производительность после загрузки и запуска вашего чипа.

Или вы можете просто переименовать скомпилированный файл в init.lua, и он также должен работать.

Но имейте в виду, как сказано в документации:

[...] компиляция требует большого объема ОЗУ, и, следовательно, вы обнаружите, что вам нужно будет сломать ваше приложение [...]

...