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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 219 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Чт мар 14, 2013 01:14 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ilya писал(а):
Тырнет рекомендует подтянуть ногу SCK к питанию (ибо были случаи) - не особо помогло

А какая сейчас форма сигнала на SCK? Подтяжка имеет определенную цель - постараться выправить фронт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Чт мар 14, 2013 04:54 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Хищник писал(а):
Ilya писал(а):
Тырнет рекомендует подтянуть ногу SCK к питанию (ибо были случаи) - не особо помогло

А какая сейчас форма сигнала на SCK? Подтяжка имеет определенную цель - постараться выправить фронт.

Трудно сказать про форму сигнал (в виду отсутствия осцилла), подтяжка в данном случае нужна для отсечения лишних наводок.
Завёл в проге счётчик рестартов - за сутки набежало 38 шт., из них 10-12 при экспериментах с питанием, а с остальными надо разбираться. Правда за последние 10 часов пока нет прибавления!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Пт мар 22, 2013 19:36 
Ilya писал(а):
А "помогло" использование lockbyte=0x3b ( BLB0 Mode = 2), но это костыль.

Похоже где-то глючокс в загрузчике...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Сб апр 06, 2013 21:21 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
5.4.2013
Вышел релиз AmForth 5.1.
Изменения.
Код:
core: Automatic scoping of words. A system hook can be used to use a different wordlist than CURRENT to place a new word in. Thanks to Enoch for the idea and the code.
lib: very flexible CRC8 checksum generator and checker. Thanks to Enoch.
recipes: Critical Sections, Unbreakable Amforth, Efficient Bitmanipulation Dump Utilities, Ctrl-C and a few more. Thanks to Enoch and the others on the mailling list for code and inspiration.
core: -int does no longer leave the SREG register. It only turns off the global interrupt flag. Thanks to Enoch.
lib: major 1-wire enhancements: CRC checks and a better naming convention for all words. Thanks to Erich for help and substantial contributions.
appl: added the Arduino Leonardo. avrdude needs a small patch to write properly the eeprom on the Atmega32U4.
core: New popcnt (n -- m) counts the Hamming Weight of the given number.
core: renamed baud to ubrr.
core: nfa>lfa is a factor in a number of words. It generates the link field address from a given name field address.
doc: Farewell docbook XML, welcome reST. All documentation will be written in reStructured Text.
lib: Simple Quotations. Their typical use case is
: foo ... [: bar  baz  ;] ... ;
which is equivalent to

:noname bar baz ; Constant #temp#
: foo ... #temp# ... ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 09:10 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
!...блин, только 5.0 ковырять начал - втянулся уже. Шустрые какие, немцы эти


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 10:10 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
chu писал(а):
!...блин, только 5.0 ковырять начал - втянулся уже. Шустрые какие, немцы эти

Можно отслеживать текущие изменения кода используя SVN инструментарий.
Форум, тоже вроде, ихний действует.

P.S. 5.0 некоторое время назад тоже "поковырял" (в частности возможности использования генератора asm кода слов ядра из "исходного" некоего форт представления на базисе утилиты g4.fs в win32forth для "исправления" и пересборки слов ядра). В "черновом" варианте можно даже использовать. На 5.0 версии привёл утилиту преобразования "псевдо" Форт кода в asm представление. И варианта "урезанной" сборки для Atmega8515 (8Кб флеш)
Теперь думаю сделать и изменения для 5.1, но т.к. пока "перешёл" на PIC18 то "интерес" к amForth немного остыл:) Могу выложить, то что получилось, в текущем "черновом" варианте. Правда есть, какие-то непонятные "проблемы" с прикреплением к сообщению файла.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 12:23 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Отслеживать, конечно можно. Вот только переехать на свежую версию легко и непринужденно лично уменя не получается. Слишком много рутинных телодвижений. Попробую сформулировать:
1. уже больше, чем напрягает организация - одно форт-слово=один ассемблерный файл (прекомпилированная словарная статья), скомпонованные во множестве вложенных инклуд-файлов.
Еще с версии 4.2 неоднократно случающаяся ситуация - сижу такой, в творческом порыве ваяю чего-нибудь :writer; - вдруг оппа! - а стандартного слова-то нету (многа слов ненормативной лексики), не уследил. Легко лечится, конечно же, но осадочек остается. В итоге - прошивка с системой долой. Кристалл стирается, и по-новой - добавление недостающего желаемого, ассемблирование, прошивка, загрузка аплоудером (отдельная песня) опять же желаемого ( десяток а то и поболе "библиотечных" форт-файлов).
2. amforth местами допилен мною для моего удобства, иными словами некоторые комплектные файлы мною модифицированы, а так же есть дополнительные. В частности:
- ввел переменную rstf - reset\restart flags, в которой сохраняется источник крайнего сброса ( при холодном старте читается регистр MCUCSR и сохраняется в ней). Зачем мне это понадобилось, внятно и не скажу, просто вдруг подумалось, что может быть полезным. Кста, у оригиналов ( у немцев ) в версии 5.0 появилось что-то подобное, но как реализовано я пока не смотрел.
- с введением rstf пришлось модифицировать cold.asm. Далее.
- модифицировал оригинальные sleep.asm и no-wdt.asm - сделал условную компиляцию в зависимости от имен регистров в разных моделях микроконтроллеров ( привет Атымелям). у немцев в 5.0 эта проблемка тоже как-то решена, пока не вникал.
3.
- uploader. загрузка в amforth *.frt файлов. Штатным не пользуюсь - почему-то не хочется. пользуюсь собственным. слишком много телодвижений. последовательность выглядит примерно так:

>getcomm COMx
>S" длинный\путь\к\файлу\" setdir!
>S" файл.имя" setfile!
>getfile
>upload
>closefile
... повторяем последние 4 строчки сколько надо раз ...
>CommClose

если по невнимательности ошибся в порядке загружаемых файлов (ненормативная лексика) - сильно выручает marker, опять же если не забыл воткнуть его куда надо. уже смотрю в сторону nnCron с целью грузить файлы списком...
...
Подобная отсебятина может завести в тупик. Приходится с появлением каждой новой версии вдумчиво вникать и править...Вот я и говорю: появление свежей версии - уже стресс :shock:

Уфф, выговорился, наболело. Это я на сторонних сайтах говорю: amforth - без проблем! :work;
а на самом деле основная проблема - дотошная внимательность и обьемная рутина :zombypc;

Прошу пардону у сообщества за душевный стрипиз :?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 12:42 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
KPG писал(а):
Могу выложить, то что получилось, в текущем "черновом" варианте.

Спасибо, но наверное не стоит. Как видите, своих тараканов еле удерживаю под контролем.
KPG писал(а):
Форум, тоже вроде, ихний действует.

Я и рассылку ихнюю регулярно читаю. Не все понимаю, однако. Последние пару месяцев у них активно мутил воду некий Enoch. Суть его предложений я не уловил (туповат). Но смотри ка ты, благодаря его усилиям вышла новая версия...Опять кропотливо вникать...
Вот што такое "Automatic scoping of words. A system hook can be used to use a different wordlist than CURRENT to place a new word in." ? Слова все знакомые, а смысл ускользает. :^)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 13:01 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
chu писал(а):
. Но смотри ка ты, благодаря его усилиям вышла новая версия...Опять кропотливо вникать...

Отличий 5.0 от 5.1 немного. Для просмотра изменений core words использую программу показа различий KDiFF или WinMerge.

То, что слова отдельные файлы, это даже не плохое решение т.к. при возможности "целевой сборки" с убиранием "ненужных" слов это может
быть более просто. Досточно только отслеживать необходимость включения требуемых слов для прошивки в файл суммарного списка слов.
А использование для сборки ассемблера позволяет не выстраивать последовательность слов в строгом порядке "последовательного" использования
и не управлять сегментами кода.

P.S. И тоже опробую доп. решения для убирания "энтропии" в сборке amForth.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 13:32 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Да! о самом важном чуть не забыл. Есть у них нелеченный косяк, из-за которого ( я думаю ) многие неофиты, не совладав с amforth'ом, отодвинули его в сторону. Косяк проявляется в том, что ассемблированная без ошибок и прошитая система не выходит на внятную связь. Причина - ошибка в инициализации USART.
Смотрим ~\amforth-5.1\core\words\usart.asm:
Код:
; ( -- )
; MCU
; initialize usart
VE_USART:
  .dw $ff06
  .db "+usart"
  .dw VE_HEAD
  .set VE_HEAD = VE_USART
XT_USART:
  .dw DO_COLON
PFA_USART:          ; ( -- )

  .dw XT_DOLITERAL
  .dw USART_B_VALUE
  .dw XT_DOLITERAL
  .dw USART_B
  .dw XT_CSTORE

  .dw XT_DOLITERAL
  .dw USART_C_VALUE
  .dw XT_DOLITERAL
  .dw USART_C | bm_USARTC_en
  .dw XT_CSTORE

  .dw XT_UBRR
  .dw XT_DUP
  .dw XT_BYTESWAP
  .dw XT_DOLITERAL
  .dw BAUDRATE_HIGH
  .dw XT_CSTORE
  .dw XT_DOLITERAL
  .dw BAUDRATE_LOW
  .dw XT_CSTORE

  .dw XT_USART_INIT_RX
  .dw XT_USART_INIT_TX
  .dw XT_EXIT


Обратите внимание

.dw XT_DOLITERAL
.dw USART_C_VALUE
.dw XT_DOLITERAL
.dw USART_C | bm_USARTC_en
.dw XT_CSTORE


или
USART_C_VALUE
USART_C
bm_USARTC_en OR C!

что неверно.

Здесь:
USART_C_VALUE - значение записываемое в регист Ц последовательного приемопередатчика
USART_C - адрес регистра Ц последовательного приемопередатчика
bm_USARTC_en - бит (селектор) признака записи в регистр Ц ппп

Дело в том что в микроконтроллерах AVR8 регистр UCSRC (тот самый регистр Ц) и UBRRH ( бод рэйт генератор, старший байт) совмещены (имеют один и тот же адрес)
уфф, лучше приведу цитату из даташита на мегу32:
Цитата:
19.10.1 Write Access
When doing a write access of this I/O location, the high bit of the value written, the USART Reg-ister Select (URSEL) bit, controlswhich one of the two registers that will be written. If URSEL is zero during a write operation, the UBRRH value will be updated. If URSEL is one, the UCSRC setting will be updated.

URSEL - это и есть тот самый bm_USARTC_en
соответственно должно быть:
USART_C_VALUE bm_USARTC_en OR
USART_C С!

Ну и наконец-то правим немцев:
Код:
( -- )
; MCU
; initialize usart
VE_USART:
  .dw $ff06
  .db "+usart"
  .dw VE_HEAD
  .set VE_HEAD = VE_USART
XT_USART:
  .dw DO_COLON
PFA_USART:          ; ( -- )

  .dw XT_DOLITERAL
  .dw USART_B_VALUE
  .dw XT_DOLITERAL
  .dw USART_B
  .dw XT_CSTORE

  .dw XT_DOLITERAL
  .dw USART_C_VALUE  | bm_USARTC_en
  .dw XT_DOLITERAL
  .dw USART_C
  .dw XT_CSTORE

  .dw XT_UBRR
  .dw XT_DUP
  .dw XT_BYTESWAP
  .dw XT_DOLITERAL
  .dw BAUDRATE_HIGH
  .dw XT_CSTORE
  .dw XT_DOLITERAL
  .dw BAUDRATE_LOW
  .dw XT_CSTORE

  .dw XT_USART_INIT_RX
  .dw XT_USART_INIT_TX
  .dw XT_EXIT

...тожа чёта могём, когда хоча припрёт 8)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 14:01 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
KPG писал(а):
То, что слова отдельные файлы, это даже не плохое решение т.к. при возможности "целевой сборки" с убиранием "ненужных" слов это может быть более просто.

Да я и не спорю.
KPG писал(а):
Досточно только отслеживать необходимость включения требуемых слов для прошивки

Вот-вот, это-то и выдрачивает я и описывал - более сотни файлов скомпонованых в нескольких вложенных инклудах...

Как вариант, можно собрать все ассемблерные фрагменты в несколько ( не сотни, а - несколько!) файлов, сгруппировав их по стандартным наборам слов CORE, DOUBLE и т.д.
и определять селекторы-переменные ассемблера, как у них сделано для аппаратных модулей.
что-то вроде:
.set WANT_dup = 1 ; нужен
.set WANT_nip = 0 ; нинужен
.set WANT_swap = 1 ; нужен
.set WANT_-rot = 0 ; нинужен

как-то так, но я этим заморачиваться нибуду - лениво.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 14:36 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
"Раскодирование" исходников amForth для возможности изменения (5.0 немного отличается от 5.1)
AmForthSrc

P.S. Возможно окажется полезным для понимания устройства amForth и улучшения.
Некоторые "загадки" корней amForth непонятны:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Вс апр 07, 2013 14:49 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
chu писал(а):
Как вариант, можно собрать все ассемблерные фрагменты в несколько ( не сотни, а - несколько!) файлов, сгруппировав их по стандартным наборам слов CORE, DOUBLE и т.д.
и определять селекторы-переменные ассемблера, как у них сделано для аппаратных модулей.
что-то вроде:
.set WANT_dup = 1 ; нужен
.set WANT_nip = 0 ; нинужен
.set WANT_swap = 1 ; нужен
.set WANT_-rot = 0 ; нинужен

как-то так, но я этим заморачиваться нибуду - лениво.

Похожее решение в "другом Forth для AVR" где в каждом слове прописана его зависимость от других слов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Сб апр 27, 2013 15:24 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
когда мы говорим о причинах малой распространенности форта и его проблемах - надо осознавать, что это не проблемы форта, как языка программирования, а проблемы людей.
например является фактом, что и бейсик и паскаль были созданы как учебные языки программирования. языки, целью которых было обучение основам программирования. результат мы наблюдаем. масса свежеиспеченых специалистов с новеньким дипломом которые незахотели\несмогли использовать другие языки. появился спрос - рынок его быстренько удовлетворил. Visual Basic и Delphi.
"микроконтроллер для домохозяек". с этим можно соглашаться или протестовать. это свершившееся явление. всеразличных *дуин меньше уже не станет. люди, освоившие применение микроконтроллеров и программирование на *дуине, в своих мелких, домашних проектах будут их применять. для себя и для друзей. для дачи и дома. just for fun.
на этой волне Forth в лице amforth имеет хорошие шансы "внедриться в массовое сознание".
с вероятными последствиями.
цитата из личной переписки (на робофоруме)
Цитата:
Я верю в Форт.(почему не знаю, просто верю). Иначе не пришел бы учить форт.
человеку привычнее писать на Си. не знаю насколько профессионально он этим занимается. эта цитата - не аргумент конечно. просто человек чувствует потенциал присущий Forth'у.
а "домохозяйке с микроконтроллером" побарабану "особенности оптимизации интерпретатора шитого кода" :)) им интереснее - измерить температуру в теплице, включить свет при вхождении в комнату, покрутить двигателем - либо открыть калитку, либо включить насос и набрать воды. да просто - поморгать светодиодом :)) или совладать с ацп. самодельного робота по квартире погонять. где-то так.


Последний раз редактировалось chu Вс апр 28, 2013 08:22, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: amForth залить в железку
СообщениеДобавлено: Сб апр 27, 2013 17:45 
Не в сети

Зарегистрирован: Вт июл 03, 2012 19:50
Сообщения: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Тут обратная просьба - укажите ссылку на изиэлектроникс чтоб можно почитать о чем речь идет.
А по поводу массы свежеиспеченых специалистов с новеньким дипломом - так кто ж будет заниматься самообразованием?Да еще при том что популязации Форта практически нет ни какой.Все вокруг да около.Вообще создается впечатление что на военке он трудится, а туда попасть как сами понимаете....


Последний раз редактировалось capicator Сб апр 27, 2013 17:52, всего редактировалось 1 раз.

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

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


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

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


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

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