LuatOS и опыты над W806

Статьи камрада finskiy сподвигли меня приобрести сабжевый девайс и заняться его исследованием.
Общее впечатление — весьма неплохой и круто нафаршированный микроконтроллер за смешную цену, но с минимумом бэкграунда и примеров…

Дальнейшее углубление в тему вывело меня на другой девайс — Air103, распространенный среди китайских радиолюбителей. Уж не знаю, то ли его ядро на 100% идентично ядру W806, то ли только на 95%. Но факт есть факт — софт, наработанный китайцами для Air103 идет и на 806-м.
Air103 pinout
Следом за Air103 нагуглилось еще одно ключевое слово — LuatOS. Как несложно догадаться, это интерпретатор языка Lua, зашиваемый в микроконтроллер.
Был найден интересный сайт — wiki.luatos.com/ (сайт на китайском, но с помощью Хрома легко и без артефактов переводится на инглиш (можно и на русский, но я уже привык к технической литературе на высше-эльфийском).

Вот здесь можно скачать скомпилированный LuatOS для Air103 (в архиве — три варианта прошивки, но нам понадобится самая скромная, без сетевых приблуд, которых нет. А также там неплохой набор примеров на языке Lua — чего в нем только нет! И работа с криптографией, и многозадачность… В общем, намного больше, чем в сишном SDK.

Но я зашел с другого бока: выкачал с гита два проекта, сам LuatOS и файлы для сборки под Air101. У этой платы немного другой проц — он меньше по габаритам, имеет меньше выводов но зато содержит на борту в два раза больше флэша!

git clone https://gitee.com/openLuat/LuatOS.git
git clone https://gitee.com/openLuat/luatos-soc-air101.git

Далее установил xmake (https://github.com/xmake-io/xmake/releases), ну а 7-zip и так был установлен.
Залез в файл app/port/luat_conf_bsp.h второго проекта и поменял там значение air101 на air103.
Запустил сборку проекта из xmake (компилятор выкачался и установился автоматом), и через некоторое время получил ошибку — образ не влезает в имеющуюся в устройстве память! Аж 700+ кб перебор…
Стал разглядывать luat_conf_bsp.h пристальнее, вернул настройку на air101. Проект собрался и занял почти 1800 Кб. Нда…
Оказалось, что весь этот конфиг состоит из опций, и каждую можно отключить, закомментировав. Что я и сделал: накой мне, спрашивается, куча китайских шрифтов в прошивке или либка lvgl, предназначенная для рисования на пиксельных ЖК-дисплейчиках?
В общем, в несколько итераций удалось упихать интертрепатор в вожделенный мегабайт.
Собранная прошивка обнаружилась в папке build/out.

Следующим шагом надо выкачать прошивальщик: luatos.com/luatools/download/last
Он, как водится, полукитайский. Можно в опчиях выбрать английский язык, но все равно половина кнопок останется с иероглифами. Подозреваю, что хитрые азиаты делают это спецом, чтобы меньше бледнолицых составляло им конкуренцию на их собственном поле)
lua tool
Тут надо подоткнуть нашу плату, убедиться что порт определился, выбрать его, поставить нестандартное значение скорости — 921600, установить средний чекбокс с иегорлифами (как на картинке) и можно прошивать. Первая кнопка со стрелкой открывает окно прошивки только бинарника. Для прошивки бинарника необходимо нажать на кнопку сброса.

Вторая — окно прошивки бинарника и/или lua-кода. А вот скрипты заливаются уже без нажатия на сброс…

В верхнем поле — добавляется бинарник. В центре — добавляются скрипты верхней иероглифической кнопкой.
Ну а «Download only script» понятно и без перевода.
Зашил скрипт pwm/air101/main.lua — и вот плата медленно-медленно заморгала синим светодиодиком)