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

 
 
16 страниц V  « < 13 14 15 16 >  
Reply to this topicStart new topic
> А вот бы на FORTH написать..., ;-)
MrYuran
сообщение Jun 21 2009, 14:59
Сообщение #211


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

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



Цитата(mOleg @ Jun 20 2009, 04:35) *
Да, обратите внимание (если еще не зарегистрировались на Forth форуме), что регистрация не автоматическая - надо писать письмо админу (бо спамерюги замучили)

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


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


Знающий
****

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



Цитата(MrYuran @ Jun 21 2009, 18:59) *
Да я вроде уж пытался, да что-то помешало... А может, не помешало, надо бы почту проверить.


Аккаунт уже активированsmile.gif

P.S. Один из возможных вариантов сделать Форт для MSP430 это использовать
базис PDP-11 для tinyboot т.к. архитектуры близкие. n-ое время назад была
первая, не завершённая, попытка сделать этоsmile.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jun 23 2009, 10:59
Сообщение #213


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

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



Всё, временно перемещаюсь на fforum , а сюда выложу конечный результат (если будет), ну или промежуточный. (ые)


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


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

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



Цитата(chu @ Jul 7 2009, 09:08) *
Запись в регистры ADC12 произведена с консоли, напрямую, соответственно таким же образом и считаны ( приведенный "код" - копипаст с форт-консоли ).

А каким фортом для MSP пользуетесь?


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


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 13-12-07
Пользователь №: 33 246



Цитата(MrYuran @ Jul 7 2009, 20:15) *
А каким фортом для MSP пользуетесь?


Вынужден огорчить laughing.gif , никакого особого форта для MSP430 у меня нет, пишу на ассемблере.

НО! Forth - это прежде всего технология программирования ( философия решения задач ), и уже затем - язык и всё такое прочее...

Первый источник идеи - A 3-INSTRUCTION FORTH FOR EMBEDDED SYSTEMS WORK http://pygmy.utoh.org/3ins4th.html
Второй - виртуальная форт-машина, аналогичная имеющейся в SwiftX MSP430,
а также небольшой набор традиционных для форта примитивов, реализованных на ассемблере.
Плюс форт-сервер ( в терминологии не уверен) созданный в ростокском универе во времена оно.
Высокоуровневое определение этого сервера :

: Server BEGIN addr execute ACK char_send AGAIN ;

Как это работает.
Иаровский асм генерит код , который шьется в чип, кроме этого генерит "таблицу перекрестных ссылок" ( my_application.map ), в которой приводится однозначное соответствие цепочка_символов == число. Вырезка из этого файлика скармливается SPF4:

CODE
\

\
\ в словаре XTARGET создаются словари MSP430, TARGET, XDEBUG
\

VOCABULARY XTARGET ALSO XTARGET DEFINITIONS

VOCABULARY MSP430 \ определения регистров и битов процессора
VOCABULARY TARGET \ application. слова-константы содержат адреса целевых п/п
VOCABULARY XDEBUG \ обмен с target, отладочные\тестовые "скрипты"

\
\
ALSO MSP430 DEFINITIONS

: EQU CONSTANT ;
S" E:\vm_working\mast_tst\f235\Host\msp430x23x.f" INCLUDED


\
\
ALSO TARGET DEFINITIONS

TRUE VALUE MAP?
\ Благодарность VoidVolker. С его великодушной помощью написано следующее:
: NUMBER 0 0 2SWAP >NUMBER NIP IF 2DROP FALSE ELSE D>S TRUE THEN ;
: DO-MY CREATED BASE @ HEX NextWord NUMBER 0= THROW , BASE ! DOES> @ ;
: NOTFOUND ( a u -- )
2DUP 2>R ['] NOTFOUND CATCH
IF
2DROP MAP? IF 2R@ DO-MY ELSE -2003 THROW THEN
THEN
RDROP RDROP
;
S" E:\vm_working\mast_tst\f235\Host\app.f" INCLUDED

FALSE TO MAP?



MSP430 по сбросу и после необходимой инициализации крутится в п/п Server - ожидает 16-бит слово
и делает переход по этому адресу.

CODE
;

;
execute_: ; ( xt -- )
mov T,W
tpop
br W

;
ACK EQU 0x90

;
server:
bis.b #BIT0,&P1OUT ; LED+
call #addr
bic.b #BIT0,&P1OUT ; LED-
call #execute_
tpush
mov #ACK,T
call #char_out
jmp server
;


Всё! 07.gif
Остальным я рулю из консоли SPF4.

CODE

ALSO XDEBUG DEFINITIONS

\ *********************************************************
\ работа с целевым процессором
\

0x90 VALUE ACK \ подтверждение от target device

: ok? ( c -- ) CommIn DUP ACK = NOT IF CR ." target no ACK,received=" SPACE . ABORT ELSE DROP THEN ;

: c>t ( c -- ) \ переслать байт, принять эхо, сравнить
DUP CommOut CommIn 2DUP
= NOT IF CR . ." <-<" .
CR ." bad connection. need to reset target" ABORT
THEN 2DROP ;

: >t ( n -- ) \ переслать слово (2бйта)
DUP 0xFF AND c>t 8 RSHIFT c>t ;

: t> ( -- n ) \ принять 2байта от target device
CommIn 0xFF AND CommIn 0xFF AND 8 LSHIFT + ;

: >x >t ok? ; \ выполнить п/п в target device

: >s ( n -- ) \ положить слово на верхушку целевого стека параметров
addr >t >t ok? ;
: s> ( -- n ) \
eword >t t> ok? ;

: t! ( n a -- ) \ записать n по адресу a
DUP RAMEND > ABORT" address not valid" \ ОЗУ и периферия
SWAP >s DUP >s
0x00 0x100 WITHIN
IF cstore
ELSE store
THEN >x ;

: t@ ( a -- n ) \ прочитать содержимое a
DUP >s
0x00 0x100 WITHIN \ байт?
IF cfetch
ELSE fetch
THEN >x s> ;



Такой ( наверное довольно громоздкий ) подход позволяет не прошив ни байта кода сверх имеющегося,
прощупать каждый регистр, каждый бит HW периферии ( как на борту процессора так и вовне ),
настроить периферию на любой режим работы и выбрать оптимальный\целесообразный и только потом написать фрагмент кода ( на асме wacko.gif ) с последующим тестированием ( обязательно ). Зачастую этот процесс идет параллельно с изучением datasheet
на соответствующий периферийный модуль.
Конечно, дело не ограничивается установкой битов, чтением регистров и тд. Взможность писать форт-определения ( в SPF4 ),
реализующие какие-то более сложные алгоритмы работы target device, присутствуют в полной мере.

Ну вот, как-то так.

wink.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 9 2009, 06:24
Сообщение #216


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

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



Цитата(chu @ Jul 9 2009, 10:12) *
Ну вот, как-то так.
wink.gif

Понятно, спасибо. Я примерно то же в CamelForth проделывал.


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


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(chu @ Jul 9 2009, 09:12) *
Как это работает.
Правильно ли я понял, что сам шитый код и стек формируются и существуют на хост-машине, а таргет только исполняет базовый набор примитивов?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
chu
сообщение Jul 9 2009, 07:40
Сообщение #218


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 13-12-07
Пользователь №: 33 246



Цитата(Сергей Борщ @ Jul 9 2009, 13:58) *
Правильно ли я понял, что сам шитый код и стек формируются и существуют на хост-машине, а таргет только исполняет базовый набор примитивов?


Да, практически так и есть.

Кроме базового набора примитивов имеется также коллекция ассемблерных подпрограмм,
обслуживающих аппаратные модули контроллера.

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

Иными словами, в МК форта в чистом виде как бы и нет, но дух форта - присутствует cool.gif
В основном эксплуатируется заточенность форта для тестирования/отладки "железа".

PS. Moving Forth
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 9 2009, 08:47
Сообщение #219


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

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



Интересный подход...
А что если прогнать через SPF сишный листинг (см. ниже) и заставить его сделать зеркало целевой системы на писишном хосте.
CODE
1102U_430_00_00.elf: file format elf32-msp430

SYMBOL TABLE:
00001100 l d .text 00000000 .text
00000200 l d .data 00000000 .data
0000020c l d .bss 00000000 .bss
0000ffe0 l d .vectors 00000000 .vectors
00000000 l d .stab 00000000 .stab
00000000 l d .stabstr 00000000 .stabstr
00000130 l *ABS* 00000000 MPY
00000132 l *ABS* 00000000 MPYS
00000134 l *ABS* 00000000 MAC
00000136 l *ABS* 00000000 MACS
00000138 l *ABS* 00000000 OP2
0000013a l *ABS* 00000000 RESLO
0000013c l *ABS* 00000000 RESHI
0000013e l *ABS* 00000000 SUMEXT
00000020 l *ABS* 00000000 P1IN
00000021 l *ABS* 00000000 P1OUT
00000022 l *ABS* 00000000 P1DIR
00000023 l *ABS* 00000000 P1IFG
00000024 l *ABS* 00000000 P1IES
00000025 l *ABS* 00000000 P1IE
00000026 l *ABS* 00000000 P1SEL
00000028 l *ABS* 00000000 P2IN
00000029 l *ABS* 00000000 P2OUT
0000002a l *ABS* 00000000 P2DIR
0000002b l *ABS* 00000000 P2IFG
0000002c l *ABS* 00000000 P2IES
0000002d l *ABS* 00000000 P2IE
0000002e l *ABS* 00000000 P2SEL
00000018 l *ABS* 00000000 P3IN
00000019 l *ABS* 00000000 P3OUT
0000001a l *ABS* 00000000 P3DIR
0000001b l *ABS* 00000000 P3SEL
0000001c l *ABS* 00000000 P4IN
0000001d l *ABS* 00000000 P4OUT
0000001e l *ABS* 00000000 P4DIR
0000001f l *ABS* 00000000 P4SEL
00000030 l *ABS* 00000000 P5IN
00000031 l *ABS* 00000000 P5OUT
00000032 l *ABS* 00000000 P5DIR
00000033 l *ABS* 00000000 P5SEL
00000034 l *ABS* 00000000 P6IN
00000035 l *ABS* 00000000 P6OUT
00000036 l *ABS* 00000000 P6DIR
00000037 l *ABS* 00000000 P6SEL
00000070 l *ABS* 00000000 U0CTL
00000071 l *ABS* 00000000 U0TCTL
00000072 l *ABS* 00000000 U0RCTL
00000073 l *ABS* 00000000 U0MCTL
00000074 l *ABS* 00000000 U0BR0
00000075 l *ABS* 00000000 U0BR1
00000076 l *ABS* 00000000 U0RXBUF
00000077 l *ABS* 00000000 U0TXBUF
00000070 l *ABS* 00000000 UCTL
00000071 l *ABS* 00000000 UTCTL
00000072 l *ABS* 00000000 URCTL
00000073 l *ABS* 00000000 UMCTL
00000074 l *ABS* 00000000 UBR0
00000075 l *ABS* 00000000 UBR1
00000076 l *ABS* 00000000 RXBUF
00000077 l *ABS* 00000000 TXBUF
00000070 l *ABS* 00000000 UCTL0
00000071 l *ABS* 00000000 UTCTL0
00000072 l *ABS* 00000000 URCTL0
00000073 l *ABS* 00000000 UMCTL0
00000074 l *ABS* 00000000 UBR00
00000075 l *ABS* 00000000 UBR10
00000076 l *ABS* 00000000 RXBUF0
00000077 l *ABS* 00000000 TXBUF0
00000070 l *ABS* 00000000 UCTL_0
00000071 l *ABS* 00000000 UTCTL_0
00000072 l *ABS* 00000000 URCTL_0
00000073 l *ABS* 00000000 UMCTL_0
00000074 l *ABS* 00000000 UBR0_0
00000075 l *ABS* 00000000 UBR1_0
00000076 l *ABS* 00000000 RXBUF_0
00000077 l *ABS* 00000000 TXBUF_0
00000050 l *ABS* 00000000 I2CIE
00000051 l *ABS* 00000000 I2CIFG
00000052 l *ABS* 00000000 I2CNDAT
00000071 l *ABS* 00000000 I2CTCTL
00000072 l *ABS* 00000000 I2CDCTL
00000073 l *ABS* 00000000 I2CPSC
00000074 l *ABS* 00000000 I2CSCLH
00000075 l *ABS* 00000000 I2CSCLL
00000076 l *ABS* 00000000 I2CDRB
00000076 l *ABS* 00000000 I2CDRW
00000118 l *ABS* 00000000 I2COA
0000011a l *ABS* 00000000 I2CSA
0000011c l *ABS* 00000000 I2CIV
00000076 l *ABS* 00000000 I2CDR
00000078 l *ABS* 00000000 U1CTL
00000079 l *ABS* 00000000 U1TCTL
0000007a l *ABS* 00000000 U1RCTL
0000007b l *ABS* 00000000 U1MCTL
0000007c l *ABS* 00000000 U1BR0
0000007d l *ABS* 00000000 U1BR1
0000007e l *ABS* 00000000 U1RXBUF
0000007f l *ABS* 00000000 U1TXBUF
00000078 l *ABS* 00000000 UCTL1
00000079 l *ABS* 00000000 UTCTL1
0000007a l *ABS* 00000000 URCTL1
0000007b l *ABS* 00000000 UMCTL1
0000007c l *ABS* 00000000 UBR01
0000007d l *ABS* 00000000 UBR11
0000007e l *ABS* 00000000 RXBUF1
0000007f l *ABS* 00000000 TXBUF1
00000078 l *ABS* 00000000 UCTL_1
00000079 l *ABS* 00000000 UTCTL_1
0000007a l *ABS* 00000000 URCTL_1
0000007b l *ABS* 00000000 UMCTL_1
0000007c l *ABS* 00000000 UBR0_1
0000007d l *ABS* 00000000 UBR1_1
0000007e l *ABS* 00000000 RXBUF_1
0000007f l *ABS* 00000000 TXBUF_1
00000055 l *ABS* 00000000 SVSCTL
00000128 l *ABS* 00000000 FCTL1
0000012a l *ABS* 00000000 FCTL2
0000012c l *ABS* 00000000 FCTL3
00000059 l *ABS* 00000000 CACTL1
0000005a l *ABS* 00000000 CACTL2
0000005b l *ABS* 00000000 CAPD
0000012e l *ABS* 00000000 TA0IV
00000160 l *ABS* 00000000 TA0CTL
00000170 l *ABS* 00000000 TA0R
00000162 l *ABS* 00000000 TA0CCTL0
00000164 l *ABS* 00000000 TA0CCTL1
00000172 l *ABS* 00000000 TA0CCR0
00000174 l *ABS* 00000000 TA0CCR1
00000166 l *ABS* 00000000 TA0CCTL2
00000176 l *ABS* 00000000 TA0CCR2
0000011e l *ABS* 00000000 TBIV
00000180 l *ABS* 00000000 TBCTL
00000190 l *ABS* 00000000 TBR
00000182 l *ABS* 00000000 TBCCTL0
00000184 l *ABS* 00000000 TBCCTL1
00000186 l *ABS* 00000000 TBCCTL2
00000192 l *ABS* 00000000 TBCCR0
00000194 l *ABS* 00000000 TBCCR1
00000196 l *ABS* 00000000 TBCCR2
00000188 l *ABS* 00000000 TBCCTL3
0000018a l *ABS* 00000000 TBCCTL4
0000018c l *ABS* 00000000 TBCCTL5
0000018e l *ABS* 00000000 TBCCTL6
00000198 l *ABS* 00000000 TBCCR3
0000019a l *ABS* 00000000 TBCCR4
0000019c l *ABS* 00000000 TBCCR5
0000019e l *ABS* 00000000 TBCCR6
00000056 l *ABS* 00000000 DCOCTL
00000057 l *ABS* 00000000 BCSCTL1
00000058 l *ABS* 00000000 BCSCTL2
000001a0 l *ABS* 00000000 ADC12CTL0
000001a2 l *ABS* 00000000 ADC12CTL1
000001a4 l *ABS* 00000000 ADC12IFG
000001a6 l *ABS* 00000000 ADC12IE
000001a8 l *ABS* 00000000 ADC12IV
00000140 l *ABS* 00000000 ADC12MEM0
00000142 l *ABS* 00000000 ADC12MEM1
00000144 l *ABS* 00000000 ADC12MEM2
00000146 l *ABS* 00000000 ADC12MEM3
00000148 l *ABS* 00000000 ADC12MEM4
0000014a l *ABS* 00000000 ADC12MEM5
0000014c l *ABS* 00000000 ADC12MEM6
0000014e l *ABS* 00000000 ADC12MEM7
00000150 l *ABS* 00000000 ADC12MEM8
00000152 l *ABS* 00000000 ADC12MEM9
00000154 l *ABS* 00000000 ADC12MEM10
00000156 l *ABS* 00000000 ADC12MEM11
00000158 l *ABS* 00000000 ADC12MEM12
0000015a l *ABS* 00000000 ADC12MEM13
0000015c l *ABS* 00000000 ADC12MEM14
0000015e l *ABS* 00000000 ADC12MEM15
00000080 l *ABS* 00000000 ADC12MCTL0
00000081 l *ABS* 00000000 ADC12MCTL1
00000082 l *ABS* 00000000 ADC12MCTL2
00000083 l *ABS* 00000000 ADC12MCTL3
00000084 l *ABS* 00000000 ADC12MCTL4
00000085 l *ABS* 00000000 ADC12MCTL5
00000086 l *ABS* 00000000 ADC12MCTL6
00000087 l *ABS* 00000000 ADC12MCTL7
00000088 l *ABS* 00000000 ADC12MCTL8
00000089 l *ABS* 00000000 ADC12MCTL9
0000008a l *ABS* 00000000 ADC12MCTL10
0000008b l *ABS* 00000000 ADC12MCTL11
0000008c l *ABS* 00000000 ADC12MCTL12
0000008d l *ABS* 00000000 ADC12MCTL13
0000008e l *ABS* 00000000 ADC12MCTL14
0000008f l *ABS* 00000000 ADC12MCTL15
000001c0 l *ABS* 00000000 DAC12_0CTL
000001c2 l *ABS* 00000000 DAC12_1CTL
000001c8 l *ABS* 00000000 DAC12_0DAT
000001ca l *ABS* 00000000 DAC12_1DAT
00000122 l *ABS* 00000000 DMACTL0
00000124 l *ABS* 00000000 DMACTL1
000001e0 l *ABS* 00000000 DMA0CTL
000001e2 l *ABS* 00000000 DMA0SA
000001e4 l *ABS* 00000000 DMA0DA
000001e6 l *ABS* 00000000 DMA0SZ
000001e8 l *ABS* 00000000 DMA1CTL
000001ea l *ABS* 00000000 DMA1SA
000001ec l *ABS* 00000000 DMA1DA
000001ee l *ABS* 00000000 DMA1SZ
000001f0 l *ABS* 00000000 DMA2CTL
000001f2 l *ABS* 00000000 DMA2SA
000001f4 l *ABS* 00000000 DMA2DA
000001f6 l *ABS* 00000000 DMA2SZ
00000120 l *ABS* 00000000 WDTCTL
00000000 l *ABS* 00000000 IE1
00000002 l *ABS* 00000000 IFG1
00000001 l *ABS* 00000000 IE2
00000003 l *ABS* 00000000 IFG2
00000004 l *ABS* 00000000 ME1
00000005 l *ABS* 00000000 ME2
00000000 l df *ABS* 00000000 gen.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
00001132 l O .text 00000040 SinTableData
00000000 l df *ABS* 00000000 dco.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
00000202 l O .data 00000002 Last_TB_Tkts
00000204 l O .data 00000002 LastTBR
00000206 l O .data 00000002 DeltaTBR
00000208 l O .data 00000001 NeedToCalibrateDCO
00000000 l df *ABS* 00000000 main.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
00000000 l df *ABS* 00000000 measure.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
00000000 l df *ABS* 00000000 utils.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
00000000 l df *ABS* 00000000 TimerB.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
0000020a l O .data 00000002 uiMainInterval
0000020c l .bss 00000000 ulRealTime
00000000 l df *ABS* 00000000 AD7708.c
00000130 l *ABS* 00000000 __MPY
00000132 l *ABS* 00000000 __MPYS
00000134 l *ABS* 00000000 __MAC
00000136 l *ABS* 00000000 __MACS
00000138 l *ABS* 00000000 __OP2
0000013a l *ABS* 00000000 __RESLO
0000013c l *ABS* 00000000 __RESHI
0000013e l *ABS* 00000000 __SUMEXT
00001696 l F .text 0000004c WriteByte
000016e2 l F .text 00000036 ReadByte
00001718 l F .text 00000030 ReadWord
00000000 l df *ABS* 00000000 libgcc2.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
00000000 l df *ABS* 00000000 fp-bit.c
0000000c g *ABS* 00000000 __data_size
00001540 g F .text 000000d8 Init_7708
00001686 g F .text 00000010 StartContConversion
00001172 g F .text 0000002c Timerb_ccr1
000014b8 g F .text 00000088 GenInit
000002b4 g O .bss 00000008 ADC
00000210 g O .bss 00000002 eStatus
000002bc g O .bss 0000000c Urt
00001748 g .text 00000000 __udivmodhi4
00000200 g O .data 00000002 TB_Tkts_In_ms
00001790 g .text 00000000 _etext
0000030e g O .bss 0000000c Timers
00000128 g *ABS* 00000000 __bss_size
0000178e w .text 00000000 __stop_progExec__
0000112c g .text 00000000 _unexpected_1_
0000146a g .text 00000000 vector_ffe0
000002c8 g O .bss 0000000c Xslow
000012ec g F .text 00000044 ADC_ZeroCal
000013fa g F .text 0000000a Pause
00001330 g F .text 00000094 ADC_FullCal
00001404 g F .text 0000000e InitWatchDogPort
0000031a g O .bss 0000001a tempFlashData
0000119e g F .text 00000078 CalibrateDCO
00001468 g .text 00000000 vector_ffec
0000112c w .text 00000000 vector_fff0
00001790 g *ABS* 00000000 __data_load_start
0000112c g .text 00000000 __dtors_end
0000112c w .text 00000000 vector_fffc
000002d4 g O .bss 00000003 UsingChannelFlag
000002d8 g O .bss 00000012 T
0000112c w .text 00000000 vector_ffe4
00001644 g F .text 00000042 Calibrate
000002ea g O .bss 0000000c Urcab
00000212 g O .bss 00000004 RealTime
0000ffe0 g O .vectors 00000020 InterruptVectors
00001118 w .text 00000000 __do_clear_bss
0000142c g F .text 00000014 TimerBInit
00001618 g F .text 0000002c ReadRegister
0000112c w .text 00000000 vector_ffe2
0000112c w .text 00000000 vector_ffe8
00001130 w .text 00000000 _unexpected_
000002f6 g O .bss 0000000c Xfast
0000141c g .text 00000000 vector_fffa
00001216 g F .text 0000002a SetDCO
00001478 g F .text 00000040 SetGenFreq
00001100 w .text 00000000 _reset_vector__
0000112c g .text 00000000 __ctors_start
0000146a g F .text 0000000e DMA_isr
00001106 w .text 00000000 __do_copy_data
0000020c g .bss 00000000 __bss_start
0000112c w .text 00000000 vector_ffee
0000112c w .text 00000000 vector_fff4
00001240 g F .text 000000ac main
00001172 g .text 00000000 vector_fff8
0000112c w .text 00000000 vector_fff2
00010000 g .vectors 00000000 _vectors_end
0000112c w .text 00000000 vector_ffe6
00000302 g O .bss 0000000c Uref
0000112c g .text 00000000 __dtors_start
0000112c g .text 00000000 __ctors_end
00000a00 g *ABS* 00000000 __stack
000013c4 g F .text 00000002 PrepareBuffers
0000141c g F .text 00000010 Timerb_ccr0
0000020c g .data 00000000 _edata
00000334 g .bss 00000000 _end
00001440 g F .text 00000028 GetRealTime
000013c6 g F .text 00000034 ADC_StartUp
00001764 g .text 00000000 __udivmodsi4
0000112c w .text 00000000 vector_fff6
00000216 g O .bss 00000066 usRegInputBuf
0000027c g O .bss 00000038 usRegHoldingBuf
00001100 w .text 00000000 __low_level_init
00001128 w .text 00000000 __jump_to_main
00000200 g .data 00000000 __data_start
0000112c w .text 00000000 vector_ffea
00001412 g F .text 0000000a ClearWatchDog
00001468 g F .text 00000002 TA0_isr

То есть, например, на входе имеем
00001216 g F .text 0000002a SetDCO
00001478 g F .text 00000040 SetGenFreq
А на выходе:
: SetDCO 1216 CALL ;
: SetGenFreq 1478 CALL ;

Просьба модераторам:
Перенесите, пожалуйста, обсуждение начиная с поста №4
в тему про форт, ибо есть желание продолжить, а тут не совсем к месту


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


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 13-12-07
Пользователь №: 33 246



Цитата(Сергей Борщ @ Jul 9 2009, 13:58) *
Правильно ли я понял, что сам шитый код и стек формируются и существуют на хост-машине, а таргет только исполняет базовый набор примитивов?


Виноват, был невнимателен. Прошу прощения.

Стек параметров в target присутствует .

Цитата(MrYuran @ Jul 9 2009, 15:47) *
Интересный подход...


Не уверен в удовлетворительном результате.
Заковыристая заковыка зарыта в передаче параметров С-функциям компилятором.
В случае с ассемблером - все проще: я сам организовываю передачу параметров п/программам
( через стек параметров ). Собственно это и есть виртуальная форт-машина.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 9 2009, 10:27
Сообщение #221


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

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



Цитата(chu @ Jul 9 2009, 13:31) *
Заковыристая заковыка зарыта в передаче параметров С-функциям компилятором.
В случае с ассемблером - все проще: я сам организовываю передачу параметров п/программам

НУ ладно. Оставим пока функции. Но переменные и регистры запросто можно проиндексировать.
Хотя и с функциями тоже не так всё сложно.
У меня например, обычно большинство функций типа viod(void), параметры модулей хранятся в локальных static-переменных.


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


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(MrYuran @ Jul 9 2009, 14:47) *
Просьба модераторам:
Перенесите, пожалуйста, обсуждение начиная с поста №4
в тему про форт, ибо есть желание продолжить, а тут не совсем к месту
Темы разделил, но объединить с указанной не могу. Не хватает полномочий. Обратитесь с этой просьбой к супермодераторам.
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jul 15 2009, 03:37
Сообщение #223


Знающий
****

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



Цитата(Сергей Борщ @ Jul 9 2009, 10:58) *
Правильно ли я понял, что сам шитый код и стек формируются и существуют на хост-машине, а таргет только исполняет базовый набор примитивов?


Шитого кода может и не существоватьsmile.gif ( зависит от реализации Форта на хост машине )

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

При отладке слова управляющие конструкции такие как IF, WHILE ... лучше не исполнять в таргете,
а симулировать псевдо-исполнение в хосте. ( примерно такая схема принята в ff303 при исполнении байт-кода)


P.S. Оставлять ли топик в данной ветке или присоединить к существующему обсуждению Форт тематики
в разделе "Все остальные контроллеры" на усмотрение модераторов.

Сообщение отредактировал Kopa - Jul 15 2009, 03:42
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 15 2009, 06:45
Сообщение #224


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(rezident @ Jul 9 2009, 13:56) *
Темы разделил, но объединить с указанной не могу. Не хватает полномочий. Обратитесь с этой просьбой к супермодераторам.

Объединил, полномочий хватило rolleyes.gif
Go to the top of the page
 
+Quote Post
chu
сообщение Jul 9 2010, 15:41
Сообщение #225


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 13-12-07
Пользователь №: 33 246



Цитата(RodionGork @ Apr 16 2009, 12:55) *
А какие нынче контроллеры есть со встроенным FORTH или же компилятором FORTH удачным?


Amforth is a Forth system for the AVR ATmega microcontroller family. It works on the controller itself and does not depend on any additional hard- or software. amforth can be downloaded from the http://sourceforge.net/projects/amforth/files/ занимает менее 8К Flash, около 50 байт EEPROM и 100-150 байт RAM. последняя версия 2010-07-01
Go to the top of the page
 
+Quote Post

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

 


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


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