Иногда надо уместить программу на EEPROM, но она никак не хочет туда влезать.
Есть решение - карта данных любого уровня, может упаковывать и распаковывать программу, а код распаковки не занимает много места.
Благодаря алгоритму Deflate теперь есть где развернуться. Я наконец-то смог запрессовать свою копалку, даже без оптимизации кода, и еще свободное место осталось.
Требования:
Data-card любого уровня.
Интернет карта для установки программы.
Установка:
pastebin run KThbTuZr
или
wget https://raw.githubusercontent.com/zgyr/bpacker/master/installer.lua && installer && rm installer.lua
или
oppm register OpenPrograms/zgyr-Programs
oppm install bpacker
Использование:
bpacker [опции] <имя файла>
Опции:
-q тихий режим, не показываются статусные сообщения
-m минификация кода перед упаковкой (работает не всегда)
-l использовать алгоритм lzss (Data card не требуется)
-h справка
Программа сожмет указанный файл и запишет на EEPROM.
Код должен быть адаптирован для работы без OpenOS.
TODO:
Сделать упаковщик немного умнее. (сейчас код распаковки захардкожен, занимает лишние байты и может не работать в очень редких случаях)
Улучшить минификатор. (он лучший среди Lua-минификаторов, но иногда ломает код)
Ссылки:
Github программы.
Github минификатора.