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/ |