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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - FVM для AVR32
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
жаль, т.к. не встречал раскрашивателя под форумные теги, а так было бы неплохо - прямо из редактора в форум

А что мешает написать конвертер из хтмл? ;)
Сообщение Добавлено: Вс июн 07, 2009 22:06
  Заголовок сообщения:   Ответить с цитатой
жаль, т.к. не встречал раскрашивателя под форумные теги, а так было бы неплохо - прямо из редактора в форум
:( :( :oops:
Сообщение Добавлено: Ср июн 03, 2009 22:47
  Заголовок сообщения:   Ответить с цитатой
расцвечивать надо не html-ными тегами, а форумными, если хочется...
А форумный движок не позволяет использовать span-ы, stylе-ы и т.п. вещи.

флажок разрешения html позволяет использовать лишь очень ограниченый набор тегов
Сообщение Добавлено: Ср июн 03, 2009 22:10
  Заголовок сообщения:   Ответить с цитатой
пробуем
<pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>: </span><span style='color:#000000; background:#a8a800; '>fff</span> <span style='color:#800000; font-weight:bold; '>DUP</span> VAR1 <span style='color:#800000; font-weight:bold; '>@</span> <span style='color:#800000; font-weight:bold; '>+</span> VAR1 <span style='color:#800000; font-weight:bold; '>!</span> <span style='color:#800000; font-weight:bold; '>SWAP</span> VAR1 <span style='color:#800000; font-weight:bold; '>@</span> <span style='color:#800000; font-weight:bold; '>-</span> <span style='color:#800000; font-weight:bold; '>SWAP</span> ;
</pre>
Хм, что не так?
Сообщение Добавлено: Ср июн 03, 2009 20:29
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
не каждый редактор позволяет

http://tohtml.com/forth/ - не вижу проблем в "наше прогрессивное время" :-)
Сообщение Добавлено: Ср июн 03, 2009 20:11
  Заголовок сообщения:   Ответить с цитатой
Цитата:
код с подсветкой еще лучше - легко делается в редакторе(например в скайте) путем экспорта подсвеченного кода в хтмл.
не каждый редактор позволяет
Сообщение Добавлено: Вс май 31, 2009 14:35
  Заголовок сообщения:   Ответить с цитатой
Все-таки код в теге [сode][/сode] читается легче, а код с подсветкой еще лучше - легко делается в редакторе(например в скайте) путем экспорта подсвеченного кода в хтмл.
Сообщение Добавлено: Вс май 31, 2009 13:36
  Заголовок сообщения:   Ответить с цитатой
операции с памятью

CODE @
mov S, T
ld.w T, S[0]
END-CODE

CODE W@
mov S, T
ld.uh T, S[0]
END-CODE

CODE C@
mov S, T
ld.ub T, S[0]
END-CODE

CODE !
pops
st.w T[0], S
popt
END-CODE

CODE W!
pops
st.h T[0], S
popt
END-CODE

CODE C!
pops
st.b T[0], S
popt
END-CODE
Сообщение Добавлено: Вс май 31, 2009 12:06
  Заголовок сообщения:   Ответить с цитатой
арифметико-логические операции одинарной точности

CODE +
pops
add T, S
END-CODE

CODE -
pops
sub T, S
END-CODE

CODE RSHIFT
pops
lsr T, T, S
END-CODE

CODE LSHIFT
pops
lsl T, T, S
END-CODE

CODE 2*
lsl T, 1
END-CODE

CODE 2/ \ с сохранением знака
asr T, 1
END-CODE

CODE *
pops
mul T, S
END-CODE

CODE UM*
ld.w S, SP[0]
mulu.d T, T, S
st.w SP[0], S
END-CODE

CODE MOD
CODE /
pops
divs T, S, T
END-CODE
mov T, S
END-CODE

CODE /MOD
ld.w S, SP[0]
divs T, S, T
st.w SP[0], S
END-CODE

CODE XOR
pops
eor T, S
END-CODE

CODE OR
pops
or T, S
END-CODE

CODE AND
pops
and T, S
END-CODE

CODE compare \ - служебное слово, используется для выставления флагов
pops
cp.w T, S
END-CODE

CODE =
compare
sr eq T
END-CODE

CODE <>
compare
sr ne T
END-CODE

CODE <
compare
sr lt T
END-CODE

CODE >
compare
sr gt T
END-CODE

CODE MIN
pops
min T, T, S
END-CODE

CODE MAX
pops
min T, T, S
END-CODE


CODE */MOD
CODE M*
ld.w S, SP[0]
muls.d T, T, S
st.w SP[0], S
END-CODE
CODE UM/MOD
( udh udl d -- o ch )
( sp[4] sp[0] d -- o ch )
st.w --RP, R0
mov R0, 33
mov S, T \ в s - делитель
eor T, T \ очищаем частное
n: l2
ld.w B, SP[4] \ берём старший байт делимого
sub B, B, S
\ сравниваем делитель и делимое, рельтат в делитель
st.w sp[4], B
sr cc B \ если переноса не было в регистре 1
lsl T, 1
or T, B \ если был перенос вдвигаем в частное 0, если нет 1
br cc n@ l4
ld.w B, SP[4]
add B, B, S
st.w sp[4], B
n: l4
eor B, B \ сбрасываем перенос
bld B, 0
ld.w B, SP[0] \ сдвигаем делимое
ror B
st.w SP[0], B
ld.w B, SP[4]
ror B
sub R0, 1
br eq n@ l2
pops
ld.w R0, SP++
END-CODE
END-CODE

ps. блок с */MOD сильно не тестировался. возможны ошибки
Сообщение Добавлено: Вс май 31, 2009 11:07
  Заголовок сообщения:   Ответить с цитатой
аналогично организована работа со стеком возвратов и указателями стеков

стек возвратов и указатели стеков

\ работа со стеком возвратов

CODE R@
pusht
mov T, R0
END-CODE

CODE R>
st.w --RP, R0
mov R0, T
popt
END-CODE

CODE >R
pusht
mov T, R0
CODE popr
ld.w R0, RP++
END-CODE
END-CODE

CODE RDROP
popr
END-CODE


CODE 2>R
st.w --RP, R0
pops
st.w --RP, S
mov R0, T
popt
END-CODE

CODE 2R>
pusht
ld.w S, RP++
pushs
mov T, R0
ld.w R0, RP++
END-CODE

CODE 2RDROP
ld.w R0, RP++
ld.w R0, RP++
END-CODE

CODE R= \ (compare)
ld.w S, RP[0]
sub R0, 1
cp.w R0, S
END-CODE

\ Указатели стеков

CODE SP@
pusht
mov T, SP
END-CODE

CODE SP!
mov SP, T
popt
END-CODE

CODE RP@
pusht
mov T, RP
sub T, 4
END-CODE

CODE RP!
st.w --RP, R0
mov RP, T
popr
popt
END-CODE
Сообщение Добавлено: Вс май 31, 2009 10:53
  Заголовок сообщения:   Ответить с цитатой
в продолжении статьи, по мере упорядочивания материала.... :-)
работа со стеком данных

основой для программной реализации является форт-ассемблер для avr32-го. все управляющие конструкции и способы построения целевого кода.

все слова данного раздела при компиляции кода работают как макроассемблерные вставки.

CODE DUP ( x -- x x )
CODE pusht
st.w --SP, T
END-CODE
END-CODE

CODE pushs
st.w --SP, S
END-CODE

CODE DROP ( x2 x1 -- x2 )
CODE popt
ld.w T, SP++
END-CODE
END-CODE

CODE NIP ( x1 x2 x3 -- x1 x3 )
CODE pops
ld.w S, SP++
END-CODE
END-CODE

CODE PICK ( ...x0 n -- x0 xn )
add S, SP, T << 2
ld.w T, S[0]
END-CODE

CODE TUCK
CODE SWAP ( x2 x1 -- x1 x2 )
xchg S, SP, T
mov T, S
END-CODE

CODE OVER ( x2 x1 -- x2 x1 x2 )
pusht
ld.w T, SP[4]
END-CODE
END-CODE

CODE ROT
pops
xchg B, SP, S
pusht
mov T, B
END-CODE
Сообщение Добавлено: Вс май 31, 2009 10:44
  Заголовок сообщения:   Ответить с цитатой
diver писал(а):
Линукс под этот проц портировали к тому же.

Если Вы про avr32linux.org - то там сырое всё и не обновлялось давненько многое. Человек, который-было рыпнулся с год назад всё это дело осваивать, матюгался страшно. Там "качели" получается по сложности: с одной стороны нужно что-то высокоуровневое, что бы нормально сложно-расчётные вещи писать + управления банками памяти, с другой - часто задачи не выходят за пределы привычных микроконтроллерно-встроенных... Получается ощущение "раздвоенности", "межнишевости" avr32... - всё из рассуждений знакомого. Именно он после года обещаний и энтузиазма опять решил на ARM7 вернуться с постепенным переходом под ARM9 - вот там - да Линукс ЖЕЛЕЗНО уже работает.
Единственно, под что знакомый видит применение адекватное для avr32 - это обработка звук и видео в плеерах. Да и то - пока ещё будут переписаны кодогенерирующие части компиляторов с учётом системы команд для выжимания максимума по обработке?...
Сообщение Добавлено: Сб май 30, 2009 21:09
  Заголовок сообщения:   Ответить с цитатой
хотелось бы более подробной статьи по организации ФВМ и компилятора для AVR-a, в частности по кешированию данных в регистрах очень интересно, а так же хотелось бы посмотреть на примеры организации работы "с перегрузкой операций" то есть о том, как сделана работа с данными различной разрядности. Статья-то к сожалению лишь обзорная 8(

да, желательно указать дату и место публикации статьи...
Сообщение Добавлено: Вт май 26, 2009 17:40
  Заголовок сообщения:   Ответить с цитатой
Тенденции рынка честно не смотрел и не интересовался. Просто привожу в некое подобие порядка начатые ранее работы, может что и выйдет :-).

Отличия в архитектуре на мой взгляд не должны уж так сильно сказываться. всё равно ж основная масса народа пишет на языках высокого уровня. Линукс под этот проц портировали к тому же. Проблема скорее в существующих уже наработках на армы, да стоимости разработки новых систем на этом ядре. периферия на авр32-м реально мощная и навороченная.
Сообщение Добавлено: Вт май 26, 2009 13:53
  Заголовок сообщения:   Ответить с цитатой
Ничего личного или подрывного! Что сорока на хвосте приносила! :)

По информации последних месяцев наблюдается массовый отход проектировщиков и производителей, попробовавших-было реализовать новые изделия на avr32. Народ опять на arm-ики возвращается.
Основная причина - "перетяжелённость" авр32 для выбранного сегмента рынка изделий. Отличия от привычных архитектур. Там ещё что-то с кодогенерирующими частями компиляторов связано (оптимизация), я не разбирался.
Сообщение Добавлено: Вт май 26, 2009 12:43

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


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