Easyelectronics.ru

Электроника для всех
Текущее время: 29 сен 2020, 02:40

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 31 мар 2016, 19:24 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1589
Откуда: Киев
промежуточные размышления:

Буду загружать и хранить состояния FSM и переходы. Условия и действия - в шитом коде, предварительно оттранслированом на ПК. По сути - тот же форт, только без режима компиляции.
Триггеры (события) определены в "ядре" - таймеры, ошибки, температура

расходы оперативки:
на каждое состояние - 10 байт
на каждый переход по событию - 8 байт
на каждый переход по условию - 8 байт

плюс - общий пул байт-кода для всех состояний и условий. Условие типа T1<50.00 транслируется в 8 байт байт-кода

возможно еще общий пул строк для названий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 31 мар 2016, 19:45 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3459
Steel.ne писал(а):
Условие типа T1<50.00 транслируется в 8 байт байт-кода

это условие и без трансляции 8 байт занимает :)
почему бы просто интерпретатором не обойтись без трансляции в байткод?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 31 мар 2016, 19:53 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1589
Откуда: Киев
_pv писал(а):
Steel.ne писал(а):
Условие типа T1<50.00 транслируется в 8 байт байт-кода

это условие и без трансляции 8 байт занимает :)
почему бы просто интерпретатором не обойтись без трансляции в байткод?

а вот потому что интерпретатор байт-кода это тупой switch/case, помещается в десяток байт. А разбор выражения сколько займет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 31 мар 2016, 20:29 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3459
боитесь что флэш в первую очередь закончится? думаю зря.
ну и разбор такой строки тоже в основном swich/case, не особо умнее.
у спектрума в тех же 16к флэша вполне себе был нормальный интерпретатор бэйсика, и возможностей там было куда больше чем вам требуется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 31 мар 2016, 21:52 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:48
Сообщения: 3965
Откуда: Звенигород
Pingvin писал(а):
PRC писал(а):
Использовать принцип программирования как в калькуляторах, типа МК-34/54. Там и ветвления и переменные и кодом ничего нельзя испортить. И реализуется просто. Только добавить команды специфичные работе устройства, вроде считать температуру, включить лампочку.

Стек - не очень удобно, это надо следить при написании кода, где там в данный момент твоя переменная, на каком уровне?

Там и ячейки памяти были. Никто не мешает сделать команды, типа "0"="1"+"2". Где 0...2 номера ячеек памяти. Или "0">123. Каждая команда - 1 ячейка. Переход сразу проверяет условие и переходит на указанную ячейку.
Я имел в виду сам принцип написания управляющих скриптов. Такой скрипт и места мало займет и разбирать будет несложно.

_________________
От Парижа до Находки с водкой лучше, чем без водки!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 31 мар 2016, 23:54 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
Steel.ne, ещё моментик такой есть, если уж с КА связываться, что удобно обращаться с дискретными сигналами так же как с аналоговыми, а значением считать время с момента переключения.
Я делал например так, что при 0 на входе-выходе значение сигнала само бежало в минусовую сторону -1,-2 и т.д., а при 1 - в плюсовую.
Тогда без дополнительных таймеров упрощается отслеживание времянки дискретных сигналов - просто такое же сравнение с порогами как для аналоговых.

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 02:33 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1400
Steel.ne писал(а):
MrYuran писал(а):
Oставлю это здесь :)

не, форт у меня уже есть )

А в чём тогда "затык"?
Ресурсов в используемом камне и для нормального Форта не ахти как достаточно по каким то задачам.
Можно к Форту добавить необходимые ещё расширения (типа Бейсика), если в этом вопрос.

P.S. Есть ещё (среди всего многообразия решений Форт тематики) и такой например вариант F--
VFX Forth для STM32 неплох. (запускал на STM32L). Народ другие разные решения тоже применяет.
Что, кстати, у Вас от Форт реализации осталось и от чего отталкивались?


Последний раз редактировалось KPG 01 апр 2016, 03:16, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 02:58 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1400
Pingvin писал(а):
Стек - не очень удобно, это надо следить при написании кода, где там в данный момент твоя переменная, на каком уровне?

Мнение разработчиков и пользователей стековых языков учтено?
Обычно следить особо не зачем т.к. всё достаточно локально :)
а если есть необходимость в более глобальных переменных (указателей на ячейки памяти). то они и используются,
есть и именованные локальные переменные.
Если присутствует общая неуверенность (личностная) в использвании стека как элемента языка, то для контроля баланса стека
добавляются необходимые операторы в коде программы с каким то реагированием на "разбаланс".

P.S. Чем и как захотите, тем Форт и станет поменяв, при желании, и синтаксис с семантикой.
Надо FSM? Будет и FSM. Надо ООП? Никаких проблем. :)
Расширьте, наконец то, уж свой "кругозор" в этом вопросе.
Ресурс Rosetta Code, в какой то степени, для вариантов расширения шаблонов применимости разных языков в типовых примерах
ForthLogicprogramming.pdf Форт в ПЛК интересно введена многозадачность при обработке событий таймера без явного указания замкнутых программных циклов,
остальное в большей степени классика Forth-83 года (стандарт 94года побогаче будет) с 'пересказом" части книги Баранова,Ноздрунова "Язык Форт и его реализации"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 08:58 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1589
Откуда: Киев
_pv писал(а):
боитесь что флэш в первую очередь закончится? думаю зря.
ну и разбор такой строки тоже в основном swich/case, не особо умнее.
у спектрума в тех же 16к флэша вполне себе был нормальный интерпретатор бэйсика, и возможностей там было куда больше чем вам требуется.

логично. Давно с парсерами не сталкивался, освежил знания, не так все печально, как я думал. Какой-нить Recursive descent parser вполне справится, задержки у меня не сильно критичны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 09:57 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2795
Откуда: Санкт-Петербург
Ну да, помнится, с переменными и тернарной операцией получалось меньше 100 строк. Не 10 байт, конечно, но и не проблема.
Зато бонусом - сможете при необходимости поправить программу через терминалку.

Кстати, можете пойти по пути спектрума: выполнять лексический анализ (заменять слова на символы) при вводе кода, а собственно разбор уже делать при выполнении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 11:33 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
Всё это конечно весело и интересно - втащить форт или бейсик, или ещё какой-то интерпретатор, или какую-то виртуальную машину в 4+16К на F0 - и даже какой-то вызов, и спортивный интерес, это раззадоривает, это да )
Но есть одно объективное обстоятельство, которое портит всю малину - в любом случае, явное присутствие компа при программировании мк, с его безграничными возможностями, которые почти не используются, и соответсвенно осадочек, что можно было бы сделать гораздо больше )

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 11:56 
Старожил
Аватара пользователя

Зарегистрирован: 03 сен 2010, 22:46
Сообщения: 6095
Откуда: Москва
Обычно нет задачи "сделать больше", есть задача "сделать как нужно". А если нужно, чтобы изменения можно было вносить вообще без тулчейна на компьютере, альтернативы скриптовым языкам нет. Проблема в том, что платформа уже выбрана, и она выбрана явно не очень правильно - не соответствует задаче.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 12:48 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
Тулчейн то как раз проблемой не является, всё зависит от выбора этого самого тулчейна, он может быть и не намного больше по размерам чем терминалка, и не сложнее в установке

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 13:09 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3459
vt340 писал(а):
Тулчейн то как раз проблемой не является, всё зависит от выбора этого самого тулчейна, он может быть и не больше по размерам чем терминалка, и не сложнее в установке
... на какой-нибудь android или iOS, например. Его же наверняка кто-нибудь портирует и соберёт, правда?
Я понимаю что пример немного за уши притянутый, но всё же.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 13:18 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
Ну например, если вот прямо счас взять и сделать простейший тулчейн за минуту - то просто вытащить два файла из gcc - as и objcopy - вот и весь тулчейн, и так на любой платформе.
И заранее сразу отвечаю на след вопрос - нет, я не предлагаю писать программы на ассемблере )

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 14:11 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3459
и логику работы писать на ассемблере? в известное место такие безграничные возможности.
вот например надо взять и поправить пару параметров в логике работы устройства.
В случае со скриптом и терминалкой это можно сделать с любого устройства.
имея какой-нибудь телефон blackberry, соберёте под эту платформу тулчейн за минуту?

KPG писал(а):
Steel.ne писал(а):
не, форт у меня уже есть )

А в чём тогда "затык"?
в обратной польской нотации - потому что это онанизм какой-то.
интерпретатор brainfuckа кстати вообще без проблем влезет и тоже можно кругозор расширить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 14:26 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
_pv писал(а):
имея какой-нибудь телефон blackberry, соберёте под эту платформу тулчейн за минуту?

А след требование будет - стоя в гамаке? ))

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 14:47 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1400
_pv писал(а):
KPG писал(а):
Steel.ne писал(а):
не, форт у меня уже есть )

А в чём тогда "затык"?
в обратной польской нотации - потому что это онанизм какой-то.
интерпретатор brainfuckа кстати вообще без проблем влезет и тоже можно кругозор расширить.

Вопрос был к TC, но да ладно, ни разу не думал что Форт это польская нотация :) Это все ваши познания о Форт?
А русский язык к какой нотации можно отнести?
Всё дело, отчасти, в уже "настроенных" шаблонах понимания тех или иных вещей, не так ли?
Например в изначальном Фортране было так IF метка_меньше_нуля, метка_равно_нулю, метка_больше_нуля
+ вместо <= = > .GT .LE. и что это останавливало тогда программистов от написания кода. :)
В Форте, например, можно написать так 10 20 X WITHIN не вводя черезмерный синтаксический сахар.

Дам, на всякий случай ещё к ознакомлению один материал.
Слово о Форте. Попытка формализации сути языка :) Андрей Черезов 29.07.1999

P.S. На Форте, в частном порядке, и CAD системы для себя любимого делаются :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 14:57 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1400
Steel.ne писал(а):
_pv писал(а):
боитесь что флэш в первую очередь закончится? думаю зря.
ну и разбор такой строки тоже в основном swich/case, не особо умнее.
у спектрума в тех же 16к флэша вполне себе был нормальный интерпретатор бэйсика, и возможностей там было куда больше чем вам требуется.

логично. Давно с парсерами не сталкивался, освежил знания, не так все печально, как я думал. Какой-нить Recursive descent parser вполне справится, задержки у меня не сильно критичны.

Вот неплохой, один из многих, материал Популярные уроки компилятора построения Креншоу в Форт варианте
Есть и русский перевод оригинальных этих уроков в иллюстрации к языку Паскаль (ищется по "креншоу давайте создадим компилятор")
По мотивам этих материалов встречал такой проект D2Lang maual
Здесь в теме есть исходники этого проекта


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 15:20 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1589
Откуда: Киев
KPG писал(а):
Steel.ne писал(а):
MrYuran писал(а):
Oставлю это здесь :)

не, форт у меня уже есть )

А в чём тогда "затык"?


vt340 писал(а):
платформа уже выбрана, и она выбрана явно не очень правильно


Еще раз. Платформа изначально выбиралась с расчетом, что будет какой-то байткод. Сейчас сделал на форте. Отчасти из желания попробовать.

Наверняка есть какие-то другие виртуальные машины, стековые или нет, которые подходят для данной задачи. Или какой-то специфический язык описания FSM. Не знаю, поэтому и спросил.

Почему байт-код? Потому что в любом случае будет какой-то этап "компиляции". Схему конечного автомата можно нарисовать и в SFC и в UML, зачем все это добро тащить в контроллер. А раз все равно компилировать будем, почему бы и не байткод?

Был предложен классный вариант - хранить дерево состояний FSM, отлично, продумываю этот вариант.

Взять контроллер помощнее и запустить там lua? Хороший экстенсивный вариант. Но дороже контроллер и не так много преимуществ по сравнению в фортом. SFC все равно компилировать в lua.

И да, я знаю про ПЛК, про МЭК-языки и т.д. Оверкил для данной задачи.

Хочу отработать схему, когда алгоритм гарантированно не влезает целиком в контроллер и требуется стратегическое управление и тактическая автономность контроллера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 15:32 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1400
Steel.ne писал(а):
Хочу отработать схему, когда алгоритм гарантированно не влезает целиком в контроллер и требуется стратегическое управление и тактическая автономность контроллера.

Такую статью читали? ЭКОНОМИЧНЫЙ ИНТЕРПРЕТАТОР ДЛЯ УЗЛОВ СЕНСОРНОЙ СЕТИ Д.В.Рогозин 2006г


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 15:38 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
Steel.ne, с чего это вдруг вы мне чужие высказывания приписываете?
У меня нет привычки выдавать сентенции, что "правильно", а что "неправильно" )

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 15:44 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1589
Откуда: Киев
vt340 писал(а):
Steel.ne, с чего это вдруг вы мне чужие высказывания приписываете?
У меня нет привычки выдавать сентенции, что "правильно", а что "неправильно" )

странно, я ткнул кнопку "цитировать" и не правил автора.

Ага, нашел баг - выделил текст в одном сообщении, а кнопку "цитировать" ткнул ниже, а она от другого сообщения.


Вложения:
Capture.PNG
Capture.PNG [ 31.91 Кб | Просмотров: 2523 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 15:46 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1951
Ибо есть правила для выбора решений, но нет правил для выбора этих правил ))

_________________
mcu.goodboard.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скриптовый язык для МК
СообщениеДобавлено: 01 апр 2016, 15:51 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 1400
Два близких обсуждения на electronix не так давно.
Мини PLC (один из вариантов использовать Look up table)
Скрипты в микроконтроллере


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB