Forth
http://fforum.winglion.ru/

Embedded Forth ( встраивание Форта в Си )
http://fforum.winglion.ru/viewtopic.php?f=39&t=2153
Страница 2 из 5

Автор:  Mihail [ Вт июн 23, 2009 18:21 ]
Заголовок сообщения: 

MrYuran писал(а):
Почему нельзя было сразу MOV @IP+,PC


Вполне можно. Это будет прямой шитый код.
Зачем в camel430-0.3 использовался косвенный шитый код, я тоже не понимаю.
Однако, пеобразование косвенного шитого кода в прямой не ограничивается данной
заменой. На пример, поле DOCODE нужно будет вообще удалить, т.е. исползовать
для примитивов другой макрос в замен HEADER.

Автор:  Mihail [ Вт июн 23, 2009 20:45 ]
Заголовок сообщения: 

MrYuran писал(а):
Mihail писал(а):
4. запустить TST.BAT затем компиляцию IAR
и снова TST.BAT затем компиляцию IAR .

А почему такие сложности?


Это чтобы ссылки правильно установились. У меня дополнительные запуски больших проблем не вызавают

MrYuran писал(а):
И можно ли вообще без ИАРа обойтись, средствами одного форта?


Ну вот подготовил версию без ИАРа http://www.easy-share.com/1906072489/SPMFOR.2.7z
При запуске TST.BAT создается готовый для прошивки модуль - f.txt (формат понятен MSPFET).
Еще доделан дизассемблер и внедрен инлайн-подстановщик.
ИАР я использую ради использования его средств отладки и примеры почти всегда на Си.

MrYuran писал(а):
встроить форт-движок в си, не используя никакого форта.


Зачем?

Гость писал(а):
Mihail писал(а):

Может приделаю оптимизатор.

Какие возможны варианты?


В SPMFOR.2.7z пустой оптимизатор.
Чтобы оптимизатор заработал в TOPT-RULES нужно прописать правила.

Автор:  mOleg [ Вт июн 23, 2009 22:13 ]
Заголовок сообщения: 

MrYuran писал(а):
Зачем нужна первая строчка?
Или вторая?

это и есть интерпретатор шитого кода.

MrYuran писал(а):
Почему нельзя было сразу MOV @IP+,PC

потому что иногда нужно иметь представление о том, откуда вызывается слово (тут надо вас отправить читать статьи по устройству косвенного шитого кода, например, MOVING FORTH)

MrYuran писал(а):
И вообще, эта штука в конце каждого слова стоит. Оверхэд-то какой!

:)) :)) :)) :))
это бывает, работает быстрее, чем пара call + ret

Автор:  mOleg [ Вт июн 23, 2009 22:15 ]
Заголовок сообщения: 

Mihail писал(а):
Вполне можно. Это будет прямой шитый код.
Зачем в camel430-0.3 использовался косвенный шитый код, я тоже не понимаю.

Михаил, потому что классическим для Форта считается именно ITC а прямой ШК это уже вариация на тему оптимизации скорости.

Автор:  Hishnik [ Вт июн 23, 2009 22:38 ]
Заголовок сообщения: 

Есть ли в Форте классика? Использовать можно любой тип ШК, в зависимости от требований к реализации. Лично мне на сегодня видятся актуальными либо машинный код с раздельными адресными пространствами кода и данных (уходит PFA), либо свернутый ШК для встроенных систем с требованиями к экономии памяти.

Автор:  mOleg [ Вт июн 23, 2009 22:57 ]
Заголовок сообщения: 

Хищник писал(а):
Есть ли в Форте классика?

конечно есть :)

Хищник писал(а):
Использовать можно любой тип ШК, в зависимости от требований к реализации.

именно так :)

Хищник писал(а):
Лично мне на сегодня видятся актуальными либо машинный код с раздельными адресными пространствами кода и данных (уходит PFA), либо свернутый ШК для встроенных систем с требованиями к экономии памяти.

а вот тут возникает вопрос о выравнивании данных в памяти. Если МК не умеет читать\писать байты, и работает, к примеру с 16 битами, косвенный ШК идеальное решение и с точки зрения плотности кода и с точки зрения скорости работы.

Автор:  MrYuran [ Ср июн 24, 2009 13:29 ]
Заголовок сообщения: 

Немного поразбирался, кое-что проясняется.
То есть, в начале каждого слова стоит ссылка на процедуру инициализации слова (либо на код, если это примитив), а в конце ссылка на процедуру возврата в вызывающее слово.
В конце каждого слова стоит NEXT, который был приведён выше.
Отлично.
А то, что я предлагал, это прямой шитый код (DTC).
И он мне всё-таки нравится больше.

Автор:  Hishnik [ Ср июн 24, 2009 19:23 ]
Заголовок сообщения: 

mOleg писал(а):
Хищник писал(а):
Есть ли в Форте классика?

конечно есть

Да Форта с два! ;)
mOleg писал(а):
а вот тут возникает вопрос о выравнивании данных в памяти. Если МК не умеет читать\писать байты, и работает, к примеру с 16 битами, косвенный ШК идеальное решение и с точки зрения плотности кода и с точки зрения скорости работы.

Получается очень много разных "если". Начиная с несколько странного на сегодняшний день МК.

Автор:  MrYuran [ Чт июн 25, 2009 21:56 ]
Заголовок сообщения: 

Mihail писал(а):
Ну вот подготовил версию без ИАРа http://www.easy-share.com/1906072489/SPMFOR.2.7z
При запуске TST.BAT создается готовый для прошивки модуль - f.txt (формат понятен MSPFET).

Спасибо, попробую.
Че-то в этой долбаной ХР64 никакой реакции на ехе-шник...
Завтра на работе, если успею.
Цитата:
встроить форт-движок в си, не используя никакого форта.
Зачем?

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

Да и я пока не готов перейти, даже инструменты пока не собрал.

Автор:  MrYuran [ Пт июн 26, 2009 17:02 ]
Заголовок сообщения: 

Класс! Чё-то получилось!
Теперь эту штуку (f.txt) прошиваю в кристалл, и можно общаться?

Автор:  MrYuran [ Пт июн 26, 2009 17:58 ]
Заголовок сообщения: 

C налёту пообщаться не удалось...
Команды с СОМ-порта улетают, видел.
А дальше - тишина...
Может, с железом что не так?
У меня, например, кварц 2М стоит
Прошивка около 3к получилась. Я ничего не добавлял.

А вот это
Код:
\  77 \ 4.608Mhz 115200
\  UART0_INIT
[CHAR] U OUTPUT

[CHAR] H EMIT
[CHAR] I EMIT


что означает? Может, инит стоит раскомментировать?
Тактирование, я так понимаю, от DCO идёт

Автор:  simne [ Пт июн 26, 2009 18:25 ]
Заголовок сообщения: 

MrYuran писал(а):
C налёту пообщаться не удалось...
Команды с СОМ-порта улетают, видел.
А дальше - тишина...

Попробуйте терминалкой зайти (например hyperterm в винде) и чего-то сказать.

Автор:  MrYuran [ Пт июн 26, 2009 20:45 ]
Заголовок сообщения: 

simne писал(а):
Попробуйте терминалкой зайти (например hyperterm в винде) и чего-то сказать.

Да нет, таргет не отвечает, я ж осцилом тыкал.
Ну чтож, будем копать дальше...

Автор:  simne [ Пт июн 26, 2009 21:14 ]
Заголовок сообщения: 

MrYuran писал(а):
simne писал(а):
Попробуйте терминалкой зайти (например hyperterm в винде) и чего-то сказать.

Да нет, таргет не отвечает, я ж осцилом тыкал.
Ну чтож, будем копать дальше...

А он вообще чего-то говорит? - сделайте просто чтобы он непрерывно говорил "HI" сразу после загрузки, тогда сразу станет ясно, говорит ли он вообще чего-то.

Автор:  Mihail [ Сб июн 27, 2009 00:51 ]
Заголовок сообщения: 

MrYuran писал(а):
Команды с СОМ-порта улетают, видел. А дальше - тишина...


Попробуй из терминала запущенным TST.BAT запустить команду STT.

Страница 2 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/