Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс янв 21, 2018 06:57

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Помогите найти хоть бы один кросс-компилятор, что ли?
СообщениеДобавлено: Вт сен 01, 2009 05:03 
Не в сети

Зарегистрирован: Сб авг 29, 2009 09:31
Сообщения: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Уважаемые товарищи!

Если так дальше пойдет, я скоро отчаюсь. :weep;

Посмотрел несколько вариантов ФОРТ для 51-х процессоров. По-видимому все они желают быть вписанными в собственно какой-нибудь 8051-й чип или ROM от него, и работать, осчастливливая пользователя уже оттуда.

Я бы предпочел кросс-компилятор. Или, так сказать, систему ФОРТ работающую на настольном компе, но генерирующую результирующий код для записи в микроконтроллер.

Я догадываюсь, что это, видимо, требует того чтобы основные слова в такой системе имели по два варианта. Нет, то есть по три, правильно? Для run-time, для compile-time на стороне хоста и для compile-time целевой системы. Но не думаю, чтобы это было необъезжаемой проблемой? Или как?

Я вообще что, в корне не прав в своем желании?

(а как вообще работать с некросс-компилируемым фортом в условиях возни с микроконтроллерами? прошить ядро форта в процессор, а потом по УАРТу залить в него программулину - при этом он должен будет еще перепрошить себя изнутри... amForth вроде что-то такое предлагал, но он не заработал, а разбираться пока руки не дошли...)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 05:23 
Не в сети

Зарегистрирован: Сб авг 29, 2009 09:31
Сообщения: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
(кстати, я эту тему хотел в разделе для новичков задать, но почему-то сюда попал, извините)

Второй вопрос: а вообще возможен ли полноценный ФОРТ в микроконтроллере где память программ и данных разделена, причем вторая имеет небольшой размер?

Ну то есть, я так понимаю, что нет проблемы в том, чтобы в микроконтроллере работала программулина, на протяжении всей своей жизни выполняющая уже скомпилированные слова, находящиеся в словаре, живущем тут же в памяти программ.

Но вот допустим кто-то сочинил программу, которая в ходе своей деятельности постоянно порождает новые словеса (ну, допустим, он предусмотрел необходимое периодическое очищение словаря от ненужных слов). Хотя впрочем... Я так понимаю, пусть они себе живут в памяти данных (тем более, что это, вероятно, слова имеющие к данным непосредственное отношение будут)... Главное чтобы ее хватало, хотя это уже проблема второстепенная. М-да. Вопроса, наверное, как такового нету...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 05:27 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
А смотрели ли ff303
Здесь можно найти оригинальную и модифицированную студию \ FIRMWARE STUDIO by Brad Eckert для ATMEGA128


И здесь ff303

В ней поддержаны и 51 и AVR и др. IDE и описание и ещё много всего и бесплатно и юзабельно.

P.S. Лично я с ней имел длительный опыт работы:)


Последний раз редактировалось Kopa Ср сен 02, 2009 21:52, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 05:46 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
RodionGork писал(а):
(кстати, я эту тему хотел в разделе для новичков задать, но почему-то сюда попал, извините)


Это более правильное место.

RodionGork писал(а):
(
Второй вопрос: а вообще возможен ли полноценный ФОРТ в микроконтроллере где память программ и данных разделена, причем вторая имеет небольшой размер?


Насколько полноцненный это требует уточнения или решения
из ресурсов МК чем можно пожертввовать. Общий ответ -Да


RodionGork писал(а):
Но вот допустим кто-то сочинил программу, которая в ходе своей деятельности постоянно порождает новые словеса (ну, допустим, он предусмотрел необходимое периодическое очищение словаря от ненужных слов). Хотя впрочем... Я так понимаю, пусть они себе живут в памяти данных (тем более, что это, вероятно, слова имеющие к данным непосредственное отношение будут)... Главное чтобы ее хватало, хотя это уже проблема второстепенная. М-да. Вопроса, наверное, как такового нету...


Вопрос похоже надуманный поэтому и непонятный.

На период отладки алгоритма контроллер вообще может
только работать в качестве транслятора команд скриптовой
Форт программы для внешней периферии. А дальше
всё равно прошивка программы будет, а также самопрограммирование Flash существует

P.S. c amForth iv_ru сам разбирается в рамках дипломного проекта задавая вопросы по необходимости ( если почитать топики ) Есть и ещё достойные решения, но с возможными
ограничениями реализации. Выбор за Вами
Удачи


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 06:07 
Не в сети

Зарегистрирован: Сб авг 29, 2009 09:31
Сообщения: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Забавно, кстати... Я как раз зашел сказать, что после унылого глядения на коммерческие проекты и на явно не работающий сайт tinyboot.com я, наконец, преодолел собственную тупость и на форуме нашел ссылку на живой дистрибутив как раз ff303.

От топиков уже голова кругом слегка. Да и компетенции мне не хватает. %)

Продолжаю разбираться.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 10:22 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
RodionGork писал(а):
Продолжаю разбираться.


вот ещё один подход, на целевой системе оставляют простейший монитор - http://pygmy.utoh.org/3ins4th.html - Михаил Максимов с таким баловался, ему можешь вопросы позадавать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 16:15 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2098
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
RodionGork писал(а):
Я бы предпочел кросс-компилятор. Или, так сказать, систему ФОРТ работающую на настольном компе, но генерирующую результирующий код для записи в микроконтроллер.

Я подобный сделал. Взять можно здесь http://www.chess2007.nm.ru/~chess.zip

_________________
С уважением, chess


Последний раз редактировалось chess Ср сен 02, 2009 07:37, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 20:19 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4840
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
по поводу ваших вопросов рекомендую дочитать содержимое статьи "Moving Forth" первую часть которой я перевел для форума, думаю у вас отпадет куча вопросов тем более, что в статье приводится и обосновывается разработка в том числе Форта под 51-ую машинку, о которой вы спрашивали. Тем более, что это классика.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 20:37 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4840
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
да, захотелось добавить насчет кросс-компиляции.
Обычно так не делают по очень простой причине - транслятор очень маленький, а все используемые при его создании слова везде широко используются. Таким образом от удаления кода пары примитивов выигрыша не наблюдается, а от убирания кода транслятора - исчезает возможность легко и оперативно вмешиваться в работу системы. Поэтому стоит хорошо подумать над необходимостью кросскомпиляции.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 21:08 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6148
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
mOleg писал(а):
Обычно так не делают по очень простой причине - транслятор очень маленький, а все используемые при его создании слова везде широко используются. Таким образом от удаления кода пары примитивов выигрыша не наблюдается, а от убирания кода транслятора - исчезает возможность легко и оперативно вмешиваться в работу системы. Поэтому стоит хорошо подумать над необходимостью кросскомпиляции.

В усредненной задаче для МК, тем более такого некрупного, как 8051, Форт как процесс, обрабатывающий входной поток в цикле, не нужен в 95% случаев. Разве что понадобится мощный терминал с возможностью настраиваемого обмена с хост-машиной. В то же время, возможность управлять размером/производительностью путем выбора нужной модели ШК (или переходом к машинному коду) может оказаться очень важной. Правда, тут из ШК подойдет какая-нибудь разновидность индексного с индексом размером в один байт, ради максимальной экономии памяти. И вот именно кросс-транслятор, хранящий заголовки словарных статей только на PC, а в МК отсылающий исключительно тела статей, т.е. только код, может очень даже пригодиться. По крайней мере, компактные приложения, управляющие периферией и что-нибудь снимающие/собирающие/упаковывающие/передающие, с кросс-трансляторами получаются достаточно хорошо.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 01, 2009 23:43 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
RodionGork писал(а):
Посмотрел несколько вариантов ФОРТ для 51-х процессоров.


Давным давно создал http://fpauk.narod.ru/spf51t.rar
сегодня попробовал, не запускается базовая Форт-система под winXP
Скрестил с системой под МСП получил:
http://www.easy-share.com/1907582759/spf51.7z
Генерятся листинг и 3 формата загрузочного модуля, т.ч.
все можно посмотреть.
Однако, я не знаю что собой должны представлять эти модули, для нормальной работы.
Контроллера с 8051 у меня нет, попробовать не могу. Если мне предоставить
листинг рабочего примера, я смогу создать рабочую программу.


RodionGork писал(а):
Для run-time, для compile-time на стороне хоста и для compile-time целевой системы.


Что-то не особо понял. Моя система работает в 2х режимах: целевой компиляции (ЦК) и
распределенная система.
ЦК - генерация модуля для загрузки в ПЗУ.
Распределенная система - это взаимодействие с удаленным контроллером по средствам УАРТа.
При этом память удаленного процессора представляется как виртуальная на хосте.

RodionGork писал(а):
на форуме нашел ссылку на живой дистрибутив как раз ff303.


Вещь мощная, но слишком мудреная. Если возникнут проблемы, вряд-ли кто-то что-то подскажет.
Я предлагаю доработать spf51.7z (совместными усилиями).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 02, 2009 03:38 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Mihail писал(а):
RodionGork писал(а):
на форуме нашел ссылку на живой дистрибутив как раз ff303.

Вещь мощная, но слишком мудреная. Если возникнут проблемы, вряд-ли кто-то что-то подскажет.
.


Меня спросите:)

P.S. Каким она переделкам подвергалась при переносе и добавлении возможностей можно сравнить с адаптацией для PDP-11 ( почти MSP430)
Есть немного "вольного" перевода документации.

Михаил. Варианты её использования или произвольной переработки со "скрещиванием" c другими Форт системами могут быть разные.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 02, 2009 07:36 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2098
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
Хищник писал(а):
По крайней мере, компактные приложения, управляющие периферией и что-нибудь снимающие/собирающие/упаковывающие/передающие, с кросс-трансляторами получаются достаточно хорошо.

Могу только сказать, что приложения могут быть любые, а не только перечисленные. Кросс-компилятор не накладывает каких-либо ограничений в этом плане.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 02, 2009 09:03 
Не в сети

Зарегистрирован: Сб авг 29, 2009 09:31
Сообщения: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Уважаемые товарищи, всем привет!

Отвечаю по порядку.

garbler: за ссылку спасибо. Ну да, это монитор. Транслятор к нему надо сочинять отдельно - кроме того для контроллеров с разделенными адресными пространствами надо еще что-то отдельное придумывать, либо виртуальное объединение адресных пространств, либо больше команд... ;-)

chess: тоже за ссылку спасибо, что-то с утра она у меня не открылась. На какой-то квип-видео с обломом вела. А сейчас чуть позже, вроде, открывается. Странно это все. %)
Что касаемо содержимого, будем разбираться, спасибо!

mOleg: статью почитаю, поскольку предоставленный любезно вами перевод первой ее части имел среди меня популярность и успех ;-) Что касаемо ваших доводов против кросс-компилятора, мой взгляд на это выразил товарищ Хищник в начале своего сообщения.
- встраивание интерфейса в контроллер похитит, я думаю, 4-8 килобайт памяти программ, не вполне ясное количество ОЗУ, ну и сам канал займет (хотя если он для работы с терминалом используется, это не так печально - а если, скажем, с модемом - уже нехорошо) - при этом если сама задача требует от контроллера такое же количество ресурсов (или даже меньшее - согласитесь, мелких задачек куча) - то это будет уже не очень приятно (ну, скажем, если себестоимость изделий изменится с $2 до $3 на партии в 1000 штук, уже задумчивость придет);
- с другой стороны обработка исходного текста на стороне хоста может осуществляться с произвольно высокой степенью комфорта, я полагаю, как раз в виду неограниченности ресурсов;
- необходимость вмешательства в работу системы - спорный аргумент; безусловно это хорошо при отладке (особенно если нет других средств) - впрочем если разработкой занимается не такой чайник, как, скажем, я, то он обычно делает меньше ошибок и принципиально готов порой жить вообще без отладки, или отлаживаться по миганию одного светодиода (если, опять же, речь идет о небольших задачах) - когда же процесс разработки считается завершенным, я думаю, любую возможность вмешательства разработчик заколотит большими гвоздями, если не будет иметь возможности удалить ее напрочь.

Хищник: вы вообще очень правильно отметили выгодные моменты которые можно получить на мелких процах; хотя цена на чипы зависит, как можно видеть, в том числе даже и от их популярности в народе, все таки с объемом набортной памяти она обычно коррелирует достаточно четко, а этот момент порой исключительно важен.

Mihail: ух, будем смотреть! Что касаемо запускания/незапускания - вот я б точно предпочел кросс-компилятор ФОРТа видеть написанным на Си, учитывая что если программист не совсем безнадежен, то добиться переносимости сишной консольной программулины (в мире настольных компьютеров а не МК) обычно несложно (без требования соединения с целевой системой, а просто преобразующий файл исходного текста в файл прошивки); в общем, по результатам посмотрения сообщу мысли дополнительно.

Chess: еще раз очень точно подмечено, что кросс-компилятор позволяет иметь большую свободу (хотя, как верно заметил mOleg, возможно за счет отказа от некоторых необязательных удобств).

с уважением,
Родион


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 02, 2009 09:11 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2098
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
RodionGork писал(а):
chess: тоже за ссылку спасибо, что-то с утра она у меня не открылась. На какой-то квип-видео с обломом вела. А сейчас чуть позже, вроде, открывается. Странно это все. %)

Там в конце ссылки на файл точка(.) стояла.

_________________
С уважением, chess


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

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


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

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


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

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