Перейти к содержанию
Материалы раздела

Среды разработки uLua

Работа с uLua Web IDE и uLua-Editor: подключение устройства, проверка кода, временный запуск, запись во флеш-память и диагностика.

Для uLua доступны две среды разработки: uLua Web IDE в браузере и настольное приложение uLua-Editor. Обе среды компилируют исходный файл .lua, передают байткод в устройство через USB CDC и позволяют управлять сохранённой программой. Прошивать микроконтроллер для этого не нужно.

Для первой проверки используйте программу без работы с выходами:

return 1 + 2

После запуска устройство должно вернуть значение 3.

Что выбрать

uLua Web IDEuLua-Editor
Начало работыоткрыть сайт, установка не обязательнаскачать готовую сборку и запустить приложение
Интернетнужен для компиляции и декомпиляциипосле скачивания не нужен
Исходные файлычерновик автоматически хранится в этом браузереможно открывать и сохранять файлы .lua
Подключение к USBвыбрать устройство по кнопке «Подключить»выбрать последовательный порт в поле «Порт»
Когда удобнеебыстрый запуск на совместимом компьютереавтономная работа, хранение исходников в файлах, браузер без Web Serial

Веб-IDE сохраняет черновик в текущем браузере. При очистке данных сайта он удаляется; в другом браузере или на другом компьютере он недоступен. Сохраните исходник в отдельный файл. В uLua-Editor для работы с файлами есть кнопки «Открыть», «Сохранить» и «Сохранить как».

Перед подключением

  1. Подключите к компьютеру одно устройство uLua напрямую по USB.
  2. Закройте wdtmon3, другую IDE и терминалы, которые могут занимать тот же последовательный порт. Одновременно с портом работает только одна программа.
  3. Отключите от выходов исполнительные цепи, если тестовый код может включить реле, Reset, Power или другую нагрузку.
  4. Если в устройстве уже есть нужная программа, сначала сохраните её исходник. Команда чтения восстанавливает приближённый код, исходный файл она не возвращает.

Назначение выводов и безопасный порядок подключения смотрите в руководстве своего устройства:

uLua Web IDE

  1. Откройте ulua.unitx.pro в браузере с поддержкой Web Serial.
  2. Нажмите «Подключить», выберите uLua CDC и разрешите сайту доступ к порту.
  3. Если программа уже выполняется, нажмите «Стоп».
  4. Введите код и нажмите «Скомпилировать». Эта команда проверяет и компилирует код без отправки в устройство.
  5. Нажмите «Скомпилировать и запустить». Программа выполнится без создания автозапуска. Результат и ошибки появятся в консоли.
  6. Для бесконечного цикла или другой долгой задачи используйте «Запустить фоном». Чтобы завершить её, нажмите «Стоп».

Когда программа проверена, нажмите «Записать». Команда сохраняет её во флеш-память, но не запускает сразу. Нажмите «Перезапустить» и убедитесь, что сохранённая программа начала работать. Кнопка «Статус» обновляет сведения о текущей и сохранённой программе.

Компиляция и декомпиляция в веб-IDE выполняются через сервис UnitX. Даже если установить сайт как приложение, для этих операций нужен доступ к интернету.

Готовый uLua-Editor

Скачайте сборку для своей системы из каталога uLua-Editor:

  • в Windows распакуйте ZIP-архив и запустите приложение;
  • в macOS откройте DMG и перенесите приложение в Applications;
  • в Linux разрешите запуск файла AppImage как программы и откройте его.

Готовая сборка уже содержит редактор, компилятор и манифесты устройств. Python, средства сборки и исходники приложения устанавливать не нужно.

  1. Подключите устройство. Редактор обычно выбирает найденный порт автоматически. Если устройств несколько, укажите нужный COM-порт или /dev/ttyACM* в поле «Порт»; для повторного поиска нажмите «Обновить».
  2. Используйте манифест своего устройства из комплекта редактора: он описывает доступный API. Меняйте поле «Манифест» только по инструкции для конкретной модели.
  3. Откройте файл .lua или введите код и сохраните исходник.
  4. Нажмите «Компиляция» или Ctrl+B, чтобы проверить код без отправки.
  5. Нажмите «Компиляция и отправка» или F5, чтобы временно выполнить программу и дождаться результата.
  6. Для долгой программы нажмите «Отсоединить». Редактор передаст код и сразу вернёт управление; остановить программу можно кнопкой «Стоп».

Для автозапуска нажмите «Сохранить во Flash» и подтвердите перезапись. Эта команда не запускает новый код немедленно. Нажмите «Перезапуск» и проверьте работу после перезагрузки устройства.

Поле «Таймаут (с)» задаёт время ожидания результата. Если программа должна завершиться, но ей не хватает этого времени, увеличьте таймаут. Для бесконечных циклов используйте «Отсоединить», а не большой таймаут.

Соответствие кнопок

ДействиеuLua Web IDEuLua-Editor
Выбрать порт«Подключить»поле «Порт» и «Обновить»
Только проверить код«Скомпилировать»«Компиляция» (Ctrl+B)
Временно запустить и ждать результат«Скомпилировать и запустить»«Компиляция и отправка» (F5)
Запустить долгую программу«Запустить фоном»«Отсоединить»
Остановить программу«Стоп»«Стоп»
Сохранить для автозапуска«Записать»«Сохранить во Flash»
Прочитать сохранённый код«Прочитать»«Прочитать»
Удалить сохранённый код«Очистить сохраненный код»«Очистить»
Запретить обычное чтение«Защитить сохраненный код»«Защитить»
Перезагрузить устройство«Перезапустить»«Перезапуск»
Обновить статистику«Статус»отдельной кнопки нет

Временный запуск и автозапуск

ОперацияЧто происходит
Только компиляцияисходный текст проверяется и преобразуется в байткод без отправки в устройство
Временный запусккод выполняется сейчас, но не становится программой автозапуска
Запись во флеш-памятькод сохраняется для следующего включения или перезапуска, но сразу не запускается
Перезапусктекущая программа останавливается, затем запускается сохранённый код

Байткод размером до 250 байт выполняется из оперативной памяти. Для временного запуска байткода размером от 251 до 2048 байт устройство использует ту же область флеш-памяти, что и автозапуск, поэтому IDE может потребовать сначала очистить сохранённую программу.

Чтение и защита программы

«Прочитать» получает сохранённый байткод, декомпилирует его и предлагает заменить текст в редакторе. Комментарии, форматирование и первоначальные имена переменных и функций не восстанавливаются. Перед чтением сохраните текущий исходник, чтобы случайно его не заменить.

«Защитить сохраненный код» в веб-IDE и «Защитить» в настольном редакторе запрещают обычное чтение текущей сохранённой программы через IDE и API. Для этого байткода защита необратима. Сначала сохраните исходный файл и убедитесь, что резервная копия открывается. Это не защита от аппаратной отладки через SWD.

Если что-то не работает

ПроблемаЧто проверить
Устройство отсутствует в спискеUSB-кабель, прямое подключение без хаба, кнопку «Обновить» в настольном редакторе и CDC-драйвер или права доступа
Порт занят или не открываетсязакройте wdtmon3, вторую IDE и последовательный терминал, затем переподключите USB
Браузер не поддерживает Web Serialоткройте веб-IDE в поддерживаемом браузере или используйте готовый uLua-Editor
Веб-компиляция или чтение не завершаетсяпроверьте доступ к интернету и повторите операцию
Нет конечного ответа от долгой программыостановите её и запустите через «Запустить фоном» или «Отсоединить»
Редактор сообщает о несовместимом ABI или манифестескачайте актуальную готовую сборку редактора и проверьте поддержку прошивки устройства; если ошибка осталась, обратитесь в поддержку и не подменяйте манифест от другой модели
Linux сообщает GLIBC_… not foundготовая сборка не совместима с системными библиотеками; используйте веб-IDE или сборку для своей версии Linux