Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс фев 28, 2021 07:17

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 82 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Пт фев 19, 2021 22:00 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 173
Откуда: Минск
Благодарил (а): 15 раз.
Поблагодарили: 1 раз.
Total Vacuum писал(а):
Hishnik писал(а):
Главное, чтобы потом можно было сделать DUP :))
:D Ха! При таком раскладе DUP должно удваивать сумму...
Стоило мне промазать... :)
Цитата:
Так что тут остается либо мириться с неудобством терминалов, либо изобретать какую-то более удобную альтернативу...
Увеличить скорость обмена до 460800, и написать свой НОРТОН, как в старые добрые времена! :)
Создать несколько дисков: ПЗУ, ОЗУ, Регистры, и т.п.
Но у меня F103, а там уже мало места: free
FLASH..TOTAL.REPORTED:.65536.USED:.42716.FREE:.22820
RAM....TOTAL..PRESET:...20000.USED:....772.FREE:.19228

Жду КИТ на F411, там уже можно будет, на 512К пробовать создать оболочку.
Как базовый будет H7, но это уже в готовые изделия - управление станками.

_________________
Сотник.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Пт фев 19, 2021 22:33 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7164
Благодарил (а): 18 раз.
Поблагодарили: 121 раз.
zma писал(а):
Как у Вас реализуется много поточность в Форте? Отдельный экземпляр системы на каждый поток или как-то по-другому? Если несколько экземпляров, то как они синхронизируются и обмениваются сообщениями?

В современных системах (и Qt, и Lazarus, на которых все пробовалось) есть библиотеки для поддержки потоков. В Lazarus 2.0, который вышел буквально полгода назад, неожиданно много хороших изменений. В частности, запуск нового потока делается очень просто, на уровне "указать адрес процедуры, которую надо запустить".
В приложении есть основной поток, который запускает N форт-машин. Каждая машина "упакована" в собственный экземпляр объекта TForth и при запуске потока начинает ждать заполнения Terminal Input Buffer и интерпретировать его по установке флага. В основном потоке происходит управление всеми виджетами с помощью достаточно разветвленного обработчика. Форт-потоки не могут напрямую получить объекты основной программы, там есть много нюансов с динамическим созданием объектов, как в Qt, так и в Lazarus. Поэтому в каждой форт-машине есть очередь сообщений, которые постоянно проверяются основным потоком. При наличии в какой-то очереди записи с полями ObjectType, ObjectIndex, MessageType и т.д. все это передается на соответствующий обработчик, который, к примеру, для кнопки с индексом 0 выполняет Show. Основной поток может напрямую работать с памятью форт-машин и стеком, поэтому сообщения вида "прочитать строку из поля ввода" вызывают также приостановку форт-машины с ожиданием сброса семафора, которое выполнится основным потоком после помещения содержимого запрашиваемого поля в память форт-машины. Соответственно, синхронизация выносится в сам обработчик сообщений, что дает возможность писать нечто вроде TEXTEDIT.GETINTEGER и забирать со стека целое число, соответствующее введенному тексту в поле на экране.

4 потока компилируются статически. Первые пробы с 16 потоками вполне ощутимо притормозили Core i7. Сейчас и 4 потока забирают дополнительные 25% процессора. Много там, в принципе, не нужно, отдельный поток пока видится для работы с UART, а там будет видно.



За это сообщение автора Hishnik поблагодарил: zma
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Сб фев 20, 2021 16:16 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 173
Откуда: Минск
Благодарил (а): 15 раз.
Поблагодарили: 1 раз.
(1) "Так что тут остается либо мириться с неудобством терминалов, ...

Это не для нас. Нас ждут великие дела!

(2) ...либо изобретать какую-то более удобную альтернативу..."

Даже если вас съели, всё равно у вас есть два выхода! :cry:

(3) "Увеличить скорость обмена до 460800, и написать свой НОРТОН, как в старые добрые времена!  "

Вспомнился "аля нортон" из SMAL32 Ларионова, вроде как аж от 1995 года.
Такой код для каждого камня придётся адаптировать свой
и тратить память камня, что для мелких может быть невозможно.

Ночь не спалось, всё снились пины, стеки, бабы, ROT, DUP и DROP - под утро озарило! :)

(4) Просто из буфера обмена отправить в порт.

nncron вполне справиться - надеюсь он у всех зависает и помогает
Вариант универсален для любых случаев и камней!

Два слова решат задачку.

- определить что в буфере обмена обновился текст, и начинается со строки: \ STM32F103 COM 5 115200 8N1
- передать содержимое буфера в "СОМ 5" порциями, ожидая ответ "ok."
Успеет ли интерпретатор "переварить" быстро переданную порцию?

Остаётся только выделить текст, и скопировать в буфер.

Прошу помощи сообщества, кто может для nncron накидать пару строк? :)

_________________
Сотник.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Вт фев 23, 2021 07:28 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1367
Благодарил (а): 3 раз.
Поблагодарили: 49 раз.
Two/three USB-to-serial bridges with build in Forth for STM32F103


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Вт фев 23, 2021 10:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7164
Благодарил (а): 18 раз.
Поблагодарили: 121 раз.
FT2232H - USB в 2 универсальных порта UART/SPI/JTAG/I2C
FT4232H - USB в 4 универсальных порта UART/SPI/JTAG/I2C

И в чем глубокий смысл "переписывания всего на Форте" с получением результата, который уже есть в готовом виде, только в случае Mecrisp оно проверено буквально на одном МК. Кроме того, в TODO стоит "to comply with USB specs". То есть оно, в случае чего, может быть отключено привередливым хостом из-за отказа отвечать на команду "усни"? Ну и вишенкой "Check and test max and min baudrates and data bits, parity and so on". То есть оно просто не проверено. А ситуация "заработало" это только первый лабораторный тест, и по сравнению с прогоном во всех режимах и с разными сочетаниями аппаратуры выглядит совершенно непривлекательно.

Да, STM-то код для VCP/HID/MassStorage генерирует из IDE для выбранного МК. Так что вообще непонятно, чего ради было время тратить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Ср фев 24, 2021 02:36 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 173
Откуда: Минск
Благодарил (а): 15 раз.
Поблагодарили: 1 раз.
Hishnik писал(а):
Если брать совсем широко, то вместо адаптации Форта под разные платы можно брать настроенную плату с готовым HAL от производителя и добавлять туда форт-машину.
https://sourceforge.net/p/mecrisp/discussion/general/thread/8b483ab971/#ef48

The beauty of the solution is that STM IDE can eb used to port to any supported STM board, including all F3, F4 and F7 processors.
Cube can be used to initialise all peripherals and resources, and mixed FORTH / C/ C++ solutions become possible.
This immediately opens up many new possibilities, including TCP/IP, IOT, Wireless and industrial products released recently.
The IDE and debugger are fully operational.

Прелесть решения в том, что STM IDE может использоваться для переноса на любую поддерживаемую плату STM, включая все процессоры F3, F4 и F7.
Cube можно использовать для инициализации всех периферийных устройств и ресурсов, и становятся возможными смешанные решения FORTH/C/C++.
Это сразу же открывает множество новых возможностей, включая TCP / IP, IOT, беспроводную связь и недавно выпущенные промышленные продукты.
IDE и отладчик полностью работоспособны.

_________________
Сотник.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Announcing Mecrisp-Stellaris for ARM Cortex M
СообщениеДобавлено: Ср фев 24, 2021 03:12 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7164
Благодарил (а): 18 раз.
Поблагодарили: 121 раз.
Я это себе немного не так вижу. Берем forth.h и подключаем к проекту. Становятся доступными слова ядра, доступ к стеку и памяти форт-машины, Evaluate(str), плюс возможность сделать обертки над функциями для работы с периферийным оборудованием. А заходить через какую-то систему, которую нужно специально адаптировать и запускать... ну, это сразу себя поставить в ситуацию "я очень люблю Форт и готов возиться с ним, даже если явно неудобно".


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

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

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