реклама на сайте
подробности

 
 
16 страниц V  « < 11 12 13 14 15 > »   
Reply to this topicStart new topic
> А вот бы на FORTH написать..., ;-)
Kopa
сообщение Jun 15 2009, 08:03
Сообщение #181


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ Jun 15 2009, 09:35) *
исходники spf, особенно compiler и asm.


Возможно стоит посмотреть на решения использования Spf4 для разных контроллеров.

на базисе spf Форт для MSP430

Цитата(MrYuran @ Jun 15 2009, 09:35) *
Возможно, у меня пока каша в голове.
Я пока представляю себе процесс следующим образом:
1. Делаю инлайн-(или кросс?)-ассемблер.
2. На основе него строю ядро таргет-системы.
3. На полученное ядро навешиваю остальное "мясо"


В разработке выше примерно так и сделано, за исключением, что выходные
бинарные коды формируются в файлы проекта для IAR ( что не обязательно )

В tinyboot для интеграции произвольного контроллера, в основном, необходимо
создать три модуля - дизасемблер, билдер ( некоторые отличия по функциональности от ассемблера),
и поддержку ядра.

P.S. Использовать, в полной, степени исходники SPF4 для MSP430 не получится, но как
вариант изучения возможной схемы можно.
В этом плане можно порекомендовать посмотреть разработку forkа spf4 от mOleg fork spf4

Цитата(MrYuran @ Jun 15 2009, 08:41) *
Полдня вчера исходники колупал, в некоторых местах понятно, некоторые - как китайская грамота...


У Форта почти нет ограничивающих факторов для конструирования программsmile.gif

Сообщение отредактировал Kopa - Jun 15 2009, 07:34
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 15 2009, 08:21
Сообщение #182


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ Jun 15 2009, 10:07) *
Возможно в Scite есть там специально добавляли поддержку Форт языка.
( узнать поподробнее можно на форуме поддержки разработки )

Посмотрел, замечательная вещь вместо вордпада, однако поддержка языков там на уровне подсветки синтаксиса, и форта нет
(есть nnCron), но при желании легко добавить свою конфигурацию подсветки.
Цитата
MSP430 TARGET ! или
MSP430 TO TARGET

Да, точно.

Цитата(Kopa @ Jun 15 2009, 12:03) *
выходные бинарные коды формируются в файлы проекта для IAR ( что не обязательно )

Не только не обязательно, а категорически нежелательно.
В крайнем случае под GCC
Цитата(Kopa @ Jun 15 2009, 12:03) *
У Форта почти нет ограничивающих факторов для конструирования программsmile.gif

Вот это и привлекает, причём для построения своей системы или изменения существующей не обязательно перелопачивать горы талмудов типа гнушных мануалов (mspgcc собрать так и ниасилил, видать не дорос пока...)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 15 2009, 09:39
Сообщение #183


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Только что вот наткнулся ещё на одну книжку (pdf)
типа сборной солянки из многих источников.
FORTH Spirit of Babylon, (С) RU FIG, Понятов Д.А.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jun 15 2009, 10:20
Сообщение #184


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ Jun 15 2009, 12:39) *
Только что вот наткнулся ещё на одну книжку (pdf)
типа сборной солянки из многих источников.
FORTH Spirit of Babylon, (С) RU FIG, Понятов Д.А.


Раньше этот материал распологался здесь у Понятов Д.А.
( сейчас, похоже, url уже битый )

Цитата(MrYuran @ Jun 15 2009, 11:21) *
(mspgcc собрать так и ниасилил, видать не дорос пока...)


Можно собрать LCC для MSP с разным выходным кодом.
Правда оптимизатор там слабыйsmile.gif

Сообщение отредактировал Kopa - Jun 15 2009, 10:13
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 15 2009, 12:20
Сообщение #185


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ Jun 15 2009, 12:03) *
Возможно стоит посмотреть на решения использования Spf4 для разных контроллеров.
на базисе spf Форт для MSP430
В разработке выше примерно так и сделано, за исключением, что выходные
бинарные коды формируются в файлы проекта для IAR ( что не обязательно )

а, теперь до меня таки дошло, что там происходит!
Осталось разобраться в механизмах...
Опять же, очень не хватает "View Definition"...
Насколько я понял, исходник, который компилируется, это ~mak/msp430/src.f
Однако, не совсем понятно, что именно будет включено в конечный образ.
CODE

REQUIRE CASE-INS lib\ext\caseins.f

: MREAD-FILE READ-FILE ;
: MC! C! ;
: MC@ C@ ;
: MW! W! ;
: MW@ W@ ;
: M! ! ;
: M@ @ ;
: M+ + ;
: MNEGATE NEGATE ;
: MOVER OVER ;
: MAND AND ;
: MCR CR ;
: MEXECUTE EXECUTE ;
: MVARIABLE VARIABLE ;

REQUIRE >NAME ~mak\LIB\fpc.f
REQUIRE NUMBER? ~mak\LIB\fpcnum.f


TRUE VALUE QUICK
: SL\ POSTPONE \ ; IMMEDIATE

[DEFINED] GUI-CONSOLE
[IF] : FJB GUI-CONSOLE::FlushJetBuf ;
[ELSE] : FJB ;
[THEN]


REQUIRE TC_?LIMIT ~mak\LIB\THERE\STAT.f


MODULE: TC_M
REQUIRE T_@ ~mak\LIB\THERE\mthere.f
;MODULE
REQUIRE TH_H- ~mak\LIB\THERE\RECOM.F

\ REQUIRE CS-! ~mak\ext.f

REQUIRE ASMINF_MOD ~mak\MSP430\SRC\ASMMSP.f

~mak\MSP430\SRC\LEX.F
~mak\MSP430\SRC\prefix.f



\ EOF
\ REQUIRE DISMSP ~mak\MSP430\SRC\DISMSP.f
: M\ POSTPONE \ ; IMMEDIATE
REQUIRE T-START ~mak\MSP430\SRC\tc.f

[IFNDEF] W>S
: W>S ( w -- n ) \ Расширение знакового 16 разрядонго числа до 32 разрядного
0xFFFF AND \ удаляем грязь из старших разрядов
0x8000 XOR 0x8000 - ;
[THEN]


: HH.+ DUP C@ 2 H.R 1+ ;
: INST.+
HH.+ ." " ;

: MINST ( ADDR1 ADDR2 -- ADDR1 ADDR1 )
\ F7_ED
DUP H. 9 EMIT 9 EMIT INST.+
BEGIN 2DUP U>
WHILE \ DUP 7 AND 0= IF CR DUP H. 9 EMIT THEN
INST.+
REPEAT ;


REQUIRE INCLUDED_AL ~mak\LIB\THERE\mlist.f
\ DIS-OPT

0 VALUE ROM-HERE

0 VALUE FID


CREATE FTST 0x2000 ALLOT


CASE-INS ON

0x4000 TO CODE-SIZE

0xFC00 TO T-ORG \ Начальный целевой адрес области кода

T-ORG VALUE MT-ORG
0x5000 TO D-ORG \ Начальный целевой адрес области данных
0x5000 CONSTANT SP0@ \ дно стека данных
0x7F00 CONSTANT RP0@ \ дно стека возвратов
\ CREATE CS-ORG 1 CS-CELLS ALLOT

T-ORG TO INCL-HH

' NOOP TO <PRE>
[DEFINED] DBG_STOP [IF] DBG_STOP [THEN]

CR .( T-ORG=) T-ORG H.

\ S" devel\~mak\MSP430\BLOAD.F" INCLUDED \EOF

T-START

S" devel\~mak\MSP430\ROM.f" INCLUDED
HERE TO ROM-HERE
MCR .( ROM=) HERE T-ORG - .
.( safasfs)
S" F.C" CSAVE
S" F.BIN" TSAVE
S" F.HEX" T-SAVE
\ T-ORG HERE OVER ALSO FORTH - PREVIOUS DISMSP

T-STOP



Ладно, пойду пока тренироваться на кошках (верблюдах smile.gif )
Там вроде всё прозрачно.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jun 16 2009, 03:27
Сообщение #186


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ Jun 15 2009, 15:20) *
Насколько я понял, исходник, который компилируется, это ~mak/msp430/src.f
Однако, не совсем понятно, что именно будет включено в конечный образ.


Можно предположить, что содержимое файла rom.f c формированием выходных файлов *.f_al
и они и используются при сборке в проекте IAR ещё далее формируются с, bin, hex файлы
содержимое FORTH_IMG ( наверное пробный cм. в main если его подключить, то первые байты это код примитива DUP )
CODE

...
T-START

S" devel\~mak\MSP430\ROM.f" INCLUDED
...

HERE TO ROM-HERE
MCR .( ROM=) HERE T-ORG - .
.( safasfs)
S" F.C" CSAVE
S" F.BIN" TSAVE
S" F.HEX" T-SAVE
\ T-ORG HERE OVER ALSO FORTH - PREVIOUS DISMSP

T-STOP


Цитата(MrYuran @ Jun 15 2009, 15:20) *
Ладно, пойду пока тренироваться на кошках (верблюдах smile.gif )
Там вроде всё прозрачно.


Удачи!.


Цитата(MrYuran @ Jun 15 2009, 15:20) *
Опять же, очень не хватает "View Definition"...


Хорошо помогает Поиск по словам в Far:)



Цитата(MrYuran @ Jun 15 2009, 15:20) *
а, теперь до меня таки дошло, что там происходит!
Осталось разобраться в механизмах...


Да у Михаила свой, неповторимый, способ Форт программирования.
Достаточно посмотреть на его макрооптимизатор в spf4 smile.gif

Сообщение отредактировал Kopa - Jun 16 2009, 04:04
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 16 2009, 06:50
Сообщение #187


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Сейчас ещё глянул SwiftX - вот практически эталон того, что мне нужно.
Жаль, без исходников...
Но кое-что можно почерпнуть.
Например, отличный стиль, а также готовые файлы описания периферии
(кстати, я имею право их использовать, сохранив копирайт?)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jun 16 2009, 08:15
Сообщение #188


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ Jun 16 2009, 10:50) *
Сейчас ещё глянул SwiftX - вот практически эталон того, что мне нужно.
Жаль, без исходников...
Но кое-что можно почерпнуть.


Вроде какая то версия для PC имеет исходники

Цитата(MrYuran @ Jun 16 2009, 10:50) *
Но кое-что можно почерпнуть.


Можно при изучении брать материал из разных Форт системsmile.gif ( и не только комерческих )

Цитата(MrYuran @ Jun 16 2009, 10:50) *
Например, отличный стиль, а также готовые файлы описания периферии
(кстати, я имею право их использовать, сохранив копирайт?)


Не знаю, но думаю не возбраняетсяsmile.gif
Go to the top of the page
 
+Quote Post
mak4444
сообщение Jun 16 2009, 16:12
Сообщение #189





Группа: Новичок
Сообщений: 2
Регистрация: 14-05-09
Пользователь №: 49 087



Цитата(Kopa @ Jun 16 2009, 07:27) *
Можно предположить, что содержимое файла rom.f c формированием выходных файлов *.f_al
и они и используются при сборке в проекте IAR


Так и есть.

Цитата
ещё далее формируются с, bin, hex файлы
содержимое FORTH_IMG ( наверное пробный cм. в main если его подключить, то первые байты это код примитива DUP )


Командами сохранения загрузочного образа:
S" F.C" CSAVE
S" F.BIN" TSAVE
S" F.HEX" T-SAVE

Можно будет пользоваться если вся программа будет скомпилирована средствами Форта. В данном примере,
часть программы компилируется средстваим IAR . Честно говоря, компиляция конечного модуля
в взаимодействии с IAR не очень удобна. При изменении целевой программы в части форта ( devel\~mak\MSP430\rom.f )
требуется запустить TST.BAT затем компиляцию IAR и снова TST.BAT затем компиляцию IAR . Это чтобы правильно установились
ссылки. Программа для прошивки данного примера является частью распределенной форт системы. Если контроллер с данной
прошивкой подъкрючить к COM порту персоналки, то запустив TST.BAT можно взаимодействовать с удаленным контроллером
в интерактивном режиме. Для примера можно запустить TEST.F затем TEST .
Для генерации листинга:
S" TEST.F" INCLUDED_AL
Еще рекомендую комманду E>
E> +
E> MAIN
E> TEST
В редакторе, клавиша F11 - гипертекстовый вызов определения форт-слова.
Клавиша F12 - вернутся обратно.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 16 2009, 17:17
Сообщение #190


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Вот такой кусочек из asm.f
Код
( DEFER SOME WORDS FOR EASE IN PORTING TO A CROSS ASSEMBLER )
DEFER     CODE-C, '     C, IS     CODE-C, ( X -- )
DEFER     CODE-W, '     W, IS     CODE-W, ( X -- )
...

Что такое DEFER и почему это облегчает портирование?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jun 17 2009, 03:09
Сообщение #191


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ Jun 16 2009, 21:17) *
Вот такой кусочек из asm.f
Код
( DEFER SOME WORDS FOR EASE IN PORTING TO A CROSS ASSEMBLER )
DEFER     CODE-C, '     C, IS     CODE-C, ( X -- )
DEFER     CODE-W, '     W, IS     CODE-W, ( X -- )
...

Что такое DEFER и почему это облегчает портирование?


DEFER ИМЯ создаёт векторное слово
xt IS ИМЯ определяет его текущее наполнение
простой вариант получения xt ' СЛОВО


P.S. DEFER ( в spf4 VECT ) часто определяются для использования когда
конкретное его наполнение еще не определено, но использование целесообразно.
Например в tinyboot DEFER позволяет в процессе использования конкретного контроллера вынести
вариантную часть во время настройки на работу с ним не пересобирая базовое ядро кросс системы.
Вопросы?

Сообщение отредактировал Kopa - Jun 17 2009, 03:21
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 17 2009, 04:45
Сообщение #192


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ Jun 17 2009, 07:09) *
Вопросы?

Вопросы появляются в процессе, а не при таких занятиях урывками, как у меня.
Сегодня случайно занесло меня в англоязычную педию, разница ощутима.
Наши хоть бы для начала английскую версию перевели...
Очень развёрнутая статья про форт, оттуда попал на gforth - первое впечатление очень положительное.
Особенно от документации.
Сейчас докачаю исходники, буду смотреть.
С GСС отношения более-менее сложились, по крайней мере легче будет оттолкнуться, чем от пустого места.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jun 17 2009, 06:02
Сообщение #193


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(MrYuran @ Jun 17 2009, 08:45) *
Сегодня случайно занесло меня в англоязычную педию, разница ощутима.
Наши хоть бы для начала английскую версию перевели...


Что понравилось? Английская версия
И в чём русская статья "проиграла"? Русская версия


Цитата(MrYuran @ Jun 17 2009, 08:45) *
Очень развёрнутая статья про форт, оттуда попал на gforth - первое впечатление очень положительное.
Особенно от документации.
Сейчас докачаю исходники, буду смотреть.


На Си есть ещё много Форт реализацийsmile.gif ( BigForth, kforth, ficl, pforth ... )
На асме, например, reva, retro. и ещё интересны разные подходы в других Форт системахsmile.gif
и близких разработок ( например давнишняя Timbre - из Форта делает Cи код для ускорения )

Цитата(MrYuran @ Jun 17 2009, 08:45) *
С GСС отношения более-менее сложились, по крайней мере легче будет оттолкнуться, чем от пустого места.


Возможно GCC уже оптимизирует Форт реализации? Было бы неплохо.

Сообщение отредактировал Kopa - Jun 17 2009, 06:05
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 17 2009, 06:28
Сообщение #194


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kopa @ Jun 17 2009, 10:02) *
Возможно GCC уже оптимизирует Форт реализации? Было бы неплохо.

Система работает как компилятор: gforth *.fs [ключи]

Ещё бросилась в глаза система автодокументирования по типу doxygen, через \G
Код
: save-input ( -- x1 .. xn n ) \ core-ext
    \G The @i{n} entries @i{xn - x1} describe the current state of the
    \G input source specification, in some platform-dependent way that can
    \G be used by @code{restore-input}.
    (save-input) current-input @ swap 1+;

из си перекочевало include, хотя в форте это по-моему require с небольшими нюансами
А, нет, нашёл.
Код
: include  ( ... "file" -- ... ) \ gforth
    \G @code{include-file} the file @var{file}.
    name included;

: require  ( ... "file" -- ... ) \ gforth
    \G @code{include-file} @var{file} only if it is not included already.
    name required;

Всё-таки разные вещи.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 17 2009, 08:13
Сообщение #195


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



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

Наконец-то скачал эти несчастные 6 метров (по 1к/с)
Попробовал.
Убойная штука see !!!
"Скриншот" терминала:
Код
see code
: code
  header here 8 + cfa, 0 init-asm; ok
  ok
see :
: :
  header (:noname); ok
see 2DUP
Code 2dup
( $402FE3 )  mov     dword ptr 42A6F8 , ebx  \ $89 $1D $F8 $A6 $42 $0
( $402FE9 )  mov     eax , dword ptr 4 [esi]  \ $8B $46 $4
( $402FEC )  mov     edx , dword ptr [esi]  \ $8B $16
( $402FEE )  sub     esi , # 8  \ $83 $EE $8
( $402FF1 )  add     ebx , # 4  \ $83 $C3 $4
( $402FF4 )  mov     dword ptr 4 [esi] , eax  \ $89 $46 $4
( $402FF7 )  mov     dword ptr [esi] , edx  \ $89 $16
( $402FF9 )  mov     edi , dword ptr FC [ebx]  \ $8B $7B $FC
( $402FFC )  jmp     4014A4  \ $E9 $A3 $E4 $FF $FF
end-code
ok

Получается встроенный дизассемблер-дисфорт!
Ох...рененная штука!


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

16 страниц V  « < 11 12 13 14 15 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01538 секунд с 7
ELECTRONIX ©2004-2016