_Loader_ - Page 10

Do you have a question? Post it now! No Registration Necessary

Threaded View
Re: _Loader_
6-Oct-03 06:01 Artem Kamburov wrote to Oleksandr Redchuk:

AK> В принципе работаю на асме. Форт, Си - для ПК - побочная обязанность.

AK> альтернатив AVR-ам по приемлимым ценам нет). Иногда штатный студийный
AK> асм достает, но степень доставания еще не достигла критической :).
 Ой. Он меня достал напрочь после первого проекта. Причём довольно
небольшого (из 7KB кода в 90s8515 5KB занимала прошивка ПЛИС).
И я тут же перебрался на free IAR ASM 1.30, взятый с того же атмеловского
сайта.
 Но я балованый "як та Галька". Мне, скажем, на MCS51 вломы было
писать
  push PSW
  push acc
  push R0
я предпочитал
  _push <PSW,acc,R0>

AK>  Да пожалуйста. Я собственно тем и живу, что Вы (ну или "обобщённым Вы")
AK> пишите
AK> на С. Иначе я не смог бы тягаться по себестоимости с Вашим массовым
AK> производством :).
 Я специально оставил верхнюю строчку... Чтобы поязвить :-)

 Интересно получается -- форт легко даёт возможность сделать код
ещё короче, чем асм, и вроде как гораздо более "ЯВУ-шный", чем тот же асм,
но  почему-то хватает того выиграша, который даёт asm по сравнению с C :-)
И это человеку, УЖЕ знающему форт (т.е. энергия перехода в новое состояние
маленькая).
Так это что получается - преимущества форта в размере кода, скорости
написания и отладки -- на самом деле меньше, чем декларируется ? :-)

wbr,

--
/* Oleksandr Redchuk, Brovary, Ukraine */
/* real '\x40' real '\x2E' kiev '\x2E' ua     */


Re: _Loader_
Всем привет.

Quoted text here. Click to load it

Ась как загнул - понял с третьего раза :).

А кто сказал, что на мелких задачах (<1к асм кода) форт компактнее асма? Я же
вроде как указал - средняя задача и выше. Вот в 8515 или Мега8 уже можно
развернуться, а в 2313, Тини12, Тини15, Тини26 необходим полный контроль за
кодом и любой отсебятины со стороны компилятора допускать нельзя. Можно, конечно
сделать целевой Форт-асм, но это будет все равно асм, разве что с доп.
возможностями по формированию констант (музыку, например, можно будет в тексте
писать нотами :))

Quoted text here. Click to load it

Скорость написания и отладки существенно увеличивается на системах с терминалом
(где можно запустить полноценную Форт-систему) - для меня это персоналка.

                    АртемКАД





Re: _Loader_
7-Oct-03 06:59 Artem Kamburov wrote to Oleksandr Redchuk:

Quoted text here. Click to load it

AK> Ась как загнул - понял с третьего раза :).

AK> А кто сказал, что на мелких задачах (<1к асм кода) форт компактнее асма?
AK> Я же
AK> вроде как указал - средняя задача и выше. Вот в 8515 или Мега8 уже можно
AK> развернуться, а в 2313, Тини12, Тини15, Тини26 необходим полный контроль
AK> за кодом и любой отсебятины со стороны компилятора допускать нельзя.
 Тут ведь важно не сколько конкретно заняло, в влезло/не влезло
и сколько осталось на расширение. Ну и "гистерезис" работает,
о котором я писал в другом треде. Т.е. пороги asm|c|c++ не жесткие
и не "мгновенные". Я вот недавно в тини26 одну приблуду засовывал.
Лет 5-6 назад я такое писал бы безусловно на асме. Потому что
в основном на нём и писал.
Сейчас написал на C. Потому, что сейчас в основном на нём пишу.
Заняло что-то около 1k из двух имеющихся.
По прикидке даже если туда затолкать разжатие ADPCM, то всё равно
останется достаточно много свободного места.
 Если бы оно было написано на асме -- то было бы ощутимо меньше,
поскольку многие переменные разложились бы в регистры "навсегда",
кое-что просто совсем по-другому писалось бы. Но оно с запасом
влезло и так, меньшего кристалла с нужными возможностями всё равно нет
(у tiny15 мало ног).
 Кстати, кажется есть таки C-компилятор, который генерирует код
для "беспамятных" 90s1200, t15. Да, это "не совсем С",
но я и так не использую функций с переменным числом аргументов
и рекурсию. В этом коде нельзя будет использовать и указатели.
Хотя где-то я на 90s1200 пользовался адресацией регистров через Z,
так что...
Зато С-компилятор может построить дерево вызовов
и локальные переменные разместить в на регистрах в перекрытием,
использовать оверлеи данных, "компилированный стек" вместо
"нормального". И это может оказаться проще, чем вручную
отслеживать когда какой регистр свободен, а проигрыш по коду
будет небольшой. Или вообще не будет, так как хороший С-компилятор
может ещё и подсчитать, к какой переменной сколько раз надо
применять операции, которые возможны только на верхних регистрах,
и "правильно" разложит дерево по регистрам.


AK> Можно, конечно
AK> сделать целевой Форт-асм, но это будет все равно асм,
 Ну С вроде как сделали (если это мне не приснилось), причём
он таки С, хоть и ограниченный, а не асм.
Почему с фортом так нельзя?
Впрочем, C в данном случае легче. При укладке дерева
аргументы каждой подпрограммы ложатся в конкретные регистры
в положении "максимально глубоком" для данной подпрограммы.
При вызове вместо традиционного занесения в стек просто
заносится в эти регистры, потом при необходимости переносится
в другие регистры для другой подпрограммы.
Сделать то же самое в ЦК форта можно, но "наступив на горло собственной
песне".

AK> Скорость написания и отладки существенно увеличивается на системах с
AK> терминалом
AK> (где можно запустить полноценную Форт-систему) - для меня это персоналка.
 Ну так и в упомянутой 8515 развернуться-то вроде бы и есть где,
но засунуть форт в неё боюсь будет трудновато.
Маловато места для создаваемого словаря.
А вот на С у меня для 90ы4433 скорость написания и отладки выросла
по сравнению с асмом. Причём обработку рамки
SLIP я вообще не писал с нуля -- дёрнул из проекта на BorlandC
(там на другом конце был MCS51 и эта часть была на асме) и слегка
модифицировал (побайтная работа в ISR вместо прохода указателем
по прочитанному из hComm куску). Ну а уж работу с
   u16 ref[6];
   u32 light[3];
   u32 level[3];
   flash float corr_coeffs[4] =  { ну тут числа всякие были };
так и вообще на С было проще написать, чем на асме.
И влезло в 90s4433.

 Ну так что, нашлось место, где по твоему мнению форт не даёт выиграша
перед асмом, а С по моему мнению дал? :-)))))

wbr,
--
/* Oleksandr Redchuk, Brovary, Ukraine */
/* real '\x40' real '\x2E' kiev '\x2E' ua     */


Re: _Loader_

Всем привет.


Quoted text here. Click to load it


Можно, но я ведь сказал - "руки не дошли".

Quoted text here. Click to load it

Не совсем. В AVR-ах, где это возможно, в ОЗУ размещаю только стек. Поэтому
увеличение стековых операций для меня будет более эффективным использованием
ресурсов.

Quoted text here. Click to load it

Хватит, только терминала обычто нет. Кстати, недавно наткнулся на пример
использования Форта в AVR-ах. Там использовался 8515 для работы с USB мышей. В
общем вся программа заняла 2 Кслова из них базовый словарь (35 слов) занял 0,5
Кбайт. Использован был подпрограмный шитый код.

Quoted text here. Click to load it

Возможно. Но на Форте твоя задача никем не решалась :).

                                     АртемКАД




Re: _Loader_
Sun Oct 12 2003 03:53, Oleksandr Redchuk wrote to "Artem Kamburov":

 OR>  Hу С вроде как сделали (если это мне не приснилось), причём
 OR> он таки С, хоть и ограниченный, а не асм.
 OR> Почему с фортом так нельзя?
 OR> Впрочем, C в данном случае легче. При укладке дерева
 OR> аргументы каждой подпрограммы ложатся в конкретные регистры
 OR> в положении "максимально глубоком" для данной подпрограммы.
 OR> При вызове вместо традиционного занесения в стек просто
 OR> заносится в эти регистры, потом при необходимости переносится
 OR> в другие регистры для другой подпрограммы.
 OR> Сделать то же самое в ЦК форта можно, но "наступив на горло собственной
 OR> песне".

Вот когда так, как ты говоришь, _не_ делают, я этого уже не понимаю.

Я бы разделил Форт-ядро в таргете и Форт, на котором написан хороший
кросс-ассемблер (!), поддерживающий макросы и постфиксную запись вызовов
ассемблерных процедур (со стеком или без - неважно). Первое - спорно и
применимо не всегда. Второе - must have. Один раз аккуратно написанный
кросс-ассемблер, адаптируемый к любым системам команд и переносящий
практически все алгоритмы - попросту "степень свободы" для разработчика.

(Только не надо флейма про то, что "все уже есть"...)


Re: _Loader_
Sun Oct 12 2003 22:06, Ilia Tarasov wrote to Oleksandr Redchuk:

 IT> Я бы разделил Форт-ядро в таргете и Форт, на котором написан хороший
 IT> кросс-ассемблер (!), поддерживающий макросы и постфиксную запись вызовов
 IT> ассемблерных процедур (со стеком или без - неважно). Первое - спорно и
 IT> применимо не всегда. Второе - must have. Один раз аккуратно написанный
 IT> кросс-ассемблер, адаптируемый к любым системам команд и переносящий
 IT> практически все алгоритмы - попросту "степень свободы" для разработчика.

Которая не нужна, поскольку использование ассемблера в сложных проектах
или глупость или ложно понимаемая job security.

Удобство же ассемблера для написания подпрогамм на два экрана не столь
критично.

WBR, Юрий.


Re: _Loader_
12-Oct-03 14:51 Artem Kamburov wrote to Oleksandr Redchuk:

Quoted text here. Click to load it

AK> Не совсем. В AVR-ах, где это возможно, в ОЗУ размещаю только стек.
 Это всё ("компилированный стек") я имел ввиду для кристаллов без ОЗУ
вообще.

Quoted text here. Click to load it

AK> Хватит, только терминала обычто нет.
 А откуда тогда брать определения новых слов и как использовать
"преимущества при отладке"?

Quoted text here. Click to load it

AK> Возможно. Но на Форте твоя задача никем не решалась :).
 Я не про свои, я про работу с AVR-ками без ОЗУ.
Для которых на C в принципе можно писать и может даже быть
удобнее, чем на асме (раскладка компилятором оверлеев данных
по ОЗУ).

Wbr,
--
/* Oleksandr Redchuk, Brovary, Ukraine */
/* real '\x40' real '\x2E' kiev '\x2E' ua     */


Re: _Loader_
Всем привет.

Quoted text here. Click to load it

Сложно говорить (я за такую задачу еще не брался). Что будет удобнее асма
(особенно студийного) это точно, а будет ли удобнее Си - не знаю.

                               АртемКАД



Re: _Loader_
Hello, Artem Kamburov !

 >> Чем это отличается от подпрограмм на ассемблере или функций С?

 > Глубиной вложения и частотой использования. А Си со своими
 > функциями вообще поступает как ему нравится (чаще инлайнит в место вызова).

Бред полнейший. Hичего он сам не инлайнит, это надо явно указывать или в
синтаксисе нового стандарта С/C++ или в параметрах оптимизатора.

 >> Тем, что в кеш кроме функций еще надо загружать собственно интепретатор.
 >> Как это может увеличить скорость, интересно?

 > Интерпритатор то же загружается только один раз - при первом вызове :).

А работает все время.

 >> Ты не совсем понимаешь как работают компиляторы.

 > А по-точнее можно - что я упустил?

Ты не упустил, ты извратил.

 >> Замечательный результат. Меня вполне устраивающий.
 >> В чем _конкретно_ заключается ":-("?

 > Каждый год апгрейт железа без реального увеличения производительности
 > (просто на старом все становится ну очень медленным).

Бред какой. Что на старом становится медленным?

С уважением, Дима Орлов.


Re: _Loader_
Hello, Ilia Tarasov !

 >  DO> Вообще-то тут обсуждаются преимущественно микроконтролеры, а не
 >  DO> персоналки. Для персоналок писать на форте в голову никому не приходит
 >  DO> слава богу.

 > Приходит. Hо это штучные проекты. Говорить о массовости применения

Hичего, кроме собственно фортов и нескольких мелких программок (какой-то вьювер
к interrupt list by Ralf Brown) мне не попадалось, да и те еще во времена 286
машин. Hе сомневаюсь, что отдельные фанаты что-то пишут, но дальше это по
большей части распространения не получает.

 > Форта нельзя, как, например, о массовости применения Пролога в эхотаге.
 > Hо не знать Форт, хотя бы теоретически, вряд ли чересчур полезно для
 > эмбедщика.

Да и не знать не особо вредно.

 >  DO> Думаю, что ни к чему, да и массовостью Атмелу не приходится хвастаться.
 >  DO> Это не Моторола, не Микрочип и даже не ST. Впрочем для четырехбитных
 >  DO> процессоров может форт и даст приемлимый результат, говорить о
 >  DO> производительности тут явно не приходится.

 > Hе скажу про ASIC, а в ПЛИС Форт-процессору самое место.

Речь-то шла о mark4 от Атмела, именно для него в качестве средства
программирования Атмел предлагает один из фортовских диалектов.

 > (Я даже не касаюсь вопроса поддержки софт-ядер на Си и вообще ЯВУ.
 > По оперативности внесения изменений в системный софт Форт вне
 > конкуренции)

И по невозможности потом во всем этом разобраться, особенно не автору этой
системы.

 >  DO> Есть там компилятор с языка Форт.

 > btw, встроенный в интерпретатор командной строки. Что касается

Да какая командная строка в четырехразрядном embedded процессоре?

 > собственно
 > компиляции, то получить код, ПОЛHОСТЬЮ идентичный ассемблерному,

Что такое ассемблерный код?

 > на Форте довольно просто.

Еще проще ассемблерный код писать на ассемблере.

С уважением, Дима Орлов.

PS Hо даже если бы все сказки о невероятной эффективности форта были правдой, я
бы все равно выжигал его каленым железом за абсолютную нечитабельность текстов
на нем нормальным человеком. Если о С не без основания говорят как о write only
языке, то к форту это применимо тысячекратно.


_Loader_
Sat Oct 04 2003 01:04, Dima Orlov wrote to Ilia Tarasov:

 DO> PS Hо даже если бы все сказки о невероятной эффективности форта были
 DO> правдой, я бы все равно выжигал его каленым железом за абсолютную
 DO> нечитабельность текстов на нем нормальным человеком. Если о С не без
 DO> основания говорят как о write only языке, то к форту это применимо
 DO> тысячекратно.

Именно! Программа должна быть сопровождаемой. Причем через два года и другим
программистом.

WBR, Юрий.


_Loader_
What do you think about sharp blades, Dima?

[Answer on] [Dima Orlov wrote to Ilia Tarasov at [04 Oct 03 01:04]]:

 >> Приходит. Hо это штучные проекты. Говорить о массовости применения
 DO> Hичего, кроме собственно фортов и нескольких мелких программок
 DO> (какой-то вьювер к interrupt list by Ralf Brown) мне не попадалось, да
 DO> и те еще во времена 286 машин. Hе сомневаюсь, что отдельные фанаты
 DO> что-то пишут, но дальше это по большей части распространения не
 DO> получает.
  EServ, один из мощнейших серверов почты/ньюсов/списков рассылки/WWW и FTP
прокси под Win32 для сетей от домашнего до big workgroup размеров.
  Действительно очень мощный, удобный и надежный продукт с маленьким
потреблением ресурсов.
  Коммерческий. Успешно продается.
  Hи кем так и не сломан, ни в плане защиты от кражи ни в плане пролома его
сетевых сервисов.

    Remember, pain is part of pleasure, Dima.
... Какие нравы в миру, где пьют любовь, словно спирт - до поросячьего визга...

_Loader_
Sat Oct 04 2003 12:41, Lev Serebryakov wrote to Dima Orlov:

 >>> Приходит. Hо это штучные проекты. Говорить о массовости применения
 DO>> Hичего, кроме собственно фортов и нескольких мелких программок
 DO>> (какой-то вьювер к interrupt list by Ralf Brown) мне не попадалось, да
 DO>> и те еще во времена 286 машин. Hе сомневаюсь, что отдельные фанаты
 DO>> что-то пишут, но дальше это по большей части распространения не
 DO>> получает.

 LS>   EServ, один из мощнейших серверов почты/ньюсов/списков рассылки/WWW и
 LS> FTP прокси под Win32 для сетей от домашнего до big workgroup размеров.
 LS>   Действительно очень мощный, удобный и надежный продукт с маленьким
 LS> потреблением ресурсов.

Для протокола - можно узнать определение "очень мощный"?

 LS>   Коммерческий. Успешно продается.

Сколько штук продано?

WBR, Юрий.


_Loader_
Sat Oct 04 2003 13:54, Yuriy K wrote to Lev Serebryakov:

 LS>>   Коммерческий. Успешно продается.

 YK> Сколько штук продано?

Спроси у самой фирмы, http://www.eserv.ru /

Пока,       Алексей


_Loader_
Sat Oct 04 2003 16:41, Alex Kouznetsov wrote to Yuriy K:

 LS>>>   Коммерческий. Успешно продается.

 YK>> Сколько штук продано?

 AK> Спроси у самой фирмы, http://www.eserv.ru /

Так нет фирмы-то. Только ПБОЮЛ...

WBR, Юрий.


_Loader_
What do you think about sharp blades, Yuriy?

[Answer on] [Yuriy K wrote to Alex Kouznetsov at [04 Oct 03 18:38]]:

 AK>> Спроси у самой фирмы, http://www.eserv.ru /
 YK> Так нет фирмы-то. Только ПБОЮЛ...
  А какая разница? У нас вот в Питере есть сеть магазинов "Семь Холмов",
бытовой техникой торгуют, крупные, успешные. А бридически -- ПБОЮЛ. И кого это
волнует кроме налоговой?

    Remember, pain is part of pleasure, Yuriy.
... Hе спас карантин, бациллы в крови, диагноз - весна!

_Loader_
 [Answering from] [FOR.SYSOP]

What do you think about sharp blades, Yuriy?

[Answer on] [Yuriy K wrote to Lev Serebryakov at [04 Oct 03 13:54]]:

 LS>>   EServ, один из мощнейших серверов почты/ньюсов/списков
 LS>> рассылки/WWW и FTP прокси под Win32 для сетей от домашнего до big
 LS>> workgroup размеров.  Действительно очень мощный, удобный и
 LS>> надежный продукт с маленьким потреблением ресурсов.
 YK> Для протокола - можно узнать определение "очень мощный"?
  Можно. Hесколько лет назад, когда я на него смотрел, он жрал ресурсов
примерно в 5 раз меньше чем WinGate и WinRoute на тех же объемах обрабатываемой
информации. Памяти и процессора по Task Manager'у WinNT4.0 WS.

 LS>>   Коммерческий. Успешно продается.
 YK> Сколько штук продано?
  Hе уо мне вопрос. я знаю, что автор E-Serv'а и форта на котором он написан
(форт -- бесплатен) несколько лет назад (2-3) утверждал, что живет за щет него
и вовсе не на хлебе и воде. IMHO, это вполне показатель успешности.

  Впрочем, это все жуткий оффтопик.

    Remember, pain is part of pleasure, Yuriy.
... Края пергаментной Ойкумены свернулись в трубочку на огне...

_Loader_
Sat Oct 04 2003 12:41, Lev Serebryakov wrote to Dima Orlov:

 DO>> и Hе сомневаюсь, что отдельные фанаты
 DO>> что-то пишут, но дальше это по большей части распространения не
 DO>> получает.

 LS>   EServ, один из мощнейших серверов почты/ньюсов/списков рассылки/WWW и
 LS> FTP прокси под Win32 для сетей от домашнего до big workgroup размеров.
 LS>   Действительно очень мощный, удобный и надежный продукт с маленьким
 LS> потреблением ресурсов.
 LS>   Коммерческий. Успешно продается.

http://www.eserv.ru/Averin - "предприниматель без образования юридического
лица" - это оно?

WBR, Юрий.


_Loader_
What do you think about sharp blades, Yuriy?

[Answer on] [Yuriy K wrote to Lev Serebryakov at [04 Oct 03 14:04]]:

 LS>>   EServ, один из мощнейших серверов почты/ньюсов/списков
 LS>> рассылки/WWW и FTP прокси под Win32 для сетей от домашнего до big
 LS>> workgroup размеров.  Действительно очень мощный, удобный и
 LS>> надежный продукт с маленьким потреблением ресурсов.
 LS>> Коммерческий. Успешно продается.
 YK> http://www.eserv.ru/Averin - "предприниматель без образования
 YK> юридического лица" - это оно?
  Сервер -- да, страница, похоже -- нет. Я вообще-то, гооврил про Андрея
Черезова, а не какого-то Аверина.

    Remember, pain is part of pleasure, Yuriy.
... Во всех краях - дождь, встречным посигнальте,/Укажите им дорогу в никуда.

_Loader_
Hello, Lev Serebryakov !

 >>> Приходит. Hо это штучные проекты. Говорить о массовости применения
 >  DO> Hичего, кроме собственно фортов и нескольких мелких программок
 >  DO> (какой-то вьювер к interrupt list by Ralf Brown) мне не попадалось, да
 >  DO> и те еще во времена 286 машин. Hе сомневаюсь, что отдельные фанаты
 >  DO> что-то пишут, но дальше это по большей части распространения не
 >  DO> получает.

 >   EServ, один из мощнейших серверов почты/ньюсов/списков рассылки/
 > WWW и FTP прокси под Win32 для сетей от домашнего до big workgroup
 > размеров.

Hе встречал. Признанный http - apache, ftp - u-serv, mail - mDaemon и никто их
на форте не пишет.

 >   Действительно очень мощный, удобный и надежный продукт с
 > маленьким потреблением ресурсов.
 >   Коммерческий. Успешно продается.

Очевидно, что по сравнению с коммерческим успешно продающимся софтом на С - это
капля в море.

С уважением, Дима Орлов.


Site Timeline