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

 
 
11 страниц V  « < 8 9 10 11 >  
Reply to this topicStart new topic
> Форт (Forth) и MSP430 для изучения, Программирование и исследование на Форт
Kopa
сообщение Nov 16 2012, 13:50
Сообщение #136


Знающий
****

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



Цитата(MrYuran @ Nov 16 2012, 17:23) *
Таки извратился sm.gif
Код
: #define :; ok
#define abc 123; ok
abc . 123 ok

Осталось придумать, кто будет ; дописывать в конце каждой строки

Чегт, ещё одна засада!
Код
#define ADC10CTL1_            0x01B2    /* ADC10 Control 1 */ 0X01B2?

Как бы объяснить, что 0x == hex

Может не дописывать ; а дополнительно (принудительно) или POSTPONE ; или [
Для определения 0х проще всего пересобрать Форт систему c изменённым NUMBER определителем, если это
слово не векторизовано. А так, скорее всего, придётся читать в слове входной поток SOURCE TIB >IN или работа со строками и определять 0х и переключившись в шестнадцатиричную систему вводить остаток слова как цифру.

P.S. Как то так можно попробовать.

Цитата(MrYuran @ Nov 16 2012, 17:23) *
Таки извратился sm.gif
Код
: #define :; ok
#define abc 123; ok
abc . 123 ok

Осталось придумать, кто будет ; дописывать в конце каждой строки

а если так прикинуть?
Код
  : #define POSTPONE; POSTPONE  :;


Сообщение отредактировал Kopa - Nov 16 2012, 14:46
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 16 2012, 13:53
Сообщение #137


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

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



Цитата(Kopa @ Nov 16 2012, 17:50) *
а если так прикинуть?
Код
  : #define POSTPONE; POSTPONE  :;


у, шайтан!

Код
: #define postpone; postpone :; ok 
#define abcd 1234 ok 
. 1234 ok 


Не, это я поторопился sad.gif

Код
abcd ok 
. -5433 ok 
abcd .s <3> 123 ABCD ABCD ok


Ну да ладно, хватит наводок на выходные sm.gif


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


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

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



Код
SP-FORTH - ANS FORTH 94 for Win95/98/Me/NT/2k/XP/Vista
Open source project at http://spf.sf.net
Russian FIG at http://www.forth.org.ru; Started by A.Cherezov
Version 4.20 Build 001 at 21.Jan.2009

>: NUMBER 0 0 2SWAP >NUMBER NIP IF 2DROP FALSE ELSE D>S TRUE THEN;
Ok
>: #define BASE @ HEX CREATE NextWord NUMBER 0= THROW , BASE ! DOES> @;
#define isn't unique ()
Ok
>#define ADC10DTC0_ 0048
Ok
>ADC10DTC0_
Ok ( 72 )
>DUP . HEX .
72 48  Ok
>
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 16 2012, 14:42
Сообщение #139


Знающий
****

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



Цитата(MrYuran @ Nov 16 2012, 17:37) *
ok, попробую sm.gif
Слова есть такие:

Из этих слов сначало необходимо убрать "общепринятые" (стандартные) и посмотреть на введённые варианты 4e4th слов.
P.S. Особо посмотреть на работу с разной памятью в контроллере.

Цитата(Kopa @ Nov 16 2012, 16:38) *
Самое простое, без обработки входного потока и "извращений"
[code] : /* POSTPONE \ ;
: #define , POSTPONE ; CREATE DOES> POSTPONE CONSTANT ; \ будет ли и с этим загадка?
0
#define ABC 123
, ;

А так? Для компиляции в тело кода могут быть введены аналоги слов , @
и вероятно стоит использовать слово LITERAL для компиляции чисел со стека внутри слова
Бывает, что тело кода отделяют от заголовков (хранимых отдельно) и связь между частями слова можно установить словами CFA>NFA >BODY
навыки в "боди-билдинге" данной Форт системы могут помочь понять, что не "срослось"

P.S. Жаль нет матчасти под рукой, надо идти покупать, заказывать или сделать симулятор МSP430 или приспособить существующий,
а в Proteus-е вроде есть MSP430.

Цитата(MrYuran @ Nov 16 2012, 17:53) *
Не, это я поторопился sad.gif

Что предсказуемо т.к. создалось пустое слово


Цитата(MrYuran @ Nov 16 2012, 17:37) *
ok, попробую sm.gif
Хотя, полюбому матчасть учить.
Слова есть такие:

Чем помочь с словами?

P.S. Можно непосредственно изменить буфер входного потока записав вместо 0х например H с пробелом, при этом
: H HEX ;

Сообщение отредактировал Kopa - Nov 16 2012, 15:21
Go to the top of the page
 
+Quote Post
chu
сообщение Nov 17 2012, 06:57
Сообщение #140


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

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



прошу пардону, это не флуд, это - "поэтическая минутка" в топик,
графоманское рукоблудие:
Код
\ Thinking Forth
: ЗАДАЧА   СЛОВА ОПИСАНИЯ ПРОБЛЕМЫ;

yeah.gif
Go to the top of the page
 
+Quote Post
chu
сообщение Nov 17 2012, 08:22
Сообщение #141


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

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



Цитата(Kopa @ Nov 16 2012, 21:42) *
P.S. Жаль нет матчасти под рукой, надо идти покупать, заказывать или сделать симулятор МSP430 или приспособить существующий,
а в Proteus-е вроде есть MSP430.


Есть. В коробочке лежат. Могу поделиться, на выбор - MSP430F235 либо MSP430F149, ( 235-х у меня несколько) ( либо отдам оба сразу ).
Но, - ни обвязки ни макетки ни программатора ни коммуникаций. В хорошие руки - не жалко. Ваш выбор.

Скачал (через техасских инструментов) какойто iar workbench kickstart ( EW430-5511 ) с ограничением по объёму кода в 4 Кбайт.
Похоже для сборки camelforth430 не годиться. Что делать?
( 30-дневную версию не предлагать: копаться буду долго, и мне не нужна неожиданное "опа!", когда "уже вот-вот" biggrin.gif )

Или это ограничение только на кодогенерацию компилятора С ? Просветите, темный я.

Сообщение отредактировал chu - Nov 17 2012, 08:57
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 17 2012, 14:08
Сообщение #142


Знающий
****

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



Цитата(chu @ Nov 17 2012, 11:22) *
Есть. В коробочке лежат. Могу поделиться, на выбор - MSP430F235 либо MSP430F149, ( 235-х у меня несколько) ( либо отдам оба сразу ).
Но, - ни обвязки ни макетки ни программатора ни коммуникаций. В хорошие руки - не жалко. Ваш выбор.

Спасибо, но думаю с моими "не совсем прямыми руками" и базовыми знаниями архитектуры MSP430, в данном вопросе, это не выходsm.gif
(пока на столе лежит, по случаю купленный, Atмega 8535)

Цитата(chu @ Nov 17 2012, 11:22) *
Скачал (через техасских инструментов) какойто iar workbench kickstart ( EW430-5511 ) с ограничением по объёму кода в 4 Кбайт.
Похоже для сборки camelforth430 не годиться. Что делать?

Как вариант, ограничиться объёмом кода Форт ядра в 4 Кбайтsm.gif
А Си обязательно использовать?

Сообщение отредактировал Kopa - Nov 17 2012, 14:10
Go to the top of the page
 
+Quote Post
chu
сообщение Nov 17 2012, 14:23
Сообщение #143


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

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



Цитата(Kopa @ Nov 17 2012, 21:08) *
(пока на столе лежит, по случаю купленный, Atмega 8535)

8K Flash - маловато будет. Для amforth'a.
Илья на робофоруме на таком http://devicter.ru/goods/Arduino-Nano-V3-ATmega amforth гоняет.
Строит что-то с часами (ds1307), однопроводными http://devicter.ru/goods/sensor-temperatur...chnyj?from=MDg3 ,
rfid считывателем пластиковых карт http://devicter.ru/goods/datchik-schityvan...-kart?from=MDg3
и, кажется GSM модемом. с интересом наблюдаю.

Цитата(Kopa @ Nov 17 2012, 21:08) *
А Си обязательно использовать?

Свят-свят, ассемблер, только ассемблер cool.gif Верблюжьи исходники - на асме.

Сообщение отредактировал chu - Nov 17 2012, 14:35
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 17 2012, 14:47
Сообщение #144


Знающий
****

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



Цитата(chu @ Nov 17 2012, 18:23) *
8K Flash - маловато будет. Для amforth'a.

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

Цитата(chu @ Nov 17 2012, 18:23) *
Свят-свят, ассемблер, только ассемблер cool.gif Верблюжьи исходники - на асме.

Тогда может проще их "пересобрать", например, с использованием SPF4 (с пониманием ассемблерных команд у MSP30 всё неплохо) были вроде
уже сделаны некоторые варианты от Михаила.

Сообщение отредактировал Kopa - Nov 17 2012, 15:00
Go to the top of the page
 
+Quote Post
chu
сообщение Nov 17 2012, 15:10
Сообщение #145


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

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



Цитата(Kopa @ Nov 17 2012, 21:47) *
Тогда может проще их "пересобрать", например, с использованием SPF4 (с пониманием ассемблерных команд у MSP30 всё неплохо)

Да, буду пересобирать camelforth430 сам. Кросс пока не интересует. Интересует полноценная форт-система на кристалле. Аналогичная amforth"у.
Вот MrYuran говорит: нет прерываний. Будем поглядеть что можно сделать. Опять же, round-robin multitasker. А так же встроенный ассемблер. Но это уже кажется невпихуемо. Или впихуемо, но несуразно для 16 Кбайт у F235-го.
Вот, както так, почти "свой" rolleyes.gif форт, но не сразу...

Сообщение отредактировал chu - Nov 17 2012, 15:13
Go to the top of the page
 
+Quote Post
SBE
сообщение Nov 17 2012, 22:25
Сообщение #146


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

Группа: Участник
Сообщений: 108
Регистрация: 8-09-05
Пользователь №: 8 384



Цитата(chu @ Nov 17 2012, 12:22) *
Скачал (через техасских инструментов) какойто iar workbench kickstart ( EW430-5511 ) с ограничением по объёму кода в 4 Кбайт.
Похоже для сборки camelforth430 не годиться. Что делать?
( 30-дневную версию не предлагать: копаться буду долго, и мне не нужна неожиданное "опа!", когда "уже вот-вот" biggrin.gif )

Или это ограничение только на кодогенерацию компилятора С ? Просветите, темный я.


Kickstart обязан собирать camelforth430, форт-система на ассемблере, а ограничение по коду только для С. Под эту среду он же и сделан.
Цитата
The IDE includes a code size limited C-Compiler/Unlimited Assembler/FET Debugger/Simulator. T


Прерывания форту ортогональны, вектора в camelforth430 перенесены в RAM и заглушены. Нужно написать свой обработчик на ассемблере. Если есть форт-асссемблер, то можно обработчики ваять прямо в интерпретаторе.

ИМХО 16К флеша для MSP430 для забав с фортом более чем достаточно, скорее всего в любом варианте. На меньшее для начала лучше не ориентироваться.

В принципе форт-систему можно запустить на IAR и из-под эмулятором, без железки. Терминал в отладчике C-Spy есть, нужно только stdio прикрутить. В ограниченной версии может не выйти из-за ограничений по C.

Кросс-компиляция она полезна и для полноценной системы на кристале. Без нее новые слова добавлять только через компиляцию на железке (или ручками делать кросс-компиляцию), а это способ пригодный только для простых случаев, типа обучения.
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 18 2012, 13:58
Сообщение #147


Знающий
****

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



Цитата(SBE @ Nov 18 2012, 01:25) *
ИМХО 16К флеша для MSP430 для забав с фортом более чем достаточно, скорее всего в любом варианте. На меньшее для начала лучше не ориентироваться.

Немного не по теме, но пост показался интересным RetroBSD on Maximite
Первым в запуске удостоился вниманием Форт, после пары игрушекsm.gif

Сообщение отредактировал Kopa - Nov 18 2012, 14:02
Go to the top of the page
 
+Quote Post
chu
сообщение Nov 19 2012, 04:28
Сообщение #148


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

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



bb-offtopic.gif 2 dynamic-wind ph34r.gif
Прикрепленный файл  seaforth.zip ( 25.46 килобайт ) Кол-во скачиваний: 94


Сообщение отредактировал chu - Nov 19 2012, 04:45
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 19 2012, 06:17
Сообщение #149


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

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



Цитата(chu @ Nov 17 2012, 18:10) *
А так же встроенный ассемблер.

Имеется в репозитории в виде файла was4.f, а также в виде асм-модуля

Ещё у немцев на сайте есть интересные примеры, в т.ч дизасм

Код
; This small 430 assembler produces code at IHERE
; WAS means Willems ASsembler for MSP430 and 4E4th

; Complete security by checking for valid registers
; and extended checking on addressing errors
; 4 nibbles form dual opcode | instr. | S-reg. | modes | D-reg.  |
; Single opcode              | 9-bit instruc.   | mode | D/S-reg |
; Conditionals               | 6-bit instr | 10-bit rel. branch |
; Only basic opcodes: 03DE bytes
; With corrected and shrinked an control structs: 05C0 bytes
; Together with DAS6.F only 0A16 bytes
; When used together with DAS, first compile DAS !!!!


DAS - я так понимаю, дизасм.
Вместе с асмом 2,5 кила из оставшихся восьми.

Мне проблема на данном этапе видится несколько в другом. Очень мало ОЗУ оставили пользователю, несколько десятков байт.
Без переразметки ничего более-менее путного не создать.
Логично было бы урезать стеки и особенно входной буфер, заодно будет стимул вводить как можно более короткие слова.

В качестве лирического отступления:
Принес в выходные платку ланчпада домой, показал 10-летнему сыну, как "мозги для нашего будущего робота".
Несколько строчек в терминале
Код
: зелёный green;
: красный red;
: вкл cset;
: выкл cclr;

красный вкл
зелёный вкл
красный выкл
зелёный выкл

...

красный мигнуть
итд

произвели неизгладимое впечатление: "круто, он учится понимать новые слова!"


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
chu
сообщение Nov 19 2012, 15:33
Сообщение #150


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

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



Цитата(MrYuran @ Nov 19 2012, 13:17) *
Мне проблема на данном этапе видится несколько в другом. Очень мало ОЗУ оставили пользователю, несколько десятков байт.
Без переразметки ничего более-менее путного не создать.
Логично было бы урезать стеки и особенно входной буфер, заодно будет стимул вводить как можно более короткие слова.

Код
; ----------------------------------------------------------------------
; init430G2553.s43 - reset interupt service routine - MSP430G2553
; ----------------------------------------------------------------------

; CamelForth RAM memory map:
;   UP          User Pointer, 2 bytes
;   UAREA       User area, 32 bytes
;   UAREA+20h   HOLD area, 40 bytes, grows down from end
;   UAREA+48h   PAD buffer, 88 bytes, must follow HOLD area
;   UAREA+A0h   Parameter stack, 128 B, grows down from end
;   UAREA+120h  Return stack, 128 B, grows down from end
;   UAREA+1A0h  TIB Terminal Input Buffer, 88 bytes

Действительно, стеки можно сократить, раза в четыре...
Go to the top of the page
 
+Quote Post

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

 


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


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