Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн июн 18, 2018 11:44

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 151 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 11  След.
Автор Сообщение
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Сб фев 25, 2012 23:00 
oco писал(а):
Что понимается под "базовым уровнем SPF"?


Обобщённо - настраиваемый "метауровень" макрооптимизатора в SPF4 для генерации, по возможностям, кода на отличный от x86 "камень":)

P.S. Реально ли и в какой степени такое? т.к. есть "ощущение",
что генерация кода с команд одного процессора в команды
другого процессора вполне осуществима. (есть же проект
"компилирующий" ассемблер от chess:) не придираясь к терминологии)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Сб фев 25, 2012 23:15 
oсo писал(а):
Какие еще предложения будут?

т.к. ассемблер используется постфиксный, то формат команд
и их мнемоник можно привести к более "осязаемому" базису
как вариант рассмотреть базис Algorithm Builder
http://algrom.net/russian.html


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Сб фев 25, 2012 23:28 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
`Kopa писал(а):
oco писал(а):
Что понимается под "базовым уровнем SPF"?


Обобщённо - настраиваемый "метауровень" макрооптимизатора в SPF4 для генерации, по возможностям, кода на отличный от x86 "камень":)

P.S. Реально ли и в какой степени такое? т.к. есть "ощущение",
что генерация кода с команд одного процессора в команды
другого процессора вполне осуществима. (есть же проект
"компилирующий" ассемблер от chess:) не придираясь к терминологии)


В проект Михаил встроил оптимизатор, совершенно аналогичный SPF. Надо только написать для него правила.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Сб фев 25, 2012 23:33 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
`Kopa писал(а):
oсo писал(а):
Какие еще предложения будут?

т.к. ассемблер используется постфиксный, то формат команд
и их мнемоник можно привести к более "осязаемому" базису
как вариант рассмотреть базис Algorithm Builder
http://algrom.net/russian.html

Так это же ассемблер, он стандартный.
Или я не так понял, поясните


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Сб фев 25, 2012 23:35 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
`Kopa писал(а):
oco писал(а):
Какие еще предложения будут?


Может быть совмешение, по возможности с базисными словами,
из других Форт систем для контроллеров и/или в частности с amForth.

Посмотрел. Не все так плохо :) Стандарт есть стандарт. Есть несущественные отличия, но думаю, менять ничего не нужно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Вс фев 26, 2012 01:08 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Гость писал(а):
п.9,10 Операця and и её замена одной командой воздействует
на флаги процессора. Если после этого их никто не изменяет
(dup точно не должна изменить, но могут ещё вклиниваться
прерывания, но там должен регистр флагов сохраняться)

В общем случае and не заменить одной командой, процессор 8-бит, а ячейка - 16, and реализуется так:
Код:
    poptmp
    tmpl tosl and
    tmph tosh and

Команды две, флаг останется от последней.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Вс фев 26, 2012 11:22 
oco писал(а):
Так это же ассемблер, он стандартный.
Или я не так понял, поясните

Ассемблер стандартный для AVR, но имеет много мнемоник и они не очень "осязаемы", плюс
учёт разных их тонкостей.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Вт фев 28, 2012 21:21 
oco писал(а):
[
В общем случае and не заменить одной командой, процессор 8-бит, а ячейка - 16,


Может тогда имеет смысл ввести команды, например с префиксом b , для обозначения операций над байтами? ( пример: b& bxor b|
и др.)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Ср фев 29, 2012 03:17 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
`Kopa писал(а):
oco писал(а):
[
В общем случае and не заменить одной командой, процессор 8-бит, а ячейка - 16,


Может тогда имеет смысл ввести команды, например с префиксом b , для обозначения операций над байтами? ( пример: b& bxor b|
и др.)


В принципе можно.
Кстати, сейчас можно прямо в форт-словах использовать ассемблер, в котором есть управляющие конструкции if-else-then, begin-until, они совместимы с фортовскими
Пример:
Код:
: XXX
  [ 0x3 tosl andi ] \ логическое "и" с младшим байтом числа на вершине стека
  if_z \ используется флаг Z контроллера, со стека результат не снимается
    YYY
  ELSE
     ZZZ
  THEN ;

Определены в файле inline.spf


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Пн мар 19, 2012 18:17 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Версия 0.3
Что нового:
- исправлены ошибки
- теперь используется только словарь TARGET, поэтому стало проще выискивать трудноуловимые ошибки, когда слово было в словаре FORTH, но не было в TARGET. Сейчас просто выдается сообщение о ненайденном слове
- Руководство, почти оконченное, осталось описать несколько библиотек
http://compas.com.ua/oco/file/avrforth0.3.tar.gz
Жду ваших предложений по руководству
До остального пока не доходят руки :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Пн мар 19, 2012 18:52 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
oco писал(а):
Версия 0.3
Жду ваших предложений по руководству
До остального пока не доходят руки :(


Ещё немного и будет версия 1.0 :D
Тут, кстати, ещё одна ссылка на Форт для AVR
пробежала FlashForth ещё не смотрел, но вроде есть
некая оптимизация. (поторопился нет там оптимизации) написан на ассмблере

Строка компиляции для Windows версии
Код:
spf4.exe UNIX-LINES S" program.spf" S" devices/atmega8.spf" avrforth.spf BYE

не выполнится т.к. S" ...." S" ...." разместятся во
временной области и к моменту использования с помощью INCLUDED в файле avrforth.spf уже не
будут правильны. (лучше сразу их самому сохранить в отдельном выделенном буфере для
этих целей при выполнении avrforth.spf) Может существуют и другие более элегантные решения.

В ядре, возможно, имеет смысл добавить аналоги
возможных родных команд контроллера в Форт варианте.

По документации:
в табличке указать аналоги стандартных Форт слов, если оно изменено.
указать также есть ли аналог данного слова, например в amForth (SPF4), или оно введено в даннном Форте.
слово BIT в режиме исполнения не совсем ясно что делает.
Не увидел в табличке слова WHILE J +LOOP
в документации можно указать возможность
использовать маленький регистр слов на базисе SPF4 (тогда код ассемблера всегда придётся оформлять в скобках?)

P.S. До чего ещё руки не "дошли"?
Какие устройства (или примеры) планируется запустить в рамках этой Форт-системы? Можно сделать и сборку Форта с возможностью добавлять слова в интерактивном режиме работы.
( в документации написано что можно взять для этого amForth, а на каком уровне они совместимы или нет?)
P.S. Возможно, имеет смысл, разместить проект
например на площадке sourceforge?

По кодировке текста в файлах (хотя и не так принципиально). Возможно компромисное решение, например 866 кодировка?
Вместо DOC-файла можно формировать PDF.
Исполняемые файлы SPF4 можно убрать из архива сказанием где их можно взять:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Вт мар 20, 2012 00:48 
Kopa писал(а):
Код:
spf4.exe UNIX-LINES S" program.spf" S" devices/atmega8.spf" avrforth.spf BYE
не выполнится т.к. S" ...." S" ...." разместятся во временной области и к моменту использования с помощью INCLUDED в файле avrforth.spf уже не будут правильны.
Это неверно.
В spf/4, при немедленном исполнении все строковые литералы актуальны до конца исполнения соответствующей строки исходного кода. А командная строка остается актуальной до заверешния программы.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Вт мар 20, 2012 08:12 
Kopa писал(а):
мне не удалось скомпилить через батник тест из приведённого проекта для Win32 без правки avrforth.spf файла
У меня на 4.21 при пустом program.spf сработало без ошибок.

В самом avrforth.spf некорректно использованы ">R" и "R>" — их допустимо использовать только внутри определений (т.к. "семантика интрепретации не определена"). Как вариант: использовать 2VARIALBE (lib/include/double.f), или подключить control-stack и его использовать для временного хранения.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Вт мар 20, 2012 09:46 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2107
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
oco писал(а):
Жду ваших предложений по руководству

Немного по особенностям реализации стеков параметров и возвратов написать и по использованию памяти.
Вот к примеру как у меня написано(это не для AVR, но как пример):
Код:
•   Гарвардская модель – код и данные разделены
•   Подпрограммный шитый код               
•   Стек параметров во внутреннем ОЗУ, стек возвратов аппаратный
•   Использование внутреннего ОЗУ:
- Область банков регистров общего назначения.
- Область прямоадресуемых битов.
- Стек возвратов аппаратный.
  Дно стека возвратов размещается в области прямоадресуемых битов
  или сразу  за ней, в зависимости от требований программы, и растет в сторону
  увеличения  адресов.
  Указателем вершины стека возвратов является SP.
- Область переменных, векторов, массивов – между верхним адресом стека возвратов и стеком  параметров. Верхний адрес стека возвратов задается в зависимости от требований программы.
- Стек параметров.
  Дно размещается в конце внутренней памяти.
  Стек растет в сторону уменьшения адресов.
  В качестве верхней ячейки стека параметров используется DPTR.
  Указателем на вторую ячейку стека параметров является R0.
•   Использование внешнего ОЗУ:
- Область переменных, векторов, массивов, адреса устройств ввода-вывода.

И уже по набору слов из мануала замечания:
1. Добавить двойные переменные типа 2VARIABLE, 2VALUE(или 2QUAN) для разных областей памяти и константы 2CONSTANT.
Часто разрядности 16 не хватает.
2. Слово WITHIN добавить.
3. Слова CMOVE> , MOVE добавить(и их модификации для разных типов памяти).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Очередной AVRForth
СообщениеДобавлено: Ср мар 21, 2012 00:46 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 196
Откуда: Хмельницкий
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Kopa писал(а):
В ядре, возможно, имеет смысл добавить аналоги
возможных родных команд контроллера в Форт варианте.

Зачем, есть ассемблер

Kopa писал(а):
По документации:
в табличке указать аналоги стандартных Форт слов, если оно изменено.
указать также есть ли аналог данного слова, например в amForth (SPF4), или оно введено в даннном Форте.

Подумаю
Kopa писал(а):
слово BIT в режиме исполнения не совсем ясно что делает.

Просто оставляет маску на стеке. Поправил
Kopa писал(а):
Не увидел в табличке слова WHILE J +LOOP

WHILE пропустил, исправил.
J, +LOOP просто нет :)
Kopa писал(а):
в документации можно указать возможность
использовать маленький регистр слов на базисе SPF4 (тогда код ассемблера всегда придётся оформлять в скобках?)

Не знаю, мне как-то удобнее, форт - прописными, ассемблер - строчными
Kopa писал(а):
P.S. До чего ещё руки не "дошли"?
Какие устройства (или примеры) планируется запустить в рамках этой Форт-системы?

Хотел сделать некоторые предложенные оптимизации, см. файл TODO
Устройства - пока еще не знаю, идей нет, что хотелось бы сделать.
Kopa писал(а):
Можно сделать и сборку Форта с возможностью добавлять слова в интерактивном режиме работы.
(в документации написано что можно взять для этого amForth, а на каком уровне они совместимы или нет?)

Изначально не хотел делать такой вариант, так как уже есть готовая система - amForth.
По совместимости трудно сказать. Если использовать только стандартные слова - то да.
Kopa писал(а):
P.S. Возможно, имеет смысл, разместить проект
например на площадке sourceforge?

Возможно, сейчас еще рановато :)
Kopa писал(а):
По кодировке текста в файлах (хотя и не так принципиально). Возможно компромисное решение, например 866 кодировка?

А чем не устраивает UTF?
Kopa писал(а):
Вместо DOC-файла можно формировать PDF.

Возможно, не у всех стоит Open/Libre office, а захочется отредактировать что-нибудь
Kopa писал(а):
Исполняемые файлы SPF4 можно убрать из архива сказанием где их можно взять:)

Они небольшие, пусть будут...


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

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


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

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


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

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