chibios 1.2kb-5kb freertos 9kb-??? mrtos около 1kb rtos osa 0.2kb-0.8kb но не для stm32 я планирую потратить около 1кб-5кб на ядро. менее - не думаю что я сохраню рассудок, больше - задавит жаба подходит chibios и mrtos осталось узнать поддерживает ли кто-то из них что-то похожее на eval()
Комментарии: 113
Sergy
eval() ?
Defragmented
меня устроят любые варианты из этих. отбор по критериям которые мне важны - eval() и размер 1-5кб (10кб). из периферии мне интересны gpio, adc, таймеры, spi, i2c, uart возможность читать код из исходника (текст) и исполнять (байткод)
Sergy
приветствую в секте)
Roman
не надо использовать плагины
Sergy
какие плагины?)
Roman
ты еще не написал интерпретатор? для браузера
Defragmented
ну. я пишу свой для браузера. но к мк это не имеет отношения
Roman
не надо делать плагины для браузера. при eval ты открываешь дыру в безопасности пользователя
Defragmented
ваще пофиг. это очень удобно )
Roman
к тебе же и залезут в первую очередь
Defragmented
код локально исполняется у того кто открыл сайт. пускай себя и ломают ) на моем сервере только мой код исполняется
Nikolay
Принцип неуловимого Джо, не?
Roman
тем кто собирает инфу пофигу у кого эта инфа. весь вопрос в известных уязвимостях в 90х может и сидели хакиры, которые ломают сайт, этого давно нет, по сети шарятся алгоритмы которые снифят, чекают, долбят
Defragmented
валидные ссылки показывают полезную страницу невалидные ссылки генерируются на лету и показывают бред список ссылок не найдут )
Roman
задача получить доступ к машине, выпотрошить ее при необходимости либо использовать в своих целях. Машин миллиарды, сколько машин успешно пенетрейтнут тем больше профит. нахрена тебе это в браузере? Напиши стэндалон программу, и запускай сколько влезет
Defragmented
а зачем люди розовые дилдо печатают на 3д принтерах? весело жеж ну и по работе помогает. эдакий онлайн матлаб. показывать свои решения коллегам )
Roman
тебе тоже нужен калькулятор?
Defragmented
да
Roman
купи в магазине
Defragmented
онлайн калькулятор )
Roman
купи в интернет магазине
Defragmented
а ты хорош
Roman
отож
Anonim
Ну, так и скажи мол, мы сразу и поймем :) А то эвал поди угадай, что это... Наверняка уже есть А, вот дочитал :) МикроПитон это не интерпретатор случайно?
Sergy
да только он там целой средой ставиться на мк, по идее
Anonim
Поверх RTOS? Или вместо?
Sergy
вместо
Nikolay
Периферия к ОС вообще напрямую практически не относится.
Sergy
байткод или исполнять нативный код?
Defragmented
брать текст который я пишу и мигать светодиодом согласно тексту)
Sergy
в sata нельзя если есть на плате mPCI-e - то на него искать USB контроллер и колхозить прокладку шлейфов это уже называется интерпретатор lua или что-то подобное искать, реализацю для мк для ардуины что-то было, может получится утянуть
Anonim
Вообще-то это называется интерпретатор vs компилятор. Или я что-то не уловил?
Defragmented
ну, да я хочу интерпретатор для мк
Roman
интерпретатор чего на мк?
Anonim
Бейсика? :)
Sergy
если eval() то наверное JS
Defragmented
чего угодно пока ядро занимает порядка <1кб оперативки меня устроит нечто между асм и с
Sergy
asm, c - это уже ну обязательно интерпретатор
Roman
и компилятор в мк встроить
Sergy
можно как раньше в машинных кодах или asm кодить
Anonim
А так бывает??
Sergy
я ковырял q3wm но там в оригинале расход оперативки много для stm32, esp32 по идее можно разобраться как нативный код выполнять но тут уже повозиться с окружением для компилирования такого кода нужно будет и с загрузкой кода на исполнение разобраться
Roman
и редактор кода туда встроить
Anonim
IDE?
Roman
дыа на пк такое есть, надо и в мк запердолить
Anonim
Ну или jvm
Roman
нет
Defragmented
пока можно без этого )
Roman
надо меньше 1кб как диды делали
Sergy
тогда надо брать 8051
Defragmented
можно больше в флеш и можно держать весь интерпретатор в флеш и грузить его только когда новый код есть сколько минимум кб на самый тупой интерпретатор? 10кб? 100кб? любого языка который человек может читать
Sergy
оверлейный код - та же задача, что и это надо разобраться с этим)
Roman
если мк будет угадывать то, что хочет обезьяна - то одна функция random
Anonim
Commodore 64
Defragmented
можно для слегка обученной обезьяны решение взять
Roman
обученный мк будет хранить часто угадываемые решения
Defragmented
асм: помнить что символ + значит оп код 8487. и так все опкоды (100 байт?) помнить таблицу с названиями переменных (100 б?) помнить что функция это джамп в код и обратно (300б?) хотя бы это
Roman
любая операция с математикой это работа с памятью
Sergy
зачем? что за основная задача?
Defragmented
упрощение тулчейна с мк мне не нравится идея гонять код на 1 гб чтобы скомпилировать код на 1 кб ну и возможность быстро обновлять код для упрощения обучения
Sergy
упрощения не выйдет)
Roman
предлагаю тасовать двоичный код до получения нужного эффекта
Anonim
https://en.m.wikipedia.org/wiki/Commodore_BASIC
Defragmented
на 1 кб шанс получить нужный код 1е-2000 ) возьмем как решение для сравнения
Roman
нет, ты не понял. на мк функция random дает одни и те же результаты в зависимости от времени исполнения. То есть это псевдослучайность. Таким образом весь возможный сгенерированный код укладывается в одно число.
Defragmented
время генерации все еще 1е2000
Roman
все зависит от генератора кода, как ты будешь определять способ
Defragmented
ну хорошо думаю наши задачи совпадают. если кто-то из нас найдет решение - расскажет второму ) по любой метрике это больше времени существования вселенной )
Roman
это уменьшит время передачи на мк мне не понятно практическое применение
Defragmented
комбинация лени, рукожопства, излишней оптимизации, больших амбиций частый use case кстати
Roman
если у мк будет интерпретатор скриптов - то понадобится средство ввода этих скриптов. Тебе надо флешку с кодом?
Defragmented
ввод через светосенсор или микрофон. все продумано
Roman
чо бля ты собрался по ик передавать код для мк?
Defragmented
ну да. ты во мне сомневался? я могу написать подсчет контрольных сумм
Roman
интерпретация высокоуровнего языка на малом объеме озу, малом месте хранения основной программы. Интересная задача.
Defragmented
я уже согласен на асм с функциями. питон не обязательно
Roman
единственный путь оптимизации - это написать свой узкоспециализированный язык под задачи мало команд - мало памяти не надо упарываться в край либо жертвуешь память на читаемость кода и делаешь си-подобный синтаксис и пару тройку функций, либо дохера функций и нихера не читаемый код
Defragmented
сколько нужно оперативки на операнды (+-*), переменные, функции, простейшее управление памятью(массив), gpio\adc\api\usart\i2c команды, плюс интерпретатор всего этого?
Roman
сложно сказать. на парсер уйти может полкило это основа
Defragmented
можно разделить код на ядро + интерпретатор? чтобы он либо жрал текст и составлял программу, либо исполнял программу? и обе части в пределах 2 кб оперативки каждая
Roman
а) жрать текст и записывать последовательность выполнения функций в озу. б) выполнять на лету сразу функции ядра можно и так и так в первом случае можно отловить ошибки
Anonim
Велосипед уже изобрели. Можно расслабиться...
Defragmented
я думаю вариант а намного проще ну так дай название
Roman
он видимо про диалог
Anonim
См выше
Roman
бэйсик, фу
Anonim
Удовлетворяет все заявленные спецификации кроме 'фу'
Roman
foo
Anonim
Bar
Roman
не удовлетворяет условию: функциональное программирование у него же матлаб в мк нужно запихать видимо
Anonim
"С перламутровыми пуговицами"
Defragmented
ну тогда жс есть. 20кб оперативки https://jeelabs.org/book/1548e/index.html это верно. я сначала подумал что это шутка. поэтому и не стал смотреть но почитал сейчас - он делает все что я хочу. немного примитивен потому что функций нет. но пережить можно ну и читая про этот tiny basic и чудовищные методы оптимизации уже даже forth кажется неплохим вариантом
Anonim
Это просто направление, в котором нужно копать. Если ресурсы ограничены, то надо посмотреть, как это делалось на ограниченных ресурсах в прошлом.
Defragmented
понимаю. оооочень интересно. буду читать все связанное
Sergy
я все же доиграюсь с q3wm и надо будет аналогию сделать, более компактную. у меня больше вопросов вызывает кросскомпилятор gcc или llvm , для него надо бэкенд сделать для кастомной архитектуты в q3wm используется lcc 1. это чистый C, без C++ 2. у него лицензия некоммерческая)
Anonim
https://youtu.be/SrwlxcEZC4Q
Defragmented
я на самом деле очень доволен все мои обрывки идей типа посимвольного чтения и реакции на каждый символ уже реализованы и протестированы
Vladimir
ФОРТ
Defragmented
не могу найти сколько весит компилятор\ интерпретатор я писал на форт и он кажется слишком крутым. субрутины и прочие радости. в тайни бейсик их нет
Vladimir
Он как раз мизерный И расширяемый под любую задачу Главное на нем кроме логики ничего не писать
Vladimir
https://tuxotronic.org/post/mecrisp-forth/ compiletoflash compiletoram Усе есть Запись только наркоманская команд
Defragmented
It fits into 11 kb of flash or fram and runs with at least 512 bytes of ram отлично ничо, я уже привык. играл в игру где форт был основным языком
Vladimir
У него плюс в жуткой расширяемости
Vladimir
Очевидными областями применения этого языка являются встраиваемые системы управления. За счёт простоты транслятор, а зачастую и компилятор Форта легко реализуется для подавляющего числа микроконтроллеров, также используется как кросс-средство программирования.
Sergy
у меня желание получить байткодовую vm мелкую (единственный вариант для AVR) либо выполнение загружаемого из вне кода в RAM ( esp8266/esp32, stm32) для меня кажеться, что первое немного проще по изучению а задачи : для удалённых контроллеров, что бы не убить прошивку через OTA, либо кастомный код (игры, если делать игровую консольку, например)
Anonim
https://en.m.wikipedia.org/wiki/Tiny_BASIC
Sergy
человеки разные языки могут читать например, китайский правда не все его знают)
Defragmented
ну отлично. сделаем мк который исполняет китайский в команды
Roman
в языке общения могут быть конструкции, которые не являются командами выглядит как команда, пахнет как команда, но не команда
Sergy
от контекста зависит
Anonim
Остапа несло...(с)