Среды разработки uLua
Работа с uLua Web IDE и uLua-Editor: подключение устройства, проверка кода, временный запуск, запись во флеш-память и диагностика.
Для uLua доступны две среды разработки: uLua Web
IDE в браузере и настольное приложение
uLua-Editor.
Обе среды компилируют исходный файл .lua, передают байткод в устройство через
USB CDC и позволяют управлять сохранённой программой. Прошивать микроконтроллер
для этого не нужно.
Для первой проверки используйте программу без работы с выходами:
return 1 + 2
После запуска устройство должно вернуть значение 3.
Что выбрать
| uLua Web IDE | uLua-Editor | |
|---|---|---|
| Начало работы | открыть сайт, установка не обязательна | скачать готовую сборку и запустить приложение |
| Интернет | нужен для компиляции и декомпиляции | после скачивания не нужен |
| Исходные файлы | черновик автоматически хранится в этом браузере | можно открывать и сохранять файлы .lua |
| Подключение к USB | выбрать устройство по кнопке «Подключить» | выбрать последовательный порт в поле «Порт» |
| Когда удобнее | быстрый запуск на совместимом компьютере | автономная работа, хранение исходников в файлах, браузер без Web Serial |


status: OK, payload: 3.Веб-IDE сохраняет черновик в текущем браузере. При очистке данных сайта он удаляется; в другом браузере или на другом компьютере он недоступен. Сохраните исходник в отдельный файл. В uLua-Editor для работы с файлами есть кнопки «Открыть», «Сохранить» и «Сохранить как».
Перед подключением
- Подключите к компьютеру одно устройство uLua напрямую по USB.
- Закройте
wdtmon3, другую IDE и терминалы, которые могут занимать тот же последовательный порт. Одновременно с портом работает только одна программа. - Отключите от выходов исполнительные цепи, если тестовый код может включить реле, Reset, Power или другую нагрузку.
- Если в устройстве уже есть нужная программа, сначала сохраните её исходник. Команда чтения восстанавливает приближённый код, исходный файл она не возвращает.
Назначение выводов и безопасный порядок подключения смотрите в руководстве своего устройства:
uLua Web IDE
- Откройте ulua.unitx.pro в браузере с поддержкой Web Serial.
- Нажмите «Подключить», выберите
uLua CDCи разрешите сайту доступ к порту. - Если программа уже выполняется, нажмите «Стоп».
- Введите код и нажмите «Скомпилировать». Эта команда проверяет и компилирует код без отправки в устройство.
- Нажмите «Скомпилировать и запустить». Программа выполнится без создания автозапуска. Результат и ошибки появятся в консоли.
- Для бесконечного цикла или другой долгой задачи используйте «Запустить фоном». Чтобы завершить её, нажмите «Стоп».
Когда программа проверена, нажмите «Записать». Команда сохраняет её во флеш-память, но не запускает сразу. Нажмите «Перезапустить» и убедитесь, что сохранённая программа начала работать. Кнопка «Статус» обновляет сведения о текущей и сохранённой программе.
Компиляция и декомпиляция в веб-IDE выполняются через сервис UnitX. Даже если установить сайт как приложение, для этих операций нужен доступ к интернету.
Готовый uLua-Editor
Скачайте сборку для своей системы из каталога uLua-Editor:
- в Windows распакуйте ZIP-архив и запустите приложение;
- в macOS откройте DMG и перенесите приложение в
Applications; - в Linux разрешите запуск файла AppImage как программы и откройте его.
Готовая сборка уже содержит редактор, компилятор и манифесты устройств. Python, средства сборки и исходники приложения устанавливать не нужно.
- Подключите устройство. Редактор обычно выбирает найденный порт
автоматически. Если устройств несколько, укажите нужный COM-порт или
/dev/ttyACM*в поле «Порт»; для повторного поиска нажмите «Обновить». - Используйте манифест своего устройства из комплекта редактора: он описывает доступный API. Меняйте поле «Манифест» только по инструкции для конкретной модели.
- Откройте файл
.luaили введите код и сохраните исходник. - Нажмите «Компиляция» или
Ctrl+B, чтобы проверить код без отправки. - Нажмите «Компиляция и отправка» или
F5, чтобы временно выполнить программу и дождаться результата. - Для долгой программы нажмите «Отсоединить». Редактор передаст код и сразу вернёт управление; остановить программу можно кнопкой «Стоп».
Для автозапуска нажмите «Сохранить во Flash» и подтвердите перезапись. Эта команда не запускает новый код немедленно. Нажмите «Перезапуск» и проверьте работу после перезагрузки устройства.
Поле «Таймаут (с)» задаёт время ожидания результата. Если программа должна завершиться, но ей не хватает этого времени, увеличьте таймаут. Для бесконечных циклов используйте «Отсоединить», а не большой таймаут.
Соответствие кнопок
| Действие | uLua Web IDE | uLua-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 |