возврат из подпрограмм

Thu Jun 15 2006 00:20, Dmitry Orlov wrote to Vladimir Vassilevsky:

VV>> Ковыряние стартапа - гнилое дело. DO> Да, линкерный скрипт для правильно работающей сериализации при DO> программировании я целый день делал DO> трудности эти никому вокруг не только не интересны, но и вовсе непонятны К сожалению, эту тяжелую техническую работу можно доверять только опытным людям. Например, сделать самому. Иначе время делания этой части стремится к бесконечности и в проекте будет разложено несметное количество тайных и явных граблей :-)

DO> В общем жизнь тяжела. That's why they do pay you big bucks, как говорил мой бывший босс.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Reply to
Vladimir Vassilevsky
Loading thread data ...

,-' Hello, Dmitry Orlov! How is your connection today?

DO> Слабо поучаствовать или флеймить веселей? Я готов сделать на С и DO> проверить DO> работоспособность и предоставить любые материалы - исходники, листинги, DO> фотографии, осциллограммы. Hе скрою, что по большей части готовые куски DO> для всего этого у меня уже есть, но задачи-то достаточно типовые...

Если это мне, то слабо. У меня и форт-то не стоит... :-)

`-._ --- Alexander Kocharin ---

Reply to
Alex Kocharin

Hi Jurgis,

Wed Jun 14 2006 10:19, Jurgis Armanavichius wrote to Michael Zaichenko:

JA>>> А все те страхи, что ты перечислил, никак к стартапу не относятся. MZ>> Ты не понял. У камня есть комнда, после выполнения которой ты уже MZ>> не все можешь. И вот эта самая команда в стандартном стартапе MZ>> выполнится. В мэйне можешь хоть асм вызавть хоть на сях писать - MZ>> работать не будет.

JA> Да, я сразу не просек, прошу прощения. В таком случае конечно, нужно JA> подкорректировать стартап. Hо все-равно не понимаю, почему это очень JA> сложно, как тут некоторые расписывают. Это не очень сложно. Hо и не быстро.

MZ>> Можешь слить любой пример от кейла под любую плату и посмотреть - MZ>> сырец стартапа прицеплен к проекту. MZ>> Глянул первый попавшийся стартап - 1818 строк. Как думаешь, не много ли MZ>> для четырех CSов ;) JA> А там, небось, 80% - комментарии :-) Hу и что? А еще надо обьяснить компилятору, как юзать указатели на данные (DPPх). Еще надо согласно выбраной модели памяти и особенностей железа расписать линкеру где сидят какие сегменты. Вот кусок ликерного файла из живого проекта ... ICODE (40100H-4024eH), NCONST (40250H-43FFFH), NCODE (40400H-4FFFFH), NDATA (100000H-103FFFH) ... Теперь прикинь, с какими адресами прошивка сгенерится. В програматор ее не загрузишь - в 64 ром явно не лезет. Значит нужно еще постпроцессор заюзать, чтобы в прошивке адреса размапить. Все это вобщем не сложно. Если не в первый раз.

WBR, Michael.

Reply to
Michael Zaichenko

Hi George,

Wed Jun 14 2006 20:10, George Shepelev wrote to Michael Zaichenko:

MZ>> И экономить надо будет на тех поддержке, ремонте,

GS> Hет ремонта. Практический опыт - неисправное устройство заменяется GS> новым, если нет внешних повреждений. А как узнать какое конкретно устройство в большой и сложной системе неисправно?

MZ>> качестве документации, GS> Угу. При большом тираже и хорошую документацию делать дешевле ;-) Сделали в прошлой жизни систему автоматизированного создания документации, для одной серьезной и известной буржуйской фирмы. Она измерилово делает. Так я бы не сказал что эта система стоит дешево :) Тем не менее, она сократила приличное количество рутины и окупилась.

MZ>> что сразу переводит разработку в другой класс. GS> Проверено братьями-китайцами. Причем тут китайцы?

MZ>> Эт точно, щас на работе остался только один древний дозатор с кодом на MZ>> ассемблере. Hа 80с517 камне, у него есть сопроцессор и заменить нынче MZ>> нечем. Исходник на асме просто ужас, все константы числами, вменяемых MZ>> имен нет. GS> Есть хороший и плохой стиль написания исходника. Причём на любом языке GS> программирования. Думаешь, нельзя на сях задавать все константы числами GS> и тулить в исходник невменяемые имена? Запросто! ;) Можно. Hо если мне такой проект попытаются сдать, то пойдут лесом и без оплаты.

MZ>> Угу. Я однажды искал тяжелый глюк в сишной проге под c164 камень, и MZ>> внимательно просматривал сгенеренный асм. Глюк нашелся быстро. Hо MZ>> впечтлило меня качество кейловского комайлера сильно - путем дичайшей MZ>> оптимизации полученого асма я смог бы выиграть отсилы 5-10 процентов.

GS> Hаиболее эффективна не "покомандная" оптимизация, а разработка алгоритма GS> с учётом особенностей архитектуры, системы команд, объёма памяти и т.п. GS> нюансов. И после смены камня идущая на помойку. В сад такую эффективность.

Обычно камень под задачу выбирают. А ты похоже сначала камень купил, потом под него задачу придумывал :)

WBR, Michael.

Reply to
Michael Zaichenko

Hi Vladimir,

Thu Jun 15 2006 05:02, Vladimir Vassilevsky wrote to Michael Zaichenko:

VV> Мне бы ваши проблемы. VV> Вот кусок линкерного файла. Догадайтесь, что здесь для чего. VV> И в таком же духе еще примерно 15 килобайт. VV> Устанавливаются и проверяются какие-то левые переменные, и прочая, VV> и прочая. Единственное, что мне нравится - это фирменное расширение VV> файлов *.dlb Hеужели его руками писали? Это в какой системе такой изврат?

WBR, Michael.

Reply to
Michael Zaichenko

Thu Jun 15 2006 04:26, Michael Zaichenko wrote to Jurgis Armanavichius:

MZ> Еще надо согласно выбраной модели памяти и особенностей MZ> железа расписать линкеру где сидят какие сегменты. MZ> Вот кусок ликерного файла из живого проекта MZ> ... MZ> ICODE (40100H-4024eH), MZ> NCONST (40250H-43FFFH), MZ> NCODE (40400H-4FFFFH), MZ> NDATA (100000H-103FFFH) MZ> ... Мне бы ваши проблемы. Вот кусок линкерного файла. Догадайтесь, что здесь для чего. И в таком же духе еще примерно 15 килобайт. Устанавливаются и проверяются какие-то левые переменные, и прочая, и прочая. Единственное, что мне нравится - это фирменное расширение файлов *.dlb

#ifdef __WORKAROUNDS_ENABLED #ifdef __ADI_LIBEH__ #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532y.dlb, libx532y.dlb, libcpp532yx.dlb, libcpprt532yx.dlb, FPLIBS, libetsi532.dlb, libssl532y.dlb, libdrv532y.dlb, OMEGA #else #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532y.dlb, libx532y.dlb, libcpp532y.dlb, libcpprt532y.dlb, FPLIBS, libetsi532.dlb, libssl532y.dlb, libdrv532y.dlb, OMEGA #endif #else #ifdef __ADI_LIBEH__ #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532.dlb, libx532.dlb, libcpp532x.dlb, libcpprt532x.dlb, FPLIBS, libetsi532.dlb, libssl532.dlb, libdrv532.dlb, OMEGA #else #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532.dlb, libx532.dlb, libcpp532.dlb, libcpprt532.dlb, FPLIBS, libetsi532.dlb, libssl532.dlb, libdrv532.dlb, OMEGA #endif /* } */ #endif /* } */ #if defined(USE_FILEIO) || defined(USE_PROFGUIDE) #ifdef __WORKAROUNDS_ENABLED /* { */ $LIBRARIES = LIBS, librt_fileio532y.dlb; #else $LIBRARIES = LIBS, librt_fileio532.dlb; #endif /* } */ #else #ifdef __WORKAROUNDS_ENABLED /* { */ $LIBRARIES = LIBS, librt532y.dlb; #else $LIBRARIES = LIBS, librt532.dlb; #endif /* } */ #endif /* } */

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Reply to
Vladimir Vassilevsky

Thu Jun 15 2006 05:45, Michael Zaichenko wrote to Vladimir Vassilevsky:

VV>> Вот кусок линкерного файла. Догадайтесь, что здесь для чего. MZ> Hеужели его руками писали? Cкорее, ногами. Но человек писал, не машина.

MZ> Это в какой системе такой изврат?

Штатный файл от VDSP. Его пытались сделать универсальным на все случаи жизни. И стартап там такой же веселый по той же причине. BTW, в CCS c этим IMHO даже хуже, т.к. есть много зависимостей в библиотеках.

VLV

"Клянусь всем тем, во что когда-либо верили дураки" (c) Вальтер Скотт

Reply to
Vladimir Vassilevsky

Tue Jun 13 2006 22:43, Pavel Grishin wrote to Alex Kouznetsov:

AK>> Примерчик не приведешь?

PG> Есть готовое y почти всех pеализаций Фоpта для IBM, пpо что и говоpю.

Вот и я говорю, готовый полноценный Форт занимает от 4 до 8 кило прoграммной памяти.

PG> Hа 51 сделал коммеpческий пpоект в пpошлом веке. PG> Пpога заняла полтоpа кило - это pешение задачи.

То есть, прикладная задача заняла полтоpа кило, а сама Форт система сколько?

PG> Hа AVR сам написал, но не запyстил, обнаpyжил yже готовенькое PG> в AnsForth - только выбиpай тип пpоца и готов для него код! :)

Что ты называешь AnsForth? Если ANS Forth - то это всего лишь стандарт, т.е. документ.

PG> Адpесный интеpпpетатоp - небольшая пpогpамма, написанная

Какой-то кусочек полного Форта может быть сколь угодно мал. Нaпример, для подпрограммного шитого кода aдpесный интеpпpетатоp занимает 0 байт ;-)

Вопрос в том, сколько места занимaет полный Форт. Например, SPF4 занимает ~70 кило, хотя он использует подпрограммный шитый код. Или ты Фортом называешь любой маленький кусок Форта?

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

Reply to
Alex Kouznetsov

Здравствуйте

George Shepelev пишет:

В Тини15 стек аппаратный 3 уровневый, команд POP и PUSH нет. А Си есть. Пробовал ICCTiny фирмы ImageCraft. Нормально работает и пишется. Всякие там дёрганья ножками и целочисленная арифметика. Напомню, в Тини15 512 командных слов флешка (1кБ) и 32 ОЗУ.

С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

Здравствуйте

Yuriy K пишет:

Не, зря ты так. Я тут по нужде вынужден был пользоваться Vim (на удалённой машине), так когда вернулся обратно в WIn98, то стал чувствовать дискомфорт. Очень удобная вещь. Пришлось качать для Виндов. Вот если бы была помощь по русски (приемлимо понимаю, но не люблю английский), да и не помешали бы уроки для новичков, показывающие последовательность действий при типовой работе. С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Wed, 14 Jun 2006 19:04:30 +0400:

IH>>> Осталось спросить у Георгия как давно он пишет на С для PIC, и на IH>>> основании чего он сделал такой вывод. JA>> Я понял так, что некоторые люди, по какой-то непонятной причине, не JA>> приемлют программирование на ЯВУ (например, на C). Hу, бывает...

GS> К сожалению ты понял неправильно. У некоторых людей была GS> возможность сравнить практические результаты программирования на GS> ассемблере и сях _реальных_ проектов. Эхотажных, где цена и ресурсы GS> критичны.

Причем эта возможность была у большинства тут использующих С. И они на своем собственном опыте убедились в эффективности такого использования.

dima

formatting link

Reply to
Dmitry Orlov

Пpивет, George.

Вот что George Shepelev wrote to Kirill Frolov:

KF>> Как было выше замечено, пpоект на ассемблеpе, как пpавило, KF>> небольшой и огpаничивается одной единицей компиляции с org 0x100.

GS> В эхотаге скоpее с org 0 ;)

org 26h и ни байтом меньше. ;-) Ибо в x51 последний вектоp пpеpывания по адpесy 23h.

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== Пpоблемy надо pешать до того, как она появится. ====

Reply to
Michael Belousoff

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Wed, 14 Jun 2006 19:18:08 +0400:

JA>>>> (Вкратчиво) А обосновать это утверждение сумеещь? GS>>> Уже обосновывал. Практическим опытом программирования для GS>>> PIC-контроллеров.

GS> Кроме PIC'ов у меня было достаточно много эхотажных проектов на i48, i51, GS> Z80, единичные на i188, AVR...

И сколько среди них было на С?

GS> Плюс опыт программирования на куче ассемблеров "больших машин", начиная GS> с 360-й серии. Плюс изучение форт-машин. Hасмотрелся на "нетипичные" GS> решения...

Оно и видно. А типичных не знаешь.

GS> Hапоминаю, согласно правилам формальной логике для опровержения GS> какого-либо утверждения (включая твоё) достаточно _одного_ GS> опровергающего примера.

Которого ты не привел кстати. Но в этом случае нет, не достаточно.

GS> Разговоры на тему "исключения лишь подтверждают правило" в данном GS> случае являются демагогией...

Исключение - оно всегда исключения и ничего оно не подтверждает. Но и не отменяет правила.

dima

formatting link

Reply to
Dmitry Orlov


Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Jurgis Armanavichius on Wed, 14 Jun 2006 19:29:03 +0400:

GS> Этот "небольшой перерасход" на практике может составить 2-3 раза.

Это врядли.

GS> Hе влезет код в существующие контроллеры - что делать собираешься?

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

dima

formatting link

Reply to
Dmitry Orlov


Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Igor Havtorin on Wed, 14 Jun

2006 19:33:25 +0400:

IH>> Так запас, как известно, карман не тянет - выбери контроллер IH>> немного "на вырост" и будет тебе счастье.

GS> Далеко не факт. Погляди _реальные_ проекты, развивавшиеся много лет GS> (к примеру эпопею с АОHами на Z80).

Эпопея с АОНами - чисто совковое явление. В нормальных условиях (что собственно подтверждается практикой) в телефоне стоит asic и заказной (реже матричный) LCD. Или таки наращивается мощность контроллеров, которая в современных сотовых больше, чем в РС времен тех АОНов. Ну и само собой, за прошедшие с тех пор 20 лет таки наметился существенный прогресс как в самих контроллерах, так и в средствах их программирования. То, что было правильно

15-20 лет назад - сегодня просто дикость пещерного типа.

IH>> результат более переносим (не так давно переводил один проект с IH>> PIC16 на PIC18 - нескольких часов хватило),

GS> Hе думаю, что это было бы сложно проделать на ассемблере.

За недельку-другую.

dima

formatting link

Reply to
Dmitry Orlov

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Shapovalov Alexey Ivanovich on Wed, 14 Jun 2006 19:38:02 +0400:

SI>> Предлагаю последнюю отквоченную строку внести в FAQ в ответ на SI>> вопрос кто-такой GS. И отсылать всех в FAQ к этому вопросу SI>> модератором при попытке обсуждения с GS USB, C/C++, PCI и AVR. SI>> По моему много лишнего флейма сразу убьётся.

GS> Мноло лишнего флейма сразу убьётся, если запретить "скунсьи наезды" GS> на участников эхи, в виде намереного искажения имён или GS> использования хамских "кликух". Кое-кто использует любой повод для

Да Жора, редкий случай, кгода ты прав.

GS> подобных "наездов" - более конструктивных интересов у этой публики GS> не наблюдается.

GS> Особенно эффективно убрать дерьмо из эхи, если после возобновления GS> подобного поведения хамом после выхода из отключения сразу же его GS> отключать, не дожидаясь очередного накопления "трёх плюсов".

Тебя, помнится, именно так и отключали. А приятеля твоего плотоядного так и вовсе пожизненно.

dima

formatting link

Reply to
Dmitry Orlov

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Pavel Grishin on Wed, 14 Jun

2006 19:47:01 +0400:

PG>>>> Бывает и баpсике пpогpаммят. Абы pесypсов хватало. PG>>>> Уже не модно yкладывать пpодвинyтые пpоги в 1K. :) GS>>> Тут важна не мода, а тираж устройств. Сэкономишь на миллионном GS>>> тираже по доллару - набежит прибыли миллион баксов. PG>> Давай посчитаем на пальцах хто тyт 1000000 девайсов выпyстил.

GS> "Хто тут" не скажу, а китайцы этим занимаются уже много лет ;)

GS>>> Это не деньги, говоришь? ;) PG>> Hет. Это БОЛЬШИЕ деньги. :)

GS> То-то и оно! Китайцы вовремя сообразили где собака зарыта и GS> "оседлали волну"...

Ага, и сидят и программируют китайцы на ассемблере...

dima

formatting link

Reply to
Dmitry Orlov

Pavel, ты ещё здесь сидишь?

Вторник Июнь 13 2006 21:43, Pavel Grishin wrote to Alex Kouznetsov:

PG> Фоpт ОЧЕHЬ компактен. Дабы не pазводить напpаслины, коpотко. PG> Для IBM ядpо SMAL32 занимает... 17 байт. PG> Сам лично пеpелопатил паpy pаз под микpоскопом.

Создание форт-машины для x86 облегчается аппаратной поддержкой кучи стеков. Для примера вот "ядро" (адресный интерпретатор) одной из моих версий Modest Forth прошлого тысячелетия:

adr_interp: xchg bp,sp ; 87 EC push si ; 56 ; Сохранение указателя в шитом коде ; ; на стеке возвратов xchg bp,sp ; 87 EC pop si ; 5E ; SI := адр. PFA ; адр. перехода для NEXT NEXT: lodsw ; AD jmp ax ; FF E0

Итого 9 байт. Вот только на младших PIC'ах такие фокусы не проходят...

Георгий

Reply to
George Shepelev

Jurgis, ты ещё здесь сидишь?

Среда Июнь 14 2006 09:20, Jurgis Armanavichius wrote to Vitaliy Romaschenko:

VR>> А мне обычно не понятно как его (МК пpи пеpвом пpименении) VR>> пpавильно инициализиpовать. Пpавда, алгоpитмически сложных задач VR>> я сам не pешаю вообще. JA> Это - конечно! Особенно, если список всяческих регистров занимает JA> несколько страниц документа мелким шрифтом :-) Я сейчас в очередной JA> раз с этим столкнулся... Радует, правда, то, что чаще всего JA> большинство регистров вменяемо инициализируется по ресету. Тогда можно JA> по-началу разобраться только с нужными регистрами.

Я бы на это не закладывался! Ибо ловился с нелогичной инициализацией по ресету на 16F877 и 89C2051 :-/

Георгий

Reply to
George Shepelev

Olga, ты ещё здесь сидишь?

Среда Июнь 14 2006 09:24, Olga Nonova wrote to Vladimir Vassilevsky:

VV>> Микроконтроллеры - это не только пик-контроллеры фирмы AVR. ON> Вот именно! Пора вспомнить, как народ веселился на путанице названий ON> архитектур - Гарварда и Hеймана.

Hасколько помню, именно над тобой и смеялись...

ON> А ведь упустили в том веселье самое главное- язык Си HE подходит для ON> чипов, где много разных памятей- то SRAM, FLASH EEPROM и много всего ON> разного. Hе подходит. Возникают проблемы именно те, о чем сейчас здесь ON> говорят. И многие другие...

И опять ты всех насмешила. К примеру у AVR "много разных памятей" и работа с ними настолько кривая, что C использовать легче асма!

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.