Forth http://fforum.winglion.ru/ |
|
Помогите найти хоть бы один кросс-компилятор, что ли? http://fforum.winglion.ru/viewtopic.php?f=39&t=2268 |
Страница 2 из 4 |
Автор: | Hishnik [ Ср сен 02, 2009 12:24 ] |
Заголовок сообщения: | |
chess писал(а): Хищник писал(а):
По крайней мере, компактные приложения, управляющие периферией и что-нибудь снимающие/собирающие/упаковывающие/передающие, с кросс-трансляторами получаются достаточно хорошо. Могу только сказать, что приложения могут быть любые, а не только перечисленные. Кросс-компилятор не накладывает каких-либо ограничений в этом плане. Приложения-то, конечно, могут быть любые. Но вот именно перечисленные получаются вполне эффективными, если создавать их с помощью кросс-компилятора, который не тащит за собой в целевую систему лишний код. |
Автор: | chess [ Ср сен 02, 2009 12:40 ] |
Заголовок сообщения: | |
Хищник писал(а): Приложения-то, конечно, могут быть любые. Но вот именно перечисленные получаются вполне эффективными, если создавать их с помощью кросс-компилятора, который не тащит за собой в целевую систему лишний код.
Еще раз - в другой формулировке. Не вижу разницы перечисленных и всех остальных приложений с точки зрения эффективности. |
Автор: | Hishnik [ Ср сен 02, 2009 12:51 ] |
Заголовок сообщения: | |
chess писал(а): Еще раз - в другой формулировке. Не вижу разницы перечисленных и всех остальных приложений с точки зрения эффективности.
Очень просто. Допустим, Форт в МК занимает 500 байт. Тогда для прикладной программы размером 500 байт придется выделить 1000, и 50% памяти занято не задачей, а чем-то еще (что вполне можно было выполнять на хост-машине). Если задача занимает 4500 байт, то посторонний код занимает уже только 10%. Для дешевых МК это может оказаться важным, тем более что "памяти никогда много не бывает", и вынужденный переход к более дорогому МК только из-за того, что в его памяти болтается лишний код, положенный туда "по религиозным соображениям", воспримется очень негативно. А вот для более емких лишняя функциональность вполне может оказать положительный эффект, поскольку большая и сложная задача влечет за собой не только сложную отладку, но и, возможно, более сложный порядок эксплуатации - загрузка настроек, управление режимами, диагностику с помощью загружаемых скриптов (которые в изначально реализованном коде отсутствовали). |
Автор: | chess [ Ср сен 02, 2009 13:03 ] |
Заголовок сообщения: | |
Хищник писал(а): Очень просто. Допустим, Форт в МК занимает 500 байт.
А, понятно. Я же со своей колокольни гляжу. У меня нет Форта в памяти МК(так работает кросс-компилятор). То есть, если в программе для МК нет DUP, то и в ПЗУ МК не будет DUP. |
Автор: | Kopa [ Ср сен 02, 2009 13:41 ] |
Заголовок сообщения: | |
Хищник писал(а): ... перечисленные получаются вполне эффективными, если создавать их с помощью кросс-компилятора, который не тащит за собой в целевую систему лишний код.
Кросс-компилятор может тащить за собой любой код т.к. это зависит от реализации кросс-компилятора. P.S. Хищник, chess и др. просьба для споров "методологического" плана создать отдельный топик , правильно его назвать и перенести туда последние сообщения, чтобы не "разбух" топик |
Автор: | Hishnik [ Ср сен 02, 2009 13:51 ] |
Заголовок сообщения: | |
Kopa писал(а): Кросс-компилятор может тащить за собой любой код т.к. это зависит от реализации кросс-компилятора. Но мы-то и говорим о том, какой конкретно код и в каком составе надо компилировать в память МК. Kopa писал(а): P.S. Хищник, chess и др. просьба для споров "методологического" плана создать отдельный топик
, правильно его назвать и перенести туда последние сообщения, чтобы не "разбух" топик А почему наши сообщения не на месте? Речь идет о кросс-компиляторе для 8051 и других некрупных МК. Мы обсуждаем, что будет для него полезнее, в контексте более ранних сообщений. |
Автор: | Kopa [ Ср сен 02, 2009 14:25 ] |
Заголовок сообщения: | |
Хищник писал(а): А почему наши сообщения не на месте? Речь идет о кросс-компиляторе для 8051 и других некрупных МК. Мы обсуждаем, что будет для него полезнее, в контексте более ранних сообщений.
Ключевое слово в названии топика найти , При описании характеристик конкретного кросс-компилятора можно приводить его отличия. P.S. Не думаю, что автор топика хочет получить "абстрактное" видение идеального Форт кросс-компилятора. Требуется выбор конкретной "удочки":) |
Автор: | diver [ Ср сен 02, 2009 22:15 ] |
Заголовок сообщения: | |
RodionGork, попробуйте SwiftX или ByteForth для 51-го. подойдёт под любой чип из семейства, ну...практически. объема допустимого кода в демо версии может для небольшой задачи хватить. Со SwiftX-ом проблема объема кода в демо версии решаема |
Автор: | mOleg [ Ср сен 02, 2009 22:26 ] |
Заголовок сообщения: | |
RodionGork писал(а): mOleg: статью почитаю, поскольку предоставленный любезно вами перевод первой ее части имел среди меня популярность и успех Что касаемо ваших доводов против кросс-компилятора, мой взгляд на это выразил товарищ Хищник в начале своего сообщения. это не доводы против, а доводы за, кстати, http://www.wl.unn.ru/lab/Portals/0/Ragozin.pdf кажется в этой презинтации был Форт с транслятором в ~ 500 байт кода. С другой стороны можно глянуть с сторону Color Forth (только не на интерфейс, а на внутреннее устройство), и еще где-то (сейчас не смогу найти быстро) было описание того как можно транслировать предварительно обработанный код. То есть транслируются не строки, а последовательности чисел(токенов). Короче, транслятор текста вообще может быть очень маленьким. RodionGork писал(а): - встраивание интерфейса в контроллер похитит, я думаю, 4-8 килобайт памяти программ, не вполне ясное количество ОЗУ, ну и сам канал займет (хотя если он для работы с терминалом используется, это не так печально - а если, скажем, с модемом - уже нехорошо) - при этом если сама задача требует от контроллера такое же количество ресурсов (или даже меньшее - согласитесь, мелких задачек куча) - то это будет уже не очень приятно (ну, скажем, если себестоимость изделий изменится с $2 до $3 на партии в 1000 штук, уже задумчивость придет);
вот эти ваши прикидки сомнительны. Для 16-битного Форта в такой объем памяти можно вместить значительно больше функциональности. Собственно сам транслятор - это приблизительно такой код: : INTERPRET ( --> ) BEGIN NextWord *WHILE EVAL-TOKEN ?STACK REPEAT DDROP ; вот NextWord может брать из канала всего одно число (а не работать со стоками) а EvalToken искать это число (ХЭШ к примеру) в односвязном списке или в таблице. Вопрос в том, сколько у вас на МК будет слов без транслятора (может оказаться что транслятор вам вообще ничего не стоит - 20 байт памяти вобщем тут можно подходить очень творчески. А выигрыш идет в простоте реализации системы и расширении ее потенциальных возможностей. С другой стороны, turnkey не так просто сделать, и более сложный код - это потенциальное место для ошибок. |
Автор: | Kopa [ Ср сен 02, 2009 22:37 ] |
Заголовок сообщения: | |
RodionGork писал(а): Посмотрел несколько вариантов ФОРТ для 51-х процессоров.
Можете перечислить какие? ( возможно какие то пропустили ) тогда можно подсказать какие ещё сущетвуют и выложить архивы проектов, для рассмотрения, с переставших существовать сайтов . P.S. Одна из реализаций на С для 51 ядра Форта CalForth v1.3 Jan 02 2006 |
Автор: | Mihail [ Ср сен 02, 2009 23:55 ] |
Заголовок сообщения: | |
RodionGork писал(а): Что касаемо запускания/незапускания Подозреваю, что ты меня неправильно понял. В общем, про версию с модулем не запускающимся под winXP, можно забыть. Однако, его можно использовать в качестве прототипа, что я и сделал. С Фортом вообще, никаких проблем. Проблема только с целевым процессором. Деле в том, что мне лень искать для него документацию тем более, что я вряд-ли его буду использовать. Я бы хотел иметь результат компиляции простенькой программы для 8051 (эхо по УАРТу) хоть на Си хоть на ассемблере. Я произведу компиляцию этого-же модуля но средствами Форта. RodionGork писал(а): вот я б точно предпочел кросс-компилятор ФОРТа видеть написанным на Си,
Не вижу смысла в чистом кросс-компиляторе ФОРТа. Дело в том, что в качестве кросс-компилятора можно использовать любую форт-систему (не важно на чем написанную). ff303 использует WIN32FOR я СПФ. Вообще форт-системы на си есть GFORTH PFE FICL, но они общего назначения. Могу свой кросс-компилятор адаптировать под один из них. |
Автор: | Hishnik [ Чт сен 03, 2009 00:16 ] |
Заголовок сообщения: | |
Mihail писал(а): RodionGork писал(а):
вот я б точно предпочел кросс-компилятор ФОРТа видеть написанным на Си, Не вижу смысла в чистом кросс-компиляторе ФОРТа. А RodionGork - видит, и имеет на это полное право. Кому потом работать-то? Кросс-компилятор Форта вполне может быть написан на Си, тем более что для решения задачи преимущественно кросс-компиляции он даже не должен быть полнофункциональным. |
Автор: | Mihail [ Чт сен 03, 2009 11:17 ] |
Заголовок сообщения: | |
Хищник писал(а): Кросс-компилятор Форта вполне может быть написан на Си, тем более что для решения задачи преимущественно кросс-компиляции он даже не должен быть полнофункциональным.
Что значит не полнофункциональным? Форт не может быть не полнофункциональным. Иначе, это не Форт вообще. Смысл Форта в неограниченной саморасширяемости. |
Автор: | MrYuran [ Чт сен 03, 2009 20:15 ] |
Заголовок сообщения: | |
RodionGork писал(а): Уважаемые товарищи!
Если так дальше пойдет, я скоро отчаюсь. weep Спокойствие! Скоро я завяжу с датчиком Mettler Toledo и опять вернусь к форту. Попробую расколупать вариант Михаила. (Хотя бы запустить! ) |
Автор: | Kopa [ Вс сен 13, 2009 11:51 ] |
Заголовок сообщения: | |
Ещё можно рассмотреть, как вариант, ( сделан для 68С12 ) WHYP Состоит из двух частей: Host части на С++ и поддержки Target рантайм (125 слов ~ 2Кб ) |
Страница 2 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |